On Feb 12, 2012, at 11:33 PM, <ricardo.julio.rodriguez.fernan...@sergas.es> 
<ricardo.julio.rodriguez.fernan...@sergas.es> wrote:

> ________________________________________
> From: users-boun...@xwiki.org [users-boun...@xwiki.org] On Behalf Of Sergiu 
> Dumitriu [ser...@xwiki.com]
> Sent: 12 February 2012 20:38
> To: XWiki Users
> Subject: Re: [xwiki-users] Groovy script to XWiki 2.0 Syntax -  constructing 
> URLs
> 
> On 02/12/2012 06:00 AM, ricardo.julio.rodriguez.fernan...@sergas.es wrote:
>> Please, see below.
>> --
>> Ricardo Rodríguez
>> Research Management and Promotion Technician
>> Health Research Institute of Santiago de Compostela (IDIS)
>> http://www.idisantiago.es
>> ________________________________________
>> From: users-boun...@xwiki.org [users-boun...@xwiki.org] On Behalf Of 
>> Rodriguez Fernandez, Ricardo Julio
>> Sent: 12 February 2012 11:49
>> To: users@xwiki.org
>> Subject: Re: [xwiki-users] Groovy script to XWiki 2.0 Syntax -  constructing 
>>    URLs
>> 
>> Thanks! See below.
>> --
>> Ricardo Rodríguez
>> Research Management and Promotion Technician
>> Health Research Institute of Santiago de Compostela (IDIS)
>> http://www.idisantiago.es
>> ________________________________________
>> From: users-boun...@xwiki.org [users-boun...@xwiki.org] On Behalf Of Vincent 
>> Massol [vinc...@massol.net]
>> Sent: 12 February 2012 11:34
>> To: XWiki Users
>> Cc: Lista Garcia, Isabel
>> Subject: Re: [xwiki-users] Groovy script to XWiki 2.0 Syntax - constructing  
>>    URLs
>> 
>> On Feb 12, 2012, at 11:10 AM,<ricardo.julio.rodriguez.fernan...@sergas.es>  
>> wrote:
>> 
>>> 
>>> Good morning!
>>> 
>>> I'm trying to move a simple script from XWiki 1.0 Syntax to 2.0 one. It 
>>> includes this lines with which I can easily use SQL to retrieve pages and 
>>> present a list of URLs to reach those pages:
>>> 
>>> db2 = Sql.newInstance("jdbc:mysql://hostname/schema", "ROuser", "readonly", 
>>> "com.mysql.jdbc.Driver")
>>> List areas = db2.rows('select...
>>> println areas.collect{"<a 
>>> href='../XWiki/${it.XWD_NAME}'>${it.XWD_TITLE}</a>"}.join("<br>")
>> 
>>>> This will generate HTML so you'll need to wrap it in the {{html}} macro.
>>>> 
>>>> {{groovy}}
>>>> …
>>>> println "{{html}}<your html here<{{/html}}"
>>>> {{/groovy}}
>> 
>>>>> I've already tried this to now avail. For instance, these alternatives 
>>>>> failed giving a Failed to execute the [groovy] macro error message; all 
>>>>> of them pointed to the first character of the nested html macro as the>>> 
>>>>>  reason for the failure:
>>>>> 
>>>>> println {{html}}areas.collect{"<a 
>>>>> href='../XWiki/${it.XWD_NAME}'>${it.XWD_TITLE}</a>"}.join("<br>"){{/html}}
>>>>> println "{{html}}areas.collect{"<a 
>>>>> href='../XWiki/${it.XWD_NAME}'>${it.XWD_TITLE}</a>"}.join("<br>"){{/html}}"
>>>>> 
>>>>> BTW: still Running XWiki Enterprise 2.4.30451 here... must this html 
>>>>> nested macro be supported in this release?
>>>>> 
>>>>> Thanks!!!
>> 
>> More on this issue: this is, for sure, a clear error message for anybody 
>> mastering Groovy...
>> 
>> Caused by: javax.script.ScriptException: startup failed:
>> Script167.groovy: 4: Ambiguous expression could be either a parameterless 
>> closure expression or an isolated open code block;
>>    solution: Add an explicit closure parameter list, e.g. {it ->  ...}, or 
>> force it to be treated as an open block by giving it a label, e.g. L:{...} @ 
>> line 4, column 2.
>>    {{html}}
>>     ^
>> 
>> Please, how this must be applied to the way Vicent is proposing to nest the 
>> XWiki html macro?
>> 
>> println "{{html}}<your html here>{{/html}}"
> 
>>>>>> The problem is with nested quotes IMHO.
>>>>>> 
>>>>>> Try something simpler:
>>>>>> 
>>>>>> println "{{html}}"
>>>>>> println the rest of your code
>>>>>> println "{{/html}}"
> 
> Done! Thank you very much!
> 
> Could it be useful to make some note about this behavior in XWiki Platform > 
> XWiki Syntaxes page?
> 
> http://platform.xwiki.org/xwiki/bin/view/Main/XWikiSyntax#HMacros

Note about what? There's no special behavior here.

In groovy if you wish to use GStrings you need to use ${}….

For example: println "${myvar}"

Thanks
-Vincent

> Thanks!
> 
>> Thanks!!!
>> 
>>>> 
>>>> Hope it helps,
>>>> -Vincent
>> 
>>> As I'm having problems to include both Velocity (for instance, to control 
>>> the information panel visibility) and Groovy scripts in the same page when 
>>> using 1.0 syntax, I'm trying to move it to 2.0. But using the same lines 
>>> results in that exact text being displayed in the page, but not the URL 
>>> showed in 1.0 syntax.
>>> 
>>> Please, could you tell me how could I get the same results with XWiki 2.0 
>>> syntax? Thanks!!!
>>> 
>>> I know there are a lot of different methods to get the same results within 
>>> XWiki, but using SQL in this case is useful to me now as kind of probe of 
>>> concept showing how easily could we link to "external" datasources by using 
>>> XWiki.
>>> 
> 
> --
> Sergiu Dumitriu
> http://purl.org/net/sergiu/
_______________________________________________
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users

Reply via email to