On Thu, Jun 11, 2015 at 8:18 PM, Gerritjan Koekkoek <gerrit...@cdlsworld.org> wrote: > I tied to replace getDocument() in this line with getTranslatedDocument()...
getTranslatedDocument() is a Document API so you should not remove getDocument(). In other words you get the translated version of that document so it's getDocument().getTranslatedDocument(). > #foreach($ParagraphBlock in > $topicDefenitionDocument.getDocument().getXDOM().getBlocks("class:ParagraphBlock", > "DESCENDANT")) > > But the $ParagraphBlock is empty??? > > Gerritjan Koekkoek > Vader van Rai Koekkoek (cdls) en voorzitter vereniging CdLS > Visit our website > Facebook > email > > > > > ________________________________________ > From: users <users-boun...@xwiki.org> on behalf of Thomas Mortagne > <thomas.morta...@xwiki.com> > Sent: 11 June 2015 19:46 > To: XWiki Users > Subject: Re: [xwiki-users] Get parts of a page... > > On Thu, Jun 11, 2015 at 4:37 PM, Gerritjan Koekkoek > <gerrit...@cdlsworld.org> wrote: >> I almost have it right I think: >> #foreach($topicDefenitionDoc in $topicDefenitionDocs) >> #set($topicDefenitionDocument=$xwiki.getDocument($topicDefenitionDoc)) >> >> #set($topicDefenitionObject=$topicDefenitionDocument.getObject($classDefenitionName)) >> == >> $topicDefenitionDocument.display('topicTitle','view',$topicDefenitionObject) >> == >> >> ##$topicDefenitionDocument.display('topicDescription','view',$topicDefenitionObject) >> #foreach($ParagraphBlock in >> $topicDefenitionDocument.getDocument().getXDOM().getBlocks("class:ParagraphBlock", >> "DESCENDANT")) >> #if($velocityCount == 1) >> #set ($blockParent = $ParagraphBlock.getParent()) >> #set ($leadParagraph = $services.rendering.render($ParagraphBlock, >> "xwiki/2.1")) >> #if($blockParent.getParameter('class') == 'lead') >> (%class="lead"%)((($leadParagraph))) >> #else >> $leadParagraph >> #end >> #end >> #end >> >> The one issue I have left is the translation. >> The $topicDefenitionsDocs are in the $context.language >> >> But the Blocks are in the default language? >> How can I get the blocks in the $context.language > > In document API you have getTranslatedDocument() which return the > right document from current locale point of view on which you can then > call getXDOM(). > >> >> Gerritjan Koekkoek >> Vader van Rai Koekkoek (cdls) en voorzitter vereniging CdLS >> Visit our website >> Facebook >> email >> >> >> >> >> ________________________________________ >> From: users <users-boun...@xwiki.org> on behalf of Thomas Mortagne >> <thomas.morta...@xwiki.com> >> Sent: 11 June 2015 13:51 >> To: XWiki Users >> Subject: Re: [xwiki-users] Get parts of a page... >> >> On Thu, Jun 11, 2015 at 12:58 PM, Gerritjan Koekkoek >> <gerrit...@cdlsworld.org> wrote: >>> A little progress, but what to do to inspect if paragraph has class lead to >>> it and to display the paragraph remains unclear. >>> >>> #foreach($topicDefenitionDoc in $topicDefenitionDocs) >>> #set($topicDefenitionDocument=$xwiki.getDocument($topicDefenitionDoc)) >>> >>> #set($topicDefenitionObject=$topicDefenitionDocument.getObject($classDefenitionName)) >>> == >>> $topicDefenitionDocument.display('topicTitle','view',$topicDefenitionObject) >>> == >>> >>> $topicDefenitionDocument.display('topicDescription','view',$topicDefenitionObject) >>> #foreach($ParagraphBlock in >>> $topicDefenitionDocument.getDocument().getXDOM().getBlocks("class:ParagraphBlock", >>> "DESCENDANT")) >>> #if($velocityCount == 1) >>> $ParagraphBlock.self >>> #end >>> $velocityCount >>> #end >>> #end >>> #else >>> >>> Will give me a correct count of all html <p> parts >>> One of these, usually the first is enclosed by a <div class="lead"> >>> I would like to display this text only >>> $ParagraphBlock.self >>> But it does only show: >>> $ParagraphBlock.self >> >> There is no such method in Block so not sure what you expect "self" to >> do. If you want to render a block you can use rendering service, see >> http://extensions.xwiki.org/xwiki/bin/view/Extension/Rendering+Module. >> >>> >>> as if method in this context is not valid >>> >>> Second I have no idea how to inspect the <div class="lead"> that holds the >>> first <p> >>> >>> My output currently looks as follows: >>> >>> Behavior >>> Behavioral problems in people with CdLS are not inevitable. In fact, some >>> people have no behavioral problems, while others are mild, have transient >>> problems. Many problems are treatable. At the same time it is obviously the >>> severity of behavioral problems in people who injure themselves or others >>> deny. >>> Many behavior problems are a reaction to something in the body or the >>> environment and they are cyclical (they come and go). Behavioral changes >>> often occur in early childhood and the teenage years. Like most people, >>> develop people with CdLS behavior for a certain reason, and it is important >>> to first address the underlying causes of the behavior. If the source of >>> the behavior is determined, one can try to recognize that resource and to >>> avoid. >>> >>> If the behavior follows a pattern (such as it is always at the same time, >>> same place, or to a particular person) treatment will begin to investigate >>> whether the situation can be changed. When the problem is that the >>> environment does not provide sufficient structure or variation, that can be >>> addressed. Discovering the reasons for behavior is the most difficult part >>> of the treatment. Sometimes one can not eliminate the cause and one should >>> look for ways to control the behavior. This can vary from moment to rest in >>> your own room, distract the person to another activity to the use of >>> protective clothing. >>> >>> It remains important to always look at possible underlying medical >>> problems. Gastrointestinal problems, muscle pain, ear infections, dental >>> pain and epilepsy can cause irritability, self-injurious behavior or >>> aggressive behavior. Even people who can communicate well, sometimes can >>> not recognize the source of their discontent. Undetected disease (silent >>> reflux) and tooth decay / gum disease are the two most common causes of >>> behavioral changes. >>> >>> >>> $ParagraphBlock.self >>> 1 >>> 2 >>> 3 >>> 4 >>> >>> Gerritjan Koekkoek >>> Vader van Rai Koekkoek (cdls) en voorzitter vereniging CdLS >>> Visit our website >>> Facebook >>> email >>> >>> >>> >>> >>> ________________________________________ >>> From: Gerritjan Koekkoek >>> Sent: 08 June 2015 18:45 >>> To: XWiki Users >>> Subject: Re: [xwiki-users] Get parts of a page... >>> >>> I'm not sure what cased the 503, maybe because I did: >>> #foreach($topicDefenitionDoc in $topicDefenitionDocs) >>> >>> #set($topicDefenitionDocument=$xwiki.getDocument($topicDefenitionDoc)) >>> >>> #set($topicDefenitionObject=$topicDefenitionDocument.getObject($classDefenitionName)) >>> == >>> $topicDefenitionDocument.display('topicTitle','view',$topicDefenitionObject) >>> == >>> #foreach($headerBlock in >>> $topicDefenitionDocument.getXDOM().getBlocks("class:HeaderBlock", >>> ""DESCENDANT")) >>> $headerBlock -- to inspect what's inside >>> #end >>> #end >>> >>> I changed the inside of the loop to $velocityCount and indeed the numbers >>> seemed to allign wel with number of headers inside the page >>> >>> I've now changed class:HeaderBlock into class:GroupBlock >>> but now the $velocityCount equals 1 all the time wile my text is like: >>> == Behavior == >>> Behavioral problems in people with CdLS are not inevitable. In fact, some >>> people have no behavioral problems, while others are mild, have transient >>> problems. Many problems are treatable. At the same time it is obviously the >>> severity of behavioral problems in people who injure themselves or others >>> deny. >>> >>> Many behavior problems are a reaction to something in the body or the >>> environment and they are cyclical (they come and go). Behavioral changes >>> often occur in early childhood and the teenage years. Like most people, >>> develop people with CdLS behavior for a certain reason, and it is important >>> to first address the underlying causes of the behavior. If the source of >>> the behavior is determined, one can try to recognize that resource and to >>> avoid. >>> >>> If the behavior follows a pattern (such as it is always at the same time, >>> same place, or to a particular person) treatment will begin to investigate >>> whether the situation can be changed. When the problem is that the >>> environment does not provide sufficient structure or variation, that can be >>> addressed. Discovering the reasons for behavior is the most difficult part >>> of the treatment. Sometimes one can not eliminate the cause and one should >>> look for ways to control the behavior. This can vary from moment to rest in >>> your own room, distract the person to another activity to the use of >>> protective clothing. >>> >>> It remains important to always look at possible underlying medical >>> problems. Gastrointestinal problems, muscle pain, ear infections, dental >>> pain and epilepsy can cause irritability, self-injurious behavior or >>> aggressive behavior. Even people who can communicate well, sometimes can >>> not recognize the source of their discontent. Undetected disease (silent >>> reflux) and tooth decay / gum disease are the two most common causes of >>> behavioral changes. >>> >>> I would have expected the velocity count to number to 4 )equal to number >>> op <p>tags in the text? but it counts only 1 >>> >>> Gerritjan Koekkoek >>> Vader van Rai Koekkoek (cdls) en voorzitter vereniging CdLS >>> Visit our website >>> Facebook >>> email >>> >>> >>> >>> >>> ________________________________________ >>> From: users <users-boun...@xwiki.org> on behalf of Thomas Mortagne >>> <thomas.morta...@xwiki.com> >>> Sent: 08 June 2015 11:19 >>> To: XWiki Users >>> Subject: Re: [xwiki-users] Get parts of a page... >>> >>> On Mon, Jun 8, 2015 at 11:11 AM, Gerritjan Koekkoek >>> <gerrit...@cdlsworld.org> wrote: >>>> From: users <users-boun...@xwiki.org> on behalf of Thomas Mortagne >>>> <thomas.morta...@xwiki.com> >>>> Sent: 08 June 2015 11:00 >>>> To: XWiki Users >>>> Subject: Re: [xwiki-users] Get parts of a page... >>>> >>>> On Mon, Jun 8, 2015 at 10:52 AM, Gerritjan Koekkoek >>>> <gerrit...@cdlsworld.org> wrote: >>>>> From: users <users-boun...@xwiki.org> on behalf of Thomas Mortagne >>>>> <thomas.morta...@xwiki.com> >>>>> Sent: 08 June 2015 10:46 >>>>> To: XWiki Users >>>>> Subject: Re: [xwiki-users] Get parts of a page... >>>>> >>>>> On Mon, Jun 8, 2015 at 10:28 AM, Gerritjan Koekkoek >>>>> <gerrit...@cdlsworld.org> wrote: >>>>>> Hi, >>>>>> >>>>>> this indeed looks very useful... >>>>>> We run XWiki version 6.4 >>>> >>>> Is this functionality very costly from a performance perspective? >>>> The loop i'm running will give me approx 25 pages >>>> Now I have added the loop through all the Headerblocks and the server >>>> crashed (503 service not available) >>>> Now retrying and the page load is very slow: Wating for many minutes now? >>> >>> Loading 25 pages is slow whatever you do with them, then they are in >>> cache and it should be OK. I don't see how reading a XDOM could cause >>> a crash, you should look at the log and see what this 503 really mean. >>> >>>> >>>>>> ________________________________________ >>>>>> From: users <users-boun...@xwiki.org> on behalf of Thomas Mortagne >>>>>> <thomas.morta...@xwiki.com> >>>>>> Sent: 08 June 2015 10:17 >>>>>> To: XWiki Users >>>>>> Subject: Re: [xwiki-users] Get parts of a page... >>>>>> >>>>>> In your macro you could get the document and then use something like >>>>>> what is described in >>>>>> http://www.xwiki.org/xwiki/bin/view/ReleaseNotes/ReleaseNotesXWiki61RC1#HAccesstoBlockMatchersfromvelocityscripts >>>>>> to extract the GroupBlock you want (i.e. the one with a parameter >>>>>> "class" equals to "lead" from what I understood). >>>>>> >>>>>> My script is: >>>>>> #foreach($topicDefenitionDoc in $topicDefenitionDocs) >>>>>> >>>>>> #set($topicDefenitionDocument=$xwiki.getDocument($topicDefenitionDoc)) >>>>>> >>>>>> #set($topicDefenitionObject=$topicDefenitionDocument.getObject($classDefenitionName)) >>>>>> == >>>>>> $topicDefenitionDocument.display('topicTitle','view',$topicDefenitionObject) >>>>>> == >>>>>> $topicDefenitionDocument.getXDOM().getBlocks("class:lead", >>>>>> "DESCENDANT") >>>>> I understand above line should be changed in: >>>>> #foreach($headerBlock in >>>>> $topicDefenitionDocument.getXDOM().getBlocks("class:HeaderBlock", >>>>> "DESCENDANT")) >>>>> But how do is then inspect if the block has the 'class="lead" ? >>>> >>>> Note that HeaderBlock is for headers and what you have in your example >>>> in your first mail is a GroupBlock. >>>> >>>> Now for the parameters I talked about see >>>> http://nexus.xwiki.org/nexus/service/local/repositories/releases/archive/org/xwiki/rendering/xwiki-rendering-api/6.4.4/xwiki-rendering-api-6.4.4-javadoc.jar/!/org/xwiki/rendering/block/Block.html#getParameter%28java.lang.String%29 >>>> >>>> When you have the block you can as for the value of "class" parameter >>>> using $headerBlock.getParameter('class') >>>> >>>>> ... >>>>> #end >>>>>> #end >>>>>> >>>>>> But the output I get is: >>>>>> == Behavior == >>>>>> $topicDefenitionDocument.getXDOM().getBlocks("class:lead", "DESCENDANT") >>>>>> == Early Intervention / Education == >>>>>> $topicDefenitionDocument.getXDOM().getBlocks("class:lead", "DESCENDANT") >>>>>> >>>>>> ... >>>>>> What am I missing? >>>>> >>>>> the "class" in $topicDefenitionDocument.getXDOM().getBlocks("class:lead", >>>>> "DESCENDANT") has nothing to do with css. This is the Java class of >>>>> the block you want to find so you are supposed to put GroupBlock there >>>>> as I suggested and then select the one in the list having the >>>>> parameter "class" equals to "lead". >>>>> >>>>>> I also tried: >>>>>> $topicDefenitionDocument..getDocument().getXDOM().getBlocks("class:lead", >>>>>> "DESCENDANT") >>>>>> Same result, as if methods/functions are not available? >>>>>> >>>>>> On Mon, Jun 8, 2015 at 9:31 AM, Gerritjan Koekkoek >>>>>> <gerrit...@cdlsworld.org> wrote: >>>>>>> I know wiki has a nice macro to select a part of a page based on >>>>>>> headers. >>>>>>> >>>>>>> But headers can be changed and when you translate the page the page >>>>>>> holding the macro wil have a ugly error. >>>>>>> >>>>>>> >>>>>>> {{include reference="DocumentToInclude" section="HMySection"}} >>>>>>> >>>>>>> >>>>>>> How could I do it based on the following wiki syntax: >>>>>>> >>>>>>> >>>>>>> (%class="lead")((( >>>>>>> >>>>>>> Text to be included >>>>>>> >>>>>>> ))) >>>>>>> >>>>>>> Text to be excluded >>>>>>> >>>>>>> >>>>>>> 'Text to be included' and 'text to be excluded' can have any wiki-markup >>>>>>> >>>>>>> >>>>>>> I would like to create a macro that would look like >>>>>>> >>>>>>> {{myGetSectionMacro reference="DocumentToInclude" onlyLeadText="true"}} >>>>>>> >>>>>>> >>>>>>> I could get the whole page by >>>>>>> >>>>>>> {{myGetSectionMacro reference="DocumentToInclude" onlyLeadText="false"}} >>>>>>> >>>>>>> >>>>>>> I could get only 'Text to be excluded' by >>>>>>> >>>>>>> {{myGetSectionMacro reference="DocumentToInclude" onlyLeadText="false" >>>>>>> onlyRestText="true"}} >>>>>>> >>>>>>> Any suggestion is welcome >>>>>>> Note that the used Class is a bootstrap class that will add markup to >>>>>>> the section that will show it as a INTRO text... >>>>>>> >>>>>>> >>>>>>> Gerritjan Koekkoek >>>>>>> Vader van Rai Koekkoek (cdls) en voorzitter vereniging CdLS >>>>>>> Visit our website<http://www.cdlsworld.org> >>>>>>> Facebook<https://www.facebook.com/gerritjan.koekkoek> >>>>>>> email<gerrit...@cdlsworld.org> >>>>>>> >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> users mailing list >>>>>>> users@xwiki.org >>>>>>> http://lists.xwiki.org/mailman/listinfo/users >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Thomas Mortagne >>>>>> _______________________________________________ >>>>>> users mailing list >>>>>> users@xwiki.org >>>>>> http://lists.xwiki.org/mailman/listinfo/users >>>>>> _______________________________________________ >>>>>> users mailing list >>>>>> users@xwiki.org >>>>>> http://lists.xwiki.org/mailman/listinfo/users >>>>> >>>>> >>>>> >>>>> -- >>>>> Thomas Mortagne >>>>> _______________________________________________ >>>>> users mailing list >>>>> users@xwiki.org >>>>> http://lists.xwiki.org/mailman/listinfo/users >>>>> _______________________________________________ >>>>> users mailing list >>>>> users@xwiki.org >>>>> http://lists.xwiki.org/mailman/listinfo/users >>>> >>>> >>>> >>>> -- >>>> Thomas Mortagne >>>> _______________________________________________ >>>> users mailing list >>>> users@xwiki.org >>>> http://lists.xwiki.org/mailman/listinfo/users >>>> _______________________________________________ >>>> users mailing list >>>> users@xwiki.org >>>> http://lists.xwiki.org/mailman/listinfo/users >>> >>> >>> >>> -- >>> Thomas Mortagne >>> _______________________________________________ >>> users mailing list >>> users@xwiki.org >>> http://lists.xwiki.org/mailman/listinfo/users >>> _______________________________________________ >>> users mailing list >>> users@xwiki.org >>> http://lists.xwiki.org/mailman/listinfo/users >> >> >> >> -- >> Thomas Mortagne >> _______________________________________________ >> users mailing list >> users@xwiki.org >> http://lists.xwiki.org/mailman/listinfo/users >> _______________________________________________ >> users mailing list >> users@xwiki.org >> http://lists.xwiki.org/mailman/listinfo/users > > > > -- > Thomas Mortagne > _______________________________________________ > users mailing list > users@xwiki.org > http://lists.xwiki.org/mailman/listinfo/users > _______________________________________________ > users mailing list > users@xwiki.org > http://lists.xwiki.org/mailman/listinfo/users -- Thomas Mortagne _______________________________________________ users mailing list users@xwiki.org http://lists.xwiki.org/mailman/listinfo/users