Re: HTML_QuickForm and Smarty Template

From: Date: Mon, 10 Nov 2003 19:42:43 +0000
Subject: Re: HTML_QuickForm and Smarty Template
References: 1 2 3 4 5  Groups: php.pear.general 
Request: Send a blank email to pear-general+get-8853@lists.php.net to get a copy of this message
Matthias H. Risse wrote in php.pear.general: > ok. i can understand your point of view, but cannot really > agree to it :) There where many points. Which one? ;-) > the callback renderer sounds interesting. do you think of > a templating system such as java server faces or asp.net try > to establish? I haven't a clue of java nor asp but the idea is to use the callback funktionallity available in some engines. For Smarty i would combine block- and template-functions. The Sample Template looks like: {quickform name=form} <table class="maintable" width="600" align="center"> {qf_group name="name"} <tr> <td class="label">Name: {qf_required group="name"}</td> <td class="element"> {qf_error group="name" rule="required"}Name is required{/qf_error} <table cellspacing="0" cellpadding="1"> <tr> <td>{qf_element name=first type=text size=10}</td> <td>{qf_element name=last type=text size=10}</td> </tr> <tr> <td><font size="1" color="grey">First</font></td> <td><font size="1" color="grey">Last</font></td> </tr> </table> </td> </tr> {/qf_group} <tr> <td class="label">Company:</td> <td class="element"> {qf_element name=company type=text size=20} </td> </tr> {qf_group name="adress"} <tr> <td class="label">Zip, city:</td> <td class="element"> {qf_error element="zip" rule=required} Zip code is required {/qf_error} {qf_error element="zip" rule=numeric} Zip code is numeric only {/qf_error} {qf_error element="city" rule=required} City is required {/qf_error} {qf_error element="city" rule=lettersonly} City is letters only {/qf_error} <table cellspacing="0" cellpadding="1"> <tr> <td>{qf_element name=zip type=text size=6 maxlength=10}</td> <td>{qf_element name=city type=text size=15}</td> </tr> <tr> <td><font size="1" color="grey">Zip</font></td> <td><font size="1" color="grey">City</font></td> </tr> </table> </td> </tr> {/qf_group} </table> {/quickform} Then you: // extract the form definition from template $renderer->prepare($form, 'smarty-callback.tpl'); // maybe add some hidden elements $form->addElement('hidden', 'ihidTest', 'hiddenField'); // or freeze an element $form->freeze('company'); // validate and render the form if ($form->validate()) { // Form is validated, then freezes the data $form->freeze(); } $form->accept($renderer); Any Ideas out there? ThS. -- http://4bconsult.de

« previous php.pear.general (#8853) next »