現在、ci-Smarty で codeigniter 2 を使用しています。スマートな出力フィルターを追加しようとしているだけですが、うまくいきません。関数が見つからないかのように?
出力フィルター関数としてプラグインを使用しており、次のコードがあります。
場所: /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;
}
上記は、次の賢いエラーをスローするようです:
致命的なエラー: /home/something/public_html/application/third_party/Smarty/sysplugins/smarty_internal_templatebase.php:717 でメッセージ 'outputfilter "protect_email" not callable' を伴うキャッチされない例外 'SmartyException' スタック トレース: #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('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 行 717/home/something/public_html/application/third_party/Smarty/sysplugins/smarty_internal_templatebase.php の 717 行目の CI_Loa/home/something/public_html/application/third_party/Smarty/sysplugins/smarty_internal_templatebase.php の 717 行目の CI_Loa
長くなってすみません!エラー全体を見ると役立つかもしれないと思っただけです。
読んでくれてありがとう。誰かが助けてくれることを願っています。
-->EDIT また、次を使用してプラグイン ディレクトリの場所を明示的に設定しようとしました。
$this->setPluginsDir(config_item('plugin_directory'));
正しい場所をエコーアウトしましたが、それでも同じ問題が発生します:(