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? >> ________________________________________ >> 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