0,0 → 1,56 |
<?php |
|
/** |
* Smarty Method RegisterPlugin |
* |
* Smarty::registerPlugin() method |
* |
* @package Smarty |
* @subpackage PluginsInternal |
* @author Uwe Tews |
*/ |
class Smarty_Internal_Method_RegisterPlugin |
{ |
/** |
* Valid for Smarty and template object |
* |
* @var int |
*/ |
public $objMap = 3; |
|
/** |
* Registers plugin to be used in templates |
* |
* @api Smarty::registerPlugin() |
* @link http://www.smarty.net/docs/en/api.register.plugin.tpl |
* |
* @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj |
* @param string $type plugin type |
* @param string $name name of template tag |
* @param callback $callback PHP callback to register |
* @param bool $cacheable if true (default) this |
* function is cache able |
* @param mixed $cache_attr caching attributes if any |
* |
* @return \Smarty|\Smarty_Internal_Template |
* @throws SmartyException when the plugin tag is invalid |
*/ |
public function registerPlugin( |
Smarty_Internal_TemplateBase $obj, |
$type, |
$name, |
$callback, |
$cacheable = true, |
$cache_attr = null |
) { |
$smarty = $obj->_getSmartyObj(); |
if (isset($smarty->registered_plugins[ $type ][ $name ])) { |
throw new SmartyException("Plugin tag '{$name}' already registered"); |
} elseif (!is_callable($callback)) { |
throw new SmartyException("Plugin '{$name}' not callable"); |
} else { |
$smarty->registered_plugins[ $type ][ $name ] = array($callback, (bool)$cacheable, (array)$cache_attr); |
} |
return $obj; |
} |
} |