我可以运行Smarty插件来显示方法吗?

时间:2012-04-03 06:12:59

标签: smarty

假设有一个模板:

<html>
    <head>
    <title>{$title}</title>
    </head>
    <body>
    {mod name='block' }
    </body>
</html>

有一个插件:

function smarty_function_mod($params, &$smarty) {
$core->smarty->assign('title', 'New title'); 
} 

在主要代码中:

$smarty->assign('title', 'Заголовок');
$smarty->display('template.tpl');

所以问题 - 如何从插件中为var标题指定一个新值,它是在display方法中执行的?如果我首先执行fetch方法,然后显示方法 - 一切正常,但插件运行两次。是否有可能首先进行插件?

1 个答案:

答案 0 :(得分:-1)

Smarty模板этоphpскрипт。抓取并显示простоеговыполняют,толькоfetchвозвращаетрезультат,аdisplayвыводит。 Такчтоесливыполнить取,апотом显示,тоскриптвыполнитьсядважды - 取вернетрезультатс标题= 'Заголовок' ивызоветфункциюплагина,котораяизменитзначениепеременной(нозаголовоквэтотмоментбудетужеобработан)。 Потом显示выведетужеизмененныйзаголовокиопятьвызоветфункциюплагина。

Вобщемнадовызыватьфункциюплагинадовызоваfetchилиdisplay。 Можнонапримерпоместитьеевначалошаблона,тогдаэффектотизмененияtitleбудетсразу。