diff options
Diffstat (limited to 'lib/smarty/sysplugins/smarty_internal_method_unloadfilter.php')
-rw-r--r-- | lib/smarty/sysplugins/smarty_internal_method_unloadfilter.php | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/smarty/sysplugins/smarty_internal_method_unloadfilter.php b/lib/smarty/sysplugins/smarty_internal_method_unloadfilter.php new file mode 100644 index 0000000..55e1596 --- /dev/null +++ b/lib/smarty/sysplugins/smarty_internal_method_unloadfilter.php @@ -0,0 +1,43 @@ +<?php + +/** + * Smarty Method UnloadFilter + * + * Smarty::unloadFilter() method + * + * @package Smarty + * @subpackage PluginsInternal + * @author Uwe Tews + */ +class Smarty_Internal_Method_UnloadFilter extends Smarty_Internal_Method_LoadFilter +{ + /** + * load a filter of specified type and name + * + * @api Smarty::unloadFilter() + * + * @link http://www.smarty.net/docs/en/api.unload.filter.tpl + * + * @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj + * @param string $type filter type + * @param string $name filter name + * + * @return Smarty_Internal_TemplateBase + * @throws \SmartyException + */ + public function unloadFilter(Smarty_Internal_TemplateBase $obj, $type, $name) + { + $smarty = $obj->_getSmartyObj(); + $this->_checkFilterType($type); + if (isset($smarty->registered_filters[ $type ])) { + $_filter_name = "smarty_{$type}filter_{$name}"; + if (isset($smarty->registered_filters[ $type ][ $_filter_name ])) { + unset($smarty->registered_filters[ $type ][ $_filter_name ]); + if (empty($smarty->registered_filters[ $type ])) { + unset($smarty->registered_filters[ $type ]); + } + } + } + return $obj; + } +} |