On Wed, Dec 22, 2010 at 10:57, Gerritjan Koekkoek
<gerritjankoekkoek(a)gmail.com> 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
<gerritjankoekkoek(a)gmail.com> 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<gerritjankoekkoek(a)gmail.com>
>
>> 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
>> users(a)xwiki.org
>>
http://lists.xwiki.org/mailman/listinfo/users
>>
> _______________________________________________
> users mailing list
> users(a)xwiki.org
>
http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
--
Thomas Mortagne
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
--
Thomas Mortagne