cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Leszek Gawron <lgaw...@mobilebox.pl>
Subject JXTG macro calling
Date Sat, 26 Feb 2005 08:58:20 GMT
As we have now two ways of calling a macro:

<root xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
     <jx:macro name="d">
         <jx:parameter name="p"/>
         <macroTest a="${p}">
             <jx:evalBody/>
         </macroTest>
     </jx:macro>
     <m>
         <d p="foo">
             <content b="${1+2}"/>
         </d>
     </m>
     <n>
         <jx:set var="macroName" value="d"/>
         <jx:call macro="${macroName}">
             <jx:withParam name="p" value="bar"/>
             <content b="${2+3}"/>
         </jx:call>
     </n>
</root>

what do you think about removing the old syntax in 2.2?
<d p="foo">
     <content b="${1+2}"/>
</d>
For me it is counter-intuitive and leads to accidental mistakes (not so 
easy to find by newbies).

I also propose to remove <jx:eval/> tag as it is probably only used for:
<root xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
   <jx:set var="tags" value="${java.util.HashMap()}"/>
   <jx:macro name="dynamic-tag">
     <jx:parameter name="id"/>
     <jx:set var="ignored" value="${tags.put(id, macro.body)}"/>
   </jx:macro>

   <dynamic-tag id="example">
     <em>This tag was invoked dynamically</em>
   </dynamic-tag>

   <p>I'm about to invoke a dynamic tag:</p>
   <jx:eval select="${tags.example}"/>
</root>

which is clearly a hack that can be now implemented nicely with:
<root xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
   <jx:macro name="example">
     <em>This tag was invoked dynamically</em>
   </jx:macro>

   <p>I'm about to invoke a dynamic tag:</p>
   <jx:set var="dynamicName" value="example"/>
   <jx:call macro="${dynamicName}"/>
</root>

Moreover you can provide a body with <jx:call/> which you cannot do with 
<jx:eval/>

Another question:
Do you think this syntax would be useful?
<jx:call macro="${macroName}" p="bar">
     <content b="${2+3}"/>
</jx:call>

-- 
Leszek Gawron                                      lgawron@mobilebox.pl
Project Manager                                    MobileBox sp. z o.o.
+48 (61) 855 06 67                              http://www.mobilebox.pl
mobile: +48 (501) 720 812                       fax: +48 (61) 853 29 65

Mime
View raw message