On Wed, Dec 22, 2010 at 18:21, Gerritjan Koekkoek <[email protected]> wrote:
Hi Thomas,
This solved the problem! But I do not really understand. {{Include...}} and {{velocity}} should be seperated by a empty line. But how did that create the error on the first call to macro only, all the following calls executed very well?7
Yep I find it weird too, I did not looked closely at your code just saw this error and quickly answered.
Gerritjan Op 22 dec 2010, om 12:38 heeft Thomas Mortagne het volgende geschreven:
On Wed, Dec 22, 2010 at 10:57, Gerritjan Koekkoek <[email protected]> wrote:
Hi Thomas,
This is good help, thank you. But still the fenomenon is the same; the first call to the macro fails with the same error message about inline
THe code looks like this; {{include document="CdLSAssociations.Macros"/}} {{velocity wiki=true}}
When you do that you create a paragraph containing include and velocity macro, you should separate them with an empty line.
#set($attachments = $doc.attachmentList)
#ShowFlag("za" 30)
#foreach ($attach in $attachments) #set($tmpCountryCodeFileName = $attach.filename) #StripExtension($tmpCountryCodeFileName $FileNameWithoutExtension) #ShowFlag($FileNameWithoutExtension 30) #end {{/velocity}}
The macro that gives the error is ShowFlag
When I change the wiki=true for the macro to wiki=false the error dissappears and the output is like (pretty much what I expect, there seems to be no inline problem???; When i change false to true the first (south africa) will not display, but returns the error
{{html clean="true"}}
<div class="flags"> <img src="../../download/CdLSAssociations/FlagAttachments/za.png" alt="SOUTH AFRICA" title="SOUTH AFRICA" height="30" width="30"/> </div>
{{/html}}
{{html clean="true"}}
<div class="flags"> <img src="../../download/CdLSAssociations/FlagAttachments/au.png" alt="AUSTRALIA" title="AUSTRALIA" height="30" width="30"/> </div>
{{/html}}
{{html clean="true"}}
<div class="flags"> <img src="../../download/CdLSAssociations/FlagAttachments/ar.png" alt="ARGENTINA" title="ARGENTINA" height="30" width="30"/> </div>
{{/html}}
Op 21 dec 2010, om 16:23 heeft Thomas Mortagne het volgende geschreven:
A good trick to see exactly what happen is tu put wiki=false in your velocity macro so that you see the exact result of velocity execution.
On Mon, Dec 20, 2010 at 16:18, Gerritjan Koekkoek <[email protected]> wrote:
Thx,
The Inline versus Block makes sense. It fixes almost my problem
The \div versus /div was a typo, not really creating the macro error. It just displayed the <\div> statement
So now the macro seems to work with one strange problem... I call the macro in a foreach statement. It fails the first loop; displaying the same error! The second and all the other loops (32) present the result i want
So I called the macro before I enter the loop once, now the loop woks fine. But the macro error on the initial call keeps coming. Is it because these empty-line block seperator
So now my macro looks like; #macro(ShowFlag $CountryCode) #set($ImageExtension = '.png') #set($CountryCodeFile = $CountryCode + $ImageExtension)
{{html clean="true"}} <div class="flags"> <img src="../../download/CdLSAssociations/FlagAttachments/$CountryCodeFile" alt="$CountryCode" title="$CountryCode"/> </div> {{/html}} #end
Note I only needed one preceeding empty-line. Marius suggested one-way-of-doing; what are other ways?
Gerritjan Op 20 dec 2010, om 15:12 heeft Marius Dumitru Florea het volgende geschreven:
Hi Gerritjan,
On 12/20/2010 03:21 PM, Le Génie wrote: > Hi, > > I don't know if it is the answer but in your copie of the code, you type > <\div> in place of</div>. > > Regards, > Maxime > > 2010/12/20 Gerritjan Koekkoek<[email protected]> > >> Hi >> I get this error (Failed to execute the [html] macro) if I change the >> following: >> >> #macro(ShowFlag $CountryCode) >> #set($ImageExtension = '.png') >> #set($CountryCodeFile = $CountryCode + $ImageExtension) >> {{html}} >> <img >> src="../../download/CdLSAssociations/FlagAttachments/$CountryCodeFile" >> alt="$CountryCode" >> title="$CountryCode"/> >> {{/html}} >> #end >> >> to this >> >> #macro(ShowFlag $CountryCode) >> #set($ImageExtension = '.png') >> #set($CountryCodeFile = $CountryCode + $ImageExtension)
>> {{html clean="true"}}
clean=true by default so you don't need it.
>> <div class="flags"> >> <img >> src="../../download/CdLSAssociations/FlagAttachments/$CountryCodeFile" >> alt="$CountryCode" >> title="$CountryCode"/> >> <\div> >> {{/html}} >> #end >>
>> Why does adding the<div class...> and</div> give this error?
The HTML macro was generating in-line content (just an IMG tag) and now, due to your change, it generates block level content (DIV is a block level HTML element). You have to make sure the HTML macro is not called in an in-line context. One way to do this is to add an empty line before and after it (the empty line is a block separator in xwiki/2.0 syntax).
Hope this helps, Marius
>> >> Gerritjan >> _______________________________________________ >> users mailing list >> [email protected] >> http://lists.xwiki.org/mailman/listinfo/users >> > _______________________________________________ > users mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/users _______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
-- Thomas Mortagne _______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
-- Thomas Mortagne _______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
-- Thomas Mortagne