W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
registerDefaultPluginHandler() — 注冊默認(rèn)插件處理器
void registerDefaultPluginHandler(mixed callback);
注冊一個默認(rèn)的插件處理器,當(dāng)編譯程序無法找到模板中標(biāo)簽定義的時候,將調(diào)用這個處理器進(jìn)行回調(diào)。 參數(shù):
callback
defines the PHP callback. it can be either:
A string containing the function name
An array of the form array(&$object, $method)
with &$object
being a reference to an object and $method
being a string containing the method-name
An array of the form array($class, $method)
with $class
being the class name and $method
being a method of the class.
當(dāng)Smarty在編譯過程中遇到未定義(沒有注冊的插件或者不在插件目錄下)的標(biāo)簽時,Smarty將試圖調(diào)用默認(rèn)的插件處理器來處理。 如果未定義標(biāo)簽是在循環(huán)中,則該處理器將有可能被多次調(diào)用。
Example 14.38. 默認(rèn)插件處理器例子
<?php $smarty = new Smarty(); $smarty->registerDefaultPluginHandler('my_plugin_handler'); /** * 默認(rèn)插件處理器 * * 當(dāng)Smarty在編譯過程中遇到未定義的標(biāo)簽時調(diào)用 * * @param string $name 未定義標(biāo)簽的名稱 * @param string $type 標(biāo)簽類型 (比如: Smarty::PLUGIN_FUNCTION,Smarty::PLUGIN_BLOCK, Smarty::PLUGIN_COMPILER,Smarty::PLUGIN_MODIFIER,Smarty::PLUGIN_MODIFIERCOMPILER) * @param Smarty_Internal_Template $template 模板對象 * @param string &$callback 返回 回調(diào)函數(shù)名 * @param string &$script 當(dāng)回調(diào)函數(shù)是外部的,可返回 函數(shù)所在腳本的路徑。 * @param bool &$cacheable 默認(rèn)true, 如果插件是不可緩存的設(shè)置成false (Smarty >= 3.1.8) * @return bool 成功返回true */ function my_plugin_handler ($name, $type, $template, &$callback, &$script, &$cacheable) { switch ($type) { case Smarty::PLUGIN_FUNCTION: switch ($name) { case 'scriptfunction': $script = './scripts/script_function_tag.php'; $callback = 'default_script_function_tag'; return true; case 'localfunction': $callback = 'default_local_function_tag'; return true; default: return false; } case Smarty::PLUGIN_COMPILER: switch ($name) { case 'scriptcompilerfunction': $script = './scripts/script_compiler_function_tag.php'; $callback = 'default_script_compiler_function_tag'; return true; default: return false; } case Smarty::PLUGIN_BLOCK: switch ($name) { case 'scriptblock': $script = './scripts/script_block_tag.php'; $callback = 'default_script_block_tag'; return true; default: return false; } default: return false; } } ?>
回調(diào)方法必須是靜態(tài)的,如函數(shù)名稱或者一個包含類和方法名的數(shù)組。
不支持如對象方法等動態(tài)的回調(diào)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: