Smarty将var分配给配置文件变量

时间:2012-10-24 13:11:37

标签: php smarty variable-assignment configuration-files

我的问题与此Is it possible to put variables inside config files?

几乎相同

我有一个控制语言的配置文件。此外,我还有反馈显示的反馈div。

现在我想分配这样的反馈:

$smarty->assign('feedback', 'the_age_of_user_' . $user->name . '_is_changed_to_' . $user->age . '_years');

nl.conf

the_age_of_user_%s_is_changed_to_%s_years = De leeftijd van gebruiker %s gewijzigd naar %s jaar

en.conf

the_age_of_user_%s_is_changed_to_%s_years = The age of user %s is changed to %s years

有谁知道我怎么能做到这一点?或者是否有更好的解决方案将变量分配给配置文件?

1 个答案:

答案 0 :(得分:0)

很抱歉,但我不完全明白你想要完成什么。

在我们的项目中,我们有类似问题的解决方案:

语言文件:

the_age_of_user_is_changed = The age of user {user} is changed to {year} years

请注意左侧没有%s或任何变量。它总是不变的。

选项1:

  1. Smarty / code assigment: $smarty->assign("VARIABLE_TO_USE_IN_TEMPLATE", getLang('the_age_of_user_is_changed', array('user' => $user->name,'year' => $user->age));

  2. 然后,在Smarty中,您可以使用以下代码:{$VARIABLE_TO_USE_IN_TEMPLATE}

  3. 函数getLang从语言文件中读取字符串信息,并将所有{symbol}替换为相应的数据。

    选项2:

    1. 在模板中,我们有聪明的用户空间功能: {LANG key='the_age_of_user_is_changed' name=$user->name year=$user->age} Lang实际上是从前面的例子中调用函数getLang。

    2. 在代码中,您必须分配用户:$smarty->assign("user", $user);。在那之后,smarty将自己做所有事情。