Smarty QuickForm2 Renderer

Alain Williams <[email protected]> Wed, 18 Nov 2009 01:11:33 +0000
Newsgroups gmane.comp.php.pear.general,gmane.comp.php.smarty.devel
Organization Parliament Hill Computers Ltd
Message-ID <[email protected]>
--HcAYCG3uE/tztfnV
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Try again - this time with a proper Subject and with the
renderer attached.

On Fri, Nov 13, 2009 at 04:09:33PM +0000, Alain Williams wrote:

> I am writing an renderer for Smarty - I have taken the array renderer and am modifying/butchering/... it.
> I am aiming to product an array (which is what Smarty wants) that is compatible with current
> Smarty templates -- ie you are going to need to change the PHP, but hopefully will
> not have to change the templates.

Please find attached some new files that implement the above: a Smarty renderer for QuickForm2

* Renderer.php
  Modified to know about the smarty renderer.
  Accept a new option 'old_compat' - this causes the smarty renderer to do somethings
  that might not be wanted if you were starting from new. The point is that it allows
  existing smarty templates to be used without change.

* Smarty.php
  This implements a renderer. It works - at least in the way that I use QuickForm.
  There are some things not implemented, I prob did not understand how to do it
  with QuickForm.
  There are some comments saying what the returned array contains.

This was developed under PHP 5.3 on Linux.

To see how this plugs together see a tutorial set that I have at:

	http://www.phcomp.co.uk/TechTutorial/QfSmarty/index.php

(This runs the QuickForm and NOT the QuickForm2 version, but the output
is the same).

All feedback gratefully accepted.

This is cross posted to both the PEAR-GENERAL and the SMARTY-DEV
mail lists since it is relevant to both.

Have fun!

-- 
Alain Williams
Linux/GNU Consultant - Mail systems, Web sites, Networking, Programmer, IT Lecturer.
+44 (0) 787 668 0256  http://www.phcomp.co.uk/
Parliament Hill Computers Ltd. Registration Information: http://www.phcomp.co.uk/contact.php
Past chairman of UKUUG: http://www.ukuug.org/
#include <std_disclaimer.h>

--HcAYCG3uE/tztfnV
Content-Type: application/x-gzip
Content-Disposition: attachment; filename="smarty_renderer-1.tar.gz"
Content-Transfer-Encoding: base64

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


--HcAYCG3uE/tztfnV
Content-Type: text/plain; charset=us-ascii

-- 
PEAR General Mailing List (http://pear.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
--HcAYCG3uE/tztfnV--