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

Reply via email to