2012-04-03 55 views
0

假設有一個模板:我可以運行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標題,它是在顯示方法中執行的?如果我首先執行獲取方法,然後是顯示方法 - 一切正常,但插件運行兩次。起初有沒有可能做插件?

回答

-1

Smarty templateэтоphpскрипт。獲取並顯示工具欄,顯示工具欄,顯示工具欄和顯示工具欄。 Такчтоесливыполнить取,апотом顯示,тоскриптвыполнитьсядважды - 取вернетрезультатс標題= 'Заголовок' ивызоветфункциюплагина,котораяизменитзначениепеременной(нозаголовоквэтотмоментбудетужеобработан)。您可以選擇顯示您的旅行目的地和旅遊目的地。

如果選擇取消顯示,請選擇取消選擇或取消選擇。 Можнонапримерпоместитьеенаачалошаблона,тогдаэффектотизмененияtitleбудетсразу。

+0

Даэтоявсепонимаюю。 Собственноивопрос,можнолиподругомуэтосделать? Еслипоместитьвначалошаблонатоикодвернетсявначалошаблона。可以使用本發明的方法,但可以使用其他方法來實現。附: спалилсясословом「Заголовок」))) – SirGrey 2012-04-03 06:43:16

+0

нет,таксделатьнельзя - откройскомпилированныйсмартишаблонивсепоймешь。 Переменнаяконкатенируетсявстрокувтомместе,гдеонастоитвшаблоне。 Тоестьэтовсеравночто$ result =「 $ title」; $ result。= pluginFunction(); - наtitleуженикакнеповлиять - онвэтотмоментужеявляетсяпростьчастьстрокирезультата。 Тоестьтутнадовоздействоватьнарезутат,аненатайтл。 – user1303559 2012-04-03 09:22:13

+0

Понятно,спасибозаответ。 Значитпридетсяперестраиватьвсюархитектуруподключениямодулей( – SirGrey 2012-04-03 09:45:26

相關問題