在 smarty (prestashop) 中找不到带有 strpos 的词

cant find a word with strpos in smarty (prestashop)

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

我想检查订单中的某个产品是否包含标题中的特定单词。 如果标题中包含那个词,那么我将在 html

中生成一个 table

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

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

我哪里错了?

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

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

If securty (sic!) is enabled, only PHP functions from $php_functions property of the securty policy are allowed. See the Security section for details.

Security sections 说:

$php_functions is an array of PHP functions that are considered trusted and can be used from within template. To disable access to all PHP functions set $php_functions = null. An empty array ( $php_functions = array() ) will allow all PHP functions. The default is array('isset', 'empty', 'count', 'sizeof', 'in_array', 'is_array','time','nl2br').

strpos 不在此列表中。

看来您启用了安全性。

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