本文实例讲述了php封装的smartyBC类。分享给大家供大家参考,具体如下:
<?php/** * Project: Smarty: the PHP compiling template engine * File:SmartyBC.class.php * SVN: $Id: $ * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * For questions, help, comments, discussion, etc., please join the * Smarty mailing list. Send a blank e-mail to * smarty-discussion-subscribe@googlegroups.com * * @link http://www.smarty.net/ * @copyright 2008 New Digital Group, Inc. * @authorMonte Ohrt <monte at ohrt dot com> * @authorUwe Tews * @authorRodney Rehm * @packageSmarty *//** * @ignore */require_once(dirname(__FILE__) . "/Smarty.class.php");/** * Smarty Backward Compatability Wrapper Class * * @package Smarty */class SmartyBC extends Smarty{/** * Smarty 2 BC * * @var string */public $_version = self::SMARTY_VERSION;/** * Initialize new SmartyBC object * * @param array $options options to set during initialization, e.g. array( "forceCompile" => false ) */public function __construct(array $options = array()){parent::__construct($options);// register {php} tag$this->registerPlugin("block", "php", "smarty_php_tag");}/** * wrapper for assign_by_ref * * @param string $tpl_var the template variable name * @param mixed &$value the referenced value to assign */public function assign_by_ref($tpl_var, &$value){$this->assignByRef($tpl_var, $value);}/** * wrapper for append_by_ref * * @param string $tpl_var the template variable name * @param mixed&$value the referenced value to append * @param boolean $mergeflag if array elements shall be merged */public function append_by_ref($tpl_var, &$value, $merge = false){$this->appendByRef($tpl_var, $value, $merge);}/** * clear the given assigned template variable. * * @param string $tpl_var the template variable to clear */public function clear_assign($tpl_var){$this->clearAssign($tpl_var);}/** * Registers custom function to be used in templates * * @param string $function the name of the template function * @param string $function_impl the name of the PHP function to register * @param bool$cacheable * @param mixed $cache_attrs */public function register_function($function, $function_impl, $cacheable = true, $cache_attrs = null){$this->registerPlugin("function", $function, $function_impl, $cacheable, $cache_attrs);}/** * Unregisters custom function * * @param string $function name of template function */public function unregister_function($function){$this->unregisterPlugin("function", $function);}/** * Registers object to be used in templates * * @param string $object name of template object * @param object $object_impl the referenced PHP object to register * @param array$allowed list of allowed methods (empty = all) * @param boolean $smarty_args smarty argument format, else traditional * @param array$block_methods list of methods that are block format * * @throws SmartyException * @internal param array $block_functs list of methods that are block format */public function register_object($object, $object_impl, $allowed = array(), $smarty_args = true, $block_methods = array()){settype($allowed, "array");settype($smarty_args, "boolean");$this->registerObject($object, $object_impl, $allowed, $smarty_args, $block_methods);}/** * Unregisters object * * @param string $object name of template object */public function unregister_object($object){$this->unregisterObject($object);}/** * Registers block function to be used in templates * * @param string $block name of template block * @param string $block_impl PHP function to register * @param bool$cacheable * @param mixed $cache_attrs */public function register_block($block, $block_impl, $cacheable = true, $cache_attrs = null){$this->registerPlugin("block", $block, $block_impl, $cacheable, $cache_attrs);}/** * Unregisters block function * * @param string $block name of template function */public function unregister_block($block){$this->unregisterPlugin("block", $block);}/** * Registers compiler function * * @param string $function name of template function * @param string $function_impl name of PHP function to register * @param bool$cacheable */public function register_compiler_function($function, $function_impl, $cacheable = true){$this->registerPlugin("compiler", $function, $function_impl, $cacheable);}/** * Unregisters compiler function * * @param string $function name of template function */public function unregister_compiler_function($function){$this->unregisterPlugin("compiler", $function);}/** * Registers modifier to be used in templates * * @param string $modifier name of template modifier * @param string $modifier_impl name of PHP function to register */public function register_modifier($modifier, $modifier_impl){$this->registerPlugin("modifier", $modifier, $modifier_impl);}/** * Unregisters modifier * * @param string $modifier name of template modifier */public function unregister_modifier($modifier){$this->unregisterPlugin("modifier", $modifier);}/** * Registers a resource to fetch a template * * @param string $type name of resource * @param array $functions array of functions to handle resource */public function register_resource($type, $functions){$this->registerResource($type, $functions);}/** * Unregisters a resource * * @param string $type name of resource */public function unregister_resource($type){$this->unregisterResource($type);}/** * Registers a prefilter function to apply * to a template before compiling * * @param callable $function */public function register_prefilter($function){$this->registerFilter("pre", $function);}/** * Unregisters a prefilter function * * @param callable $function */public function unregister_prefilter($function){$this->unregisterFilter("pre", $function);}/** * Registers a postfilter function to apply * to a compiled template after compilation * * @param callable $function */public function register_postfilter($function){$this->registerFilter("post", $function);}/** * Unregisters a postfilter function * * @param callable $function */public function unregister_postfilter($function){$this->unregisterFilter("post", $function);}/** * Registers an output filter function to apply * to a template output * * @param callable $function */public function register_outputfilter($function){$this->registerFilter("output", $function);}/** * Unregisters an outputfilter function * * @param callable $function */public function unregister_outputfilter($function){$this->unregisterFilter("output", $function);}/** * load a filter of specified type and name * * @param string $type filter type * @param string $name filter name */public function load_filter($type, $name){$this->loadFilter($type, $name);}/** * clear cached content for the given template and cache id * * @param string $tpl_filename of template file * @param string $cache_idname of cache_id * @param string $compile_id name of compile_id * @param string $exp_timeexpiration time * * @return boolean */public function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null){return $this->clearCache($tpl_file, $cache_id, $compile_id, $exp_time);}/** * clear the entire contents of cache (all templates) * * @param string $exp_time expire time * * @return boolean */public function clear_all_cache($exp_time = null){return $this->clearCache(null, null, null, $exp_time);}/** * test to see if valid cache exists for this template * * @param string $tpl_file name of template file * @param string $cache_id * @param string $compile_id * * @return boolean */public function is_cached($tpl_file, $cache_id = null, $compile_id = null){return $this->isCached($tpl_file, $cache_id, $compile_id);}/** * clear all the assigned template variables. */public function clear_all_assign(){$this->clearAllAssign();}/** * clears compiled version of specified template resource, * or all compiled template files if one is not specified. * This function is for advanced use only, not normally needed. * * @param string $tpl_file * @param string $compile_id * @param string $exp_time * * @return boolean results of {@link smarty_core_rm_auto()} */public function clear_compiled_tpl($tpl_file = null, $compile_id = null, $exp_time = null){return $this->clearCompiledTemplate($tpl_file, $compile_id, $exp_time);}/** * Checks whether requested template exists. * * @param string $tpl_file * * @return boolean */public function template_exists($tpl_file){return $this->templateExists($tpl_file);}/** * Returns an array containing template variables * * @param string $name * * @return array */public function get_template_vars($name = null){return $this->getTemplateVars($name);}/** * Returns an array containing config variables * * @param string $name * * @return array */public function get_config_vars($name = null){return $this->getConfigVars($name);}/** * load configuration values * * @param string $file * @param string $section * @param string $scope */public function config_load($file, $section = null, $scope = "global"){$this->ConfigLoad($file, $section, $scope);}/** * return a reference to a registered object * * @param string $name * * @return object */public function get_registered_object($name){return $this->getRegisteredObject($name);}/** * clear configuration values * * @param string $var */public function clear_config($var = null){$this->clearConfig($var);}/** * trigger Smarty error * * @param string $error_msg * @param integer $error_type */public function trigger_error($error_msg, $error_type = E_USER_WARNING){trigger_error("Smarty error: $error_msg", $error_type);}}/** * Smarty {php}{/php} block function * * @param array$paramsparameter list * @param string $content contents of the block * @param object $template template object * @param boolean &$repeat repeat flag * * @return string content re-formatted */function smarty_php_tag($params, $content, $template, &$repeat){eval($content);return "";}
更多关于Smarty相关内容感兴趣的读者可查看本站专题:《smarty模板入门基础教程》、《PHP模板技术总结》、《PHP基于pdo操作数据库技巧总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。