1<?php 2 3/** 4 * Smarty Method AddAutoloadFilters 5 * 6 * Smarty::addAutoloadFilters() method 7 * 8 * @package Smarty 9 * @subpackage PluginsInternal 10 * @author Uwe Tews 11 */ 12class Smarty_Internal_Method_AddAutoloadFilters extends Smarty_Internal_Method_SetAutoloadFilters 13{ 14 /** 15 * Add autoload filters 16 * 17 * @api Smarty::setAutoloadFilters() 18 * 19 * @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj 20 * @param array $filters filters to load automatically 21 * @param string $type "pre", "output", … specify 22 * the filter type to set. 23 * Defaults to none treating 24 * $filters' keys as the 25 * appropriate types 26 * 27 * @return \Smarty|\Smarty_Internal_Template 28 * @throws \SmartyException 29 */ 30 public function addAutoloadFilters(Smarty_Internal_TemplateBase $obj, $filters, $type = null) 31 { 32 $smarty = $obj->_getSmartyObj(); 33 if ($type !== null) { 34 $this->_checkFilterType($type); 35 if (!empty($smarty->autoload_filters[ $type ])) { 36 $smarty->autoload_filters[ $type ] = array_merge($smarty->autoload_filters[ $type ], (array)$filters); 37 } else { 38 $smarty->autoload_filters[ $type ] = (array)$filters; 39 } 40 } else { 41 foreach ((array)$filters as $type => $value) { 42 $this->_checkFilterType($type); 43 if (!empty($smarty->autoload_filters[ $type ])) { 44 $smarty->autoload_filters[ $type ] = 45 array_merge($smarty->autoload_filters[ $type ], (array)$value); 46 } else { 47 $smarty->autoload_filters[ $type ] = (array)$value; 48 } 49 } 50 } 51 return $obj; 52 } 53} 54