/** * Основной метод, вызываемый для регистрации плагинов, предоставляемых данным классом для выполнения смарти-функций */ public final function registerPlugins(Smarty $smarty) { $this->LOGGER->info('Регистрируем плагины класса [{}]', $this->CLASS); foreach ($this->getPlugins() as $tagName => $pluginType) { PSSmartyTools::checkFunctionType($pluginType); if (array_key_exists($pluginType, $smarty->registered_plugins) && array_key_exists($tagName, $smarty->registered_plugins[$pluginType])) { $this->LOGGER->info('Не зарeгистрирован плагин [{}]', 'smarty_' . $pluginType . '_' . $tagName); } else { $smarty->registerPlugin($pluginType, $tagName, array($this, 'do_' . $pluginType . '_' . $tagName)); $this->LOGGER->info('Зарeгистрирован плагин [{}]', 'smarty_' . $pluginType . '_' . $tagName); } } }
/** * Методы, позволяющие зарегистрировать плагины. * * @param string $tagName - название тега для вызова * @param string $pluginType - тип плагина */ protected final function register($tagName, $pluginType) { check_condition(is_array($this->PLUGINS), 'Регистрация функций Smarty допускается только в методе #registerPluginsImpl'); $this->PLUGINS[PsCheck::notEmptyString($tagName)] = PSSmartyTools::checkFunctionType($pluginType); }