【问题标题】:cant find a word with strpos in smarty (prestashop)在 smarty (prestashop) 中找不到带有 strpos 的单词
【发布时间】:2019-02-01 11:47:21
【问题描述】:

我将在 prestashop 中编辑生成交货单的 .tpl。

我想检查订单中的一件产品是否在标题中包含特定单词。 如果标题包含那个词,那么我会在html中生成一个表格

经过简单的研究,我发现一些用户使用strpos 来做到这一点,但我的编辑不起作用:

    {if strpos($order_detail.product_name, 'word') !== false}
    ...
    {/if}

我哪里错了?

【问题讨论】:

    标签: php html prestashop smarty


    【解决方案1】:

    我认为你不能在 smary 的 {if} 语句中使用 strpos 函数。

    {if},{elseif},{else} documentation 状态:

    如果启用了安全(sic!),则只允许来自安全策略的 $php_functions 属性的 PHP 函数。有关详细信息,请参阅安全部分。

    Security sections 说:

    $php_functions 是一个 PHP 函数数组,被认为是可信的,可以在模板中使用。要禁用对所有 PHP 函数的访问,请设置 $php_functions = null。一个空数组( $php_functions = array() )将允许所有 PHP 函数。默认为array('isset', 'empty', 'count', 'sizeof', 'in_array', 'is_array','time','nl2br')。

    strpos 不在此列表中。

    看来您已启用安全性。

    您应该在程序逻辑中使用strpos 并将结果存储到一个变量中,然后您可以在 smarty 模板中检查该变量

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      • 2019-08-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多