【问题标题】:Smarty variable to be accessed anywhere可在任何地方访问的 Smarty 变量
【发布时间】:2014-06-23 21:43:46
【问题描述】:

我在 my_module 中将变量 $my_variable 分配给 smarty:

global $smarty;
$smarty->assign('my_variable', self::get_code());

get_code() 是 my_module 类中的一个函数,它返回一个字符串。

{$my_variable} 中的值可在 my_module.tpl 中访问,该文件与 PrestaShop 的一个页面挂钩。

如何从控制器和 my_module.tpl 挂钩的模板页面中显示/访问这个 smarty 变量 {$my_variable}?

【问题讨论】:

    标签: php module overriding smarty prestashop-1.5


    【解决方案1】:

    你应该简单地使用:

    {$my_variable}
    

    在模板页面内。

    在控制器中你可以使用它

    $smarty->getTemplateVars('my_variable');
    

    当然,如果您在使用控制器或运行模板之后设置它可能无法正常工作,因此您应该在启动控制器之前做某处。

    【讨论】:

    • {$my_variable} 在模板中不可用,除非我在 my_module.tpl 中调用它,并且当我调用 $smarty->getTemplateVars('my_variable');在控制器内部,它返回 1。我试图覆盖 FrontController 类并调用函数 $my_arr = self::$smarty->getTemplateVars(); print_r($my_arr);覆盖是有效的,因为当我返回 parent::displayHeader();标题显示两次,所有值都分配给 $smarty。但是,我无法获得分配的变量 $my_variable。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 1970-01-01
    • 2013-09-15
    相关资源
    最近更新 更多