parent
0d61f42cf4
commit
58722f4365
@ -0,0 +1,460 @@ |
||||
<?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. |
||||
* @author Monte Ohrt <monte at ohrt dot com> |
||||
* @author Uwe Tews |
||||
* @author Rodney Rehm |
||||
* @package Smarty |
||||
*/ |
||||
/** |
||||
* @ignore |
||||
*/ |
||||
require(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 $merge flag 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_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_file name of template file |
||||
* @param string $cache_id name of cache_id |
||||
* @param string $compile_id name of compile_id |
||||
* @param string $exp_time expiration 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 $params parameter 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 ''; |
||||
} |
||||
|
||||
?> |
||||
Loading…
Reference in new issue