Really cool. Thx
-Greg
Hi Sanford,
Is there a way to store the dictionary outside of the Velocity script, in a place where it would be easily maintained?
-Greg
You can store the variable in a separate token (which I recommend for data dicts like this) and include it in the <head> of your templates.
But you can't read directly from anywhere but the Velocity context. You can use a separate app to periodically copy data from a text file into a token, but that's creating some moving parts. Doable, though.
Hi Sanford Whiteman ,
I have tested the code from the blog and this is the email, with different values selected in the form:
It renders the 1st one 4 times
-Greg
PS: can it be because the variable velocityCount
is not incremented ?
-Greg
PS: can it be because the variable
velocityCount
is not incremented ?
$velocityCount is automatically created and incremented.
Maybe there's something different in your instance. Try $foreach.count instead of $velocityCount.
... full line being
#evaluate( "${esc.h}set( ${esc.d}downloadLink_${foreach.count} = ${esc.d}downloadLink )" )
Hi again Sanford,
My bad. If velocity count was not incremented, downloadink_2 and above would be empty.
Here, the output seems not to find any other value than the first one (downloadLink_1) and repeat it for each item.
-Greg
I tried this code:
#foreach( $key in $lead.downloadcenter.split(";") )
#set( $downloadLink = $allDownloadLinks[$key] )
${downloadLink.text}</br>
#evaluate( "${esc.h}set( ${esc.d}downloadLink_${velocityCount} = ${esc.d}downloadLink )" )
#end
and it is rendering
IV Case Study
IV Case Study
-Greg
On the assumption that your instance is configured differently please try this code instead (replacing the code after the dict of course):
#foreach( $key in $lead.downloadcenter.split(";") )
#set( $downloadLink = $allDownloadLinks[$key] )
#evaluate( "${esc.h}set( ${esc.d}downloadLinkHref_${foreach.count} = ${esc.d}downloadLink.href )" )
#evaluate( "${esc.h}set( ${esc.d}downloadLinkText_${foreach.count} = ${esc.d}downloadLink.text )" )
#end
#if( $downloadLinkHref_1 )
<a href="http://${downloadLinkHref_1}" target="_blank">${downloadLinkText_1}</a>
#end
#if( $downloadLinkHref_2 )
<a href="http://${downloadLinkHref_2}" target="_blank">${downloadLinkText_2}</a>
#end
#if( $downloadLinkHref_3 )
<a href="http://${downloadLinkHref_3}" target="_blank">${downloadLinkText_3}</a>
#end
#if( $downloadLinkHref_4 )
<a href="http://${downloadLinkHref_4}" target="_blank">${downloadLinkText_4}</a>
#end
#if( $downloadLinkHref_5 )
<a href="http://${downloadLinkHref_5}" target="_blank">${downloadLinkText_5}</a>
#end