2012-09-25 83 views
0

我們使用的是智者,在smarty中修改數組內容?

在我們的觀點中我們有:

{if $header.showNav}...{/if}

,如果我們要設置我們使用:

$header = $smarty->getTemplateVars('header'); 
$header['showNav'] = true; 
$smarty->assign('header', $header); 

其中一期工程, 但它似乎相當漫長。

smarty是否提供了一種更容易管理的方法?

回答

2

爲什麼不推出自己的功能:

function updateSmarty($smarty, $templateVar, $key, $value) { 
    $templateVars = $smarty->getTemplateVars($templateVar); 
    $templateVars[$key] = $value; 
    $smarty->assign($templateVar, $templateVars); 
} 

然後你可以一條線就在你需要它:

updateSmarty($smarty, 'header', 'showNav', true); 

甚至:

function showNav($smarty) { 
    updateSmarty($smarty, 'header', 'showNav', true); 
} 

然後:

showNav($smarty); 
+0

是的,這就是我打算做的事情,我只是覺得smarty可能有內置的方式來做到這一點! – Hailwood