diff options
author | Mario Vavti <mario@mariovavti.com> | 2015-12-06 23:12:37 +0100 |
---|---|---|
committer | Mario Vavti <mario@mariovavti.com> | 2015-12-06 23:12:37 +0100 |
commit | a6cb25020bb5200cc3c00ecc941ddb751644fbcc (patch) | |
tree | 29811e6cf8d702746558186ee3b7c466de791d33 /library/Smarty/libs/sysplugins/smarty_internal_method_registerfilter.php | |
parent | 26c465ad0c1d5b6801507ed190430f44ac92c672 (diff) | |
download | volse-hubzilla-a6cb25020bb5200cc3c00ecc941ddb751644fbcc.tar.gz volse-hubzilla-a6cb25020bb5200cc3c00ecc941ddb751644fbcc.tar.bz2 volse-hubzilla-a6cb25020bb5200cc3c00ecc941ddb751644fbcc.zip |
add missing smarty files
Diffstat (limited to 'library/Smarty/libs/sysplugins/smarty_internal_method_registerfilter.php')
-rw-r--r-- | library/Smarty/libs/sysplugins/smarty_internal_method_registerfilter.php | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_method_registerfilter.php b/library/Smarty/libs/sysplugins/smarty_internal_method_registerfilter.php new file mode 100644 index 000000000..84b2c2630 --- /dev/null +++ b/library/Smarty/libs/sysplugins/smarty_internal_method_registerfilter.php @@ -0,0 +1,88 @@ +<?php + +/** + * Smarty Method RegisterFilter + * + * Smarty::registerFilter() method + * + * @package Smarty + * @subpackage PluginsInternal + * @author Uwe Tews + */ +class Smarty_Internal_Method_RegisterFilter +{ + /** + * Valid for Smarty and template object + * + * @var int + */ + public $objMap = 3; + + /** + * Valid filter types + * + * @var array + */ + private $filterTypes = array('pre' => true, 'post' => true, 'output' => true, 'variable' => true); + + /** + * Registers a filter function + * + * @api Smarty::registerFilter() + * + * @link http://www.smarty.net/docs/en/api.register.filter.tpl + * + * @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj + * @param string $type filter type + * @param callback $callback + * @param string|null $name optional filter name + * + * @return \Smarty|\Smarty_Internal_Template + * @throws \SmartyException + */ + public function registerFilter(Smarty_Internal_TemplateBase $obj, $type, $callback, $name = null) + { + $smarty = isset($obj->smarty) ? $obj->smarty : $obj; + $this->_checkFilterType($type); + $name = isset($name) ? $name : $this->_getFilterName($callback); + if (!is_callable($callback)) { + throw new SmartyException("{$type}filter \"{$name}\" not callable"); + } + $smarty->registered_filters[$type][$name] = $callback; + return $obj; + } + + /** + * Return internal filter name + * + * @param callback $function_name + * + * @return string internal filter name + */ + public function _getFilterName($function_name) + { + if (is_array($function_name)) { + $_class_name = (is_object($function_name[0]) ? get_class($function_name[0]) : $function_name[0]); + + return $_class_name . '_' . $function_name[1]; + } elseif (is_string($function_name)) { + return $function_name; + } else { + return 'closure'; + } + } + + /** + * Check if filter type is valid + * + * @param string $type + * + * @throws \SmartyException + */ + public function _checkFilterType($type) + { + if (!isset($this->filterTypes[$type])) { + throw new SmartyException("Illegal filter type \"{$type}\""); + } + } +}
\ No newline at end of file |