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

Reply via email to