home *** CD-ROM | disk | FTP | other *** search
- <?php
- /* vim: set expandtab tabstop=4 shiftwidth=4: */
- // +----------------------------------------------------------------------+
- // | PHP Version 4 |
- // +----------------------------------------------------------------------+
- // | Copyright (c) 1997-2002 The PHP Group |
- // +----------------------------------------------------------------------+
- // | This source file is subject to version 2.02 of the PHP license, |
- // | that is bundled with this package in the file LICENSE, and is |
- // | available at through the world-wide-web at |
- // | http://www.php.net/license/2_02.txt. |
- // | If you did not receive a copy of the PHP license and are unable to |
- // | obtain it through the world-wide-web, please send a note to |
- // | license@php.net so we can mail you a copy immediately. |
- // +----------------------------------------------------------------------+
- // | Authors: Alan Knowles <alan@akbkhome.com> |
- // +----------------------------------------------------------------------+
- //
- // $Id: SmartyAPI.php,v 1.2 2004/04/03 12:08:57 alan_k Exp $
- //
- // Description this class emulates the Smarty API to attempt to enable
- // upgrading to flexy. (eg. for use with flexy templates (that have been
- // converted using the SmartyConverter Compiler.
- //
- // I've no idea how complete this will end up being..
- //
- // Technically Smarty is LGPL - so theortically no code in here should
- // use the copy & paste the original smarty code....
- //
-
- // to use as a full emulator :
- // try
- // class Smarty extends HTML_Template_Flexy_SmartyAPI {
- // function Smarty() { parent::construct(); }
- // }
-
-
- // not implemented:
- /*
- append_by_ref
- append
- register_function / unregister_function
- register_object / register_object
- register_block / unregister_block
- register_compiler_function / unregister_compiler_function
- register_modifier / unregister_modifier
- register_resource / unregister_resource
- register_prefilter / unregister_prefilter
- register_postfilter / unregister_postfilter
- register_outputfilter / unregister_outputfilter
- load_filter
- clear_cache
- clear_all_cache
- is_cached
- template_exists
- get_template_vars
- get_config_vars
- trigger_error
-
- fetch
- get_registered_object
- config_load
- clear_config
- _* (all the privates)
- */
-
- /**
- * Smarty API emulator for Flexy
- * - designed to make transitions simpler
- * - provides only basic support for variables
- * - uses flexy templates (that have been converted previosly with the converor)
- *
- * @version $Id: SmartyAPI.php,v 1.2 2004/04/03 12:08:57 alan_k Exp $
- */
-
- class HTML_Template_Flexy_SmartyAPI {
-
- /**
- * where the data for the template gets stored.
- *
- * @var array
- * @access public
- */
- var $vars = array();
-
- /**
- * Standard Variable assignment
- *
- * @param string|array element name to assign value or assoc. array
- * @param mixed value of element.
- *
- * @return none
- * @access public
- */
- function assign($k,$v)
- {
- if (is_array($k)) {
- $this->vars = $k + $this->vars;
- return;
- }
- $this->vars[$k] = $v;
- }
- /**
- * Standard Variable assignment (by reference)
- *
- * @param string element name to assign value
- * @param mixed value of element.
- *
- * @return none
- * @access public
- */
- function assign_by_ref($k, &$v)
- {
- $this->vars[$k] = &$v;
- }
- /**
- * Unset a variable assignment
- *
- * @param string element name to remove
- *
- * @return none
- * @access public
- */
- function clear_assign($k)
- {
- if (is_array($k)) {
- foreach ($k as $kk) {
- $this->clear_assign($kk);
- }
- return;
- }
-
- if (isset($this->vars[$k])) {
- unset($this->vars[$k]);
- }
- }
- /**
- * Unset all variables
- *
- * @return none
- * @access public
- */
- function clear_all_assign()
- {
- $this->vars = array();
-
- }
-
- /**
- * output a template (optionally with flexy object & element.)
- *
- * @param string name of flexy template.
- * @param object object as per HTML_Template_Flexy:outputObject
- * @param array elements array as per HTML_Template_Flexy:outputObject
- *
- * @return none
- * @access public
- */
- function display($templatename,$object=null,$elements=array())
- {
- // some standard stuff available to a smarty template..
- $this->vars['SCRIPT_NAME'] = $_SERVER['SCRIPT_NAME'];
-
-
- $o = PEAR::getStaticProperty('HTML_Template_Flexy','options');
-
- require_once 'HTML/Template/Flexy.php';
- $t = new HTML_Template_Flexy;
- $t->compile($templatename);
- $object = ($object !== null) ? $object : new StdClass;
-
- foreach($this->vars as $k=>$v) {
- $object->$k = $v;
- }
- $t->outputObject($object,$elements);
- }
-
- }
-
-