Выходные фильтры Smarty с ошибкой Codeigniter и Ci-Smarty, не вызываемой

В настоящее время я использую codeigniter 2 с ci-Smarty. Просто пытался добавить умный выходной фильтр, но не очень повезло. Как будто функция не может быть найдена или что-то в этом роде?

Я использую плагин в качестве функции фильтра вывода и имею следующий код:

РАСПОЛОЖЕНИЕ: /libraries/Smarty.php

// Set email output filter
$this->loadFilter('output', 'protect_email');

РАСПОЛОЖЕНИЕ: / Third_Party/Smarty/plugins/function.protect_email.php

function smarty_function_protect_email($tpl_output, Smarty_Internal_Template $template)
{
    $tpl_output =
       preg_replace('!(\S+)@([a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,3}|[0-9]{1,3}))!',
                    '$1%40$2', $tpl_output);
    return $tpl_output;
}

Вышеприведенное, похоже, вызывает следующую умную ошибку:

Неустранимая ошибка: необработанное исключение «SmartyException» с сообщением «outputfilter «protect_email» не может быть вызвано» в /home/something/public_html/application/ Third_Party/Smarty/sysplugins/smarty_internal_templatebase.php:717 Трассировка стека: #0 /home/something/public_html /application/libraries/Smarty.php(46): Smarty_Internal_TemplateBase->loadFilter('output', 'protect_email') #1 /home/something/public_html/system/core/Loader.php(1095): CI_Smarty->__construct( Массив) #2 /home/something/public_html/system/core/Loader.php(975): CI_Loader->_ci_init_class('Smarty', '', NULL, NULL) #3 /home/something/public_html/system/core /Loader.php(216): CI_Loader->_ci_load_class('smarty', NULL, NULL) #4 /home/something/public_html/application/libraries/MY_Parser.php(29): CI_Loader->library('smarty') #5 /home/something/public_html/system/core/Loader.php(1099): MY_Parser->__construct() #6 /home/something/public_html/system/core/Loader.php(938): CI_Loader->_ci_init_class ("Парсер", "МОЙ_" , NULL, NULL) #7 /home/something/public_html/system/core/Loader.php(216): CI_Loa в /home/something/public_html/application/ Third_Party/Smarty/sysplugins/smarty_internal_templatebase.php в строке 717

Извините, что так долго! Просто подумал, что увидеть всю ошибку может помочь.

Большое спасибо за чтение и надеюсь, что кто-то может помочь.

--> РЕДАКТИРОВАТЬ Также только что попытался явно установить местоположение каталога плагинов, используя:

$this->setPluginsDir(config_item('plugin_directory'));

Эхо повторило местоположение, которое является правильным, но по-прежнему возникает та же проблема :(


person fl3x7    schedule 26.05.2012    source источник


Ответы (1)


Ладно, это была глупая ошибка.

Для всех, у кого есть такая же проблема, которую я только что просмотрел и понял, что плагин не следует называть обычной функцией. Например, это должно было называться:

outputfilter.protect_email.php

Также внесите те же поправки в имя функции, поэтому в моем случае ее следует вызывать:

smarty_outputfilter_protect_email

Это отлично сработало для меня.

person fl3x7    schedule 26.05.2012