<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- $Id: smarty-dynamic.tpl,v 1.5 2004/08/10 10:06:42 ths Exp $ --> <html> <head> <title>Smarty template for Array renderer</title> <style type="text/css"> {literal} body, td, th { font-family: sans-serif; color: Navy; background-color : #EEE; font-size: smaller; white-space: nowrap; } .maintable { border: thin dashed #D0D0D0; background-color: #EEE; } .header { color: #FFF; background-color: #999; } .green { background-color: #CFC; color: black; } {/literal} </style> </head> <body> {$form.javascript} <table border="0" class="maintable" align="center"> <form{$form.attributes}>{$form.hidden} {foreach item=sec key=i from=$form.sections} <tr> <td class="header" colspan="2"> <b>{$sec.header}</b></td> </tr> {foreach item=element from=$sec.elements} <!-- elements with alternative layout in external template file--> {if $element.style} {include file="smarty-dynamic-`$element.style`.tpl} {* NOTE: Another way ist to have smarty template code in $element.style. In this case you can do: {if $element.style} {eval var=$element.style} *} <!-- submit or reset button (don't display on frozen forms) --> {elseif $element.type eq "submit" or $element.type eq "reset"} {if not $form.frozen} <tr> <td> </td> <td align="left">{$element.html}</td> </tr> {/if} <!-- normal elements --> {else} <tr> {if $element.type eq "textarea"} <td colspan="2"> {if $element.required}<font color="red">*</font>{/if}<b>{$element.label}</b><br /> {else} <td align="right" valign="top"> {if $element.required}<font color="red">*</font>{/if}<b>{$element.label}:</b></td> <td> {/if} {if $element.error}<font color="red">{$element.error}</font><br />{/if} {if $element.type eq "group"} {foreach key=gkey item=gitem from=$element.elements} {$gitem.label} {$gitem.html}{if $gitem.required}<font color="red">*</font>{/if} {if $element.separator}{cycle values=$element.separator}{/if} {/foreach} {else} {$element.html} {/if} <div style="font-size: 80%;">{$element.label_note}</div> </td> </tr> {/if} {/foreach} {/foreach} {if $form.requirednote and not $form.frozen} <tr> <td> </td> <td valign="top">{$form.requirednote}</td> </tr> {/if} </form> </table> <p><b>Collected Errors:</b><br /> {foreach key=name item=error from=$form.errors} <font color="red">{$error}</font> in element [{$name}]<br /> {/foreach} </p> <p><strong>Best Practice: </strong><br /> Use only one dynamic form template like this for your <br /> Smarty driven project. You include this where <br /> to place a form with the formdata-Array rendered by <br /> SmartyDynamic QuickForm Renderer as option:</p> <pre style="font-size: 12px;"> <strong>{ldelim}include file=form-dynamic.tpl form=$formdata{rdelim}</strong> </pre> <p><strong>The used "Dynamic" Array </strong></p> <pre style="font-size: 12px;"> {$dynamic_array|htmlentities} </pre> </body> </html>