не могу найти слово с strpos в smarty (prestashop) - PullRequest
0 голосов
/ 01 февраля 2019

Я собираюсь отредактировать .tpl, который генерирует квитанции о доставке в prestashop.

Я хочу проверить, содержит ли один товар в заказе определенное слово в заголовке.Если заголовок содержит это слово, тогда я сгенерирую таблицу в формате html

. После простого исследования я обнаружил, что некоторые пользователи использовали strpos, но мое редактирование не работает:

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

Где я не прав?

1 Ответ

0 голосов
/ 01 февраля 2019

Я думаю, вы не можете использовать функцию strpos в выражении {if} smary.

{if},{elseif},{else} документация состояния:

Еслиsecurty (sic!) включен, разрешены только функции PHP из свойства $ php_functions политики securty.Подробнее см. В разделе «Безопасность».

В разделах Безопасность говорится:

$ php_functions - это массив функций PHP, которые считаются доверенными и могутбыть использованы из шаблона.Чтобы отключить доступ ко всем функциям PHP, установите $ php_functions = null.Пустой массив ($ php_functions = array ()) разрешит все функции PHP.По умолчанию используется массив ('isset', 'empty', 'count', 'sizeof', 'in_array', 'is_array', 'time', 'nl2br').

strposотсутствует в этом списке.

Похоже, что с вашей стороны включена защита.

Вам следует использовать strpos в логике вашей программы и сохранить результат в переменной, которую вы затем проверяетев шаблоне smarty

...