1: | <?php |
2: | |
3: | /** |
4: | * Smarty Method SetAutoloadFilters |
5: | * |
6: | * Smarty::setAutoloadFilters() method |
7: | * |
8: | * @package Smarty |
9: | * @subpackage PluginsInternal |
10: | * @author Uwe Tews |
11: | */ |
12: | class Smarty_Internal_Method_SetAutoloadFilters |
13: | { |
14: | /** |
15: | * Valid for Smarty and template object |
16: | * |
17: | * @var int |
18: | */ |
19: | public $objMap = 3; |
20: | |
21: | /** |
22: | * Valid filter types |
23: | * |
24: | * @var array |
25: | */ |
26: | private $filterTypes = array('pre' => true, 'post' => true, 'output' => true, 'variable' => true); |
27: | |
28: | /** |
29: | * Set autoload filters |
30: | * |
31: | * @api Smarty::setAutoloadFilters() |
32: | * |
33: | * @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj |
34: | * @param array $filters filters to load automatically |
35: | * @param string $type "pre", "output", … specify |
36: | * the filter type to set. |
37: | * Defaults to none treating |
38: | * $filters' keys as the |
39: | * appropriate types |
40: | * |
41: | * @return \Smarty|\Smarty_Internal_Template |
42: | * @throws \SmartyException |
43: | */ |
44: | public function setAutoloadFilters(Smarty_Internal_TemplateBase $obj, $filters, $type = null) |
45: | { |
46: | $smarty = $obj->_getSmartyObj(); |
47: | if ($type !== null) { |
48: | $this->_checkFilterType($type); |
49: | $smarty->autoload_filters[ $type ] = (array)$filters; |
50: | } else { |
51: | foreach ((array)$filters as $type => $value) { |
52: | $this->_checkFilterType($type); |
53: | } |
54: | $smarty->autoload_filters = (array)$filters; |
55: | } |
56: | return $obj; |
57: | } |
58: | |
59: | /** |
60: | * Check if filter type is valid |
61: | * |
62: | * @param string $type |
63: | * |
64: | * @throws \SmartyException |
65: | */ |
66: | public function _checkFilterType($type) |
67: | { |
68: | if (!isset($this->filterTypes[ $type ])) { |
69: | throw new SmartyException("Illegal filter type '{$type}'"); |
70: | } |
71: | } |
72: | } |
73: |