I am in need of a template engine similar to Smarty (PHP) for ColdFusion? I
have not found such a thing yet. Does it exist?
If not, how would you go about writing a parser in ColdFusion that could take a
template like this ...
--------------------------------------------------
The current date and time is {$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}
The value of global assigned variable $SCRIPT_NAME is {$SCRIPT_NAME}
Example of accessing server environment variable SERVER_NAME:
{$smarty.server.SERVER_NAME}
The value of {ldelim}$Name{rdelim} is <b>{$Name}</b>
variable modifier example of {ldelim}$Name|upper{rdelim}
<b>{$Name|upper}</b>
{section name=sec1 loop=$contacts}
phone: {$contacts[sec1].phone}<br>
fax: {$contacts[sec1].fax}<br>
cell: {$contacts[sec1].cell}<br>
{/section}
--------------------------------------------------
.... and turn it into CFML like this ...
--------------------------------------------------
The current date and time is <cfoutput>#dateFormat(Now(), 'y-m-d')#
#timeFormat(Now(), 'H:m:s')#</cfoutput>
The value of global assigned variable $SCRIPT_NAME is
<cfoutput>#SCRIPT_NAME#</cfoutput>
Example of accessing server environment variable SERVER_NAME:
<cfoutput>#CGI.SERVER_NAME#</cfoutput>
<cfoutput>The value of #config.ldelim#$Name#config.rdelim# is
<b>#config.Name#</b></cfoutput>
<cfoutput>variable modifier example of
#config.ldelim#$Name|upper#config.rdelim#</cfoutput>
<cfoutput><b>#ucase(name)#</b></cfoutput>
<cfloop from="1" to="#arrayLen(contacts)#" index="contactPtr">
<cfoutput>phone: #contacts[contactPtr].phone#<br></cfoutput>
<cfoutput>fax: #contacts[contactPtr].fax#<br></cfoutput>
<cfoutput>cell: #contacts[contactPtr].cell#<br></cfoutput>
</cfloop>
--------------------------------------------------
Regular expression find/replace comes to mind first, but I am obviously looking
for the best performance as well.
Any suggestions?
Thanks.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four
times a year.
http://www.fusionauthority.com/quarterly
Archive:
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:258432
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4