【问题标题】:Smarty assign var to config file varsSmarty 将 var 分配给配置文件 vars
【发布时间】:2012-10-14 12:53:03
【问题描述】:

我的问题看起来和这个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

zh.conf

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

有谁知道我如何做到这一点?或者有没有更好的解决方案将变量分配给配置文件?

【问题讨论】:

    标签: php smarty variable-assignment configuration-files


    【解决方案1】:

    对不起,我不完全明白你想要完成什么。

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

    语言文件:

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

    请注意左侧没有 %s 或任何变量。它始终保持不变。

    选项 1:

    1. Smarty/代码分配: $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}

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

    选项 2:

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

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

    【讨论】:

    • 谢谢,但这种方式不是动态的。反馈用于我所有的应用程序反馈。所以例如File not found没有任何参数。
    • 抱歉,“不是动态的”是什么意思?当您决定要提供哪些反馈时 - 此时您应该知道当前答案的变量是什么。此时,当您知道变量时,您已经可以生成整个反馈字符串并将其保存在变量 $feedback 中,例如。稍后您可以将此变量分配给 smarty。如果变量列表完全随机,则没有其他选项。
    猜你喜欢
    • 2011-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    相关资源
    最近更新 更多