Viewing file: SmartyAPI.php (5.1 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?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); } }
|