我目前使用codeigniter 2與ci-Smarty。剛剛嘗試添加一個聰明的輸出過濾器,但沒有多少運氣。它就好像功能找不到或什麼東西?Smarty輸出過濾器與Codeigniter和Ci-Smarty「不可調用」錯誤
我使用的插件作爲輸出濾波器功能,並具有以下的代碼:
LOCATION: /libraries/Smarty.php
// Set email output filter
$this->loadFilter('output', 'protect_email');
LOCATION:/THIRD_PARTY/Smarty的/插件/ 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;
}
上面好像把第e下面的smarty錯誤:
Fatal error: Uncaught exception 'SmartyException' with message 'outputfilter "protect_email" not callable' in /home/something/public_html/application/third_party/Smarty/sysplugins/smarty_internal_templatebase.php:717 Stack trace: #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(Array) #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('Parser', 'MY_', NULL, NULL) #7 /home/something/public_html/system/core/Loader.php(216): CI_Loa in /home/something/public_html/application/third_party/Smarty/sysplugins/smarty_internal_templatebase.php on line 717
對不起,它太長了!只是認爲看到整個錯誤可能會有所幫助。
非常感謝您的閱讀並希望有人能夠提供幫助。
- >編輯 也只是想明確設置使用的插件目錄的位置:
$this->setPluginsDir(config_item('plugin_directory'));
的呼應了這是正確的,但仍然得到了同樣的問題:(