Създаване на плугин за smarty
Автор: jooorooo
Накратко ще ви покажа как да си създадете плугин за смарти. Ще го направя с някой опростен за да може да разберете смисъла.
За да не се налага да редактирате смарти файловете, а и да си запазите плугините при упдеит на смарти правим следното:
Веднага след:
$smarty = new Smarty();добавяме:
array_push($smarty->plugins_dir, 'myplug');като myplug е папка която се намира при папка ‘plugins’ на смарти.
просто в тази папка ще слагаме собствените си плугини.
сега ще създадем 1 плугин за htmlspecialchars .
Тъй като плугините на смарти за функции започват с име modifier. на файла, си създаваме 1 файл modifier.htmlsp.php в папка myplug .
функциите който са за плугин или по точно имената им започват с smarty_modifier_ .
Създаваме си 1 ф-ия
function smarty_modifier_htmlsp($string, $quote_style = false) която в завършен вид представлява:
function smarty_modifier_htmlsp($string, $quote_style = false)
{
$ar = array('ENT_COMPAT'=>ENT_COMPAT, 'ENT_QUOTES'=>ENT_QUOTES, 'ENT_NOQUOTES'=>ENT_NOQUOTES);
if($ar[$quote_style]) {
return htmlspecialchars($string, $ar[$quote_style]);
} else {
return htmlspecialchars($string);
}
}и сега вече имате ф-ия htmlsp която се ползва по следния начин:
{$ggg|htmlsp} без 2-ри аргумент на функцията или
{$ggg|htmlsp:ENT_QUOTES} с 2-ри аргумент на функцията.
по същия начин и логика може да си създадете каквито искате плугини.


