2013-04-06 62 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