2013-04-06 35 views
0

在將變量分配給smarty對象之前,有沒有辦法從smarty(3)模板文件中獲取所有已使用的變量?從smarty模板文件中讀取已使用的變量

比如我有下面的模板文件:

Hello {$user.firstname},<br /> 
You are active in the following groups:<br /> 
{foreach from=$user.groups item=group} 
    - {$group.name}<br /> 
{/foreach} 
<br /> 
The city you live in is: {$city} 

現在的原因IM問的是,因爲不是讓所有用戶的信息,我只是想創建取決於智者所使用的變量的查詢。

反正有這樣做的以下內容:

$smarty = new smarty; 

$result = $smarty->getVariablesFromTemplate('index.tpl'); 

print_r($result); 

/* outputs: 
array(
    'user' => array(
     'firstname' => true, 
     'groups' => array(
     'name' => true 
    ), 
     'city' => true 
    ) 
); 
*/ 

回答

0

我不知道你的SQL但是你可以通過下面的代碼

$tpl_vars = $smarty->_tpl_vars; 
訪問(使用 $smarty->assign('var', 'value'))分配給Smarty模板變量
+1

這樣做的好方法實際上是使用'$ smarty-> getTemplateVars();'但是我不想讀取已分配給模板的變量,即時嘗試讀取模板文件中使用的變量。 – jeffreydev 2013-04-06 14:50:01

+0

爲此,您必須解析我認爲的模板文件。 – Ejaz 2013-04-07 10:05:22