smarty обрабатывает строгий (текстовый) формат более php -> выводить только измененные php - PullRequest
0 голосов
/ 30 мая 2020

Подготовили модификацию строки с php в файле классов. Теперь в файле шаблона smarty (tpl) при выводе строки я получаю неправильный текстовый формат. В проекте используются smarty 3.1-DEV и php 5.6.

У меня есть код php, и ему присвоена переменная в php файле класса:

    $pattern = '/' . implode('|', $allergens_searchnames) . '/iu';
    echo preg_replace_callback($pattern, function ($m) { 
    return mb_strtoupper($m[0]); }, $prodIngredients);
    }
    $this->assign("articleIngredients", $prodIngredients);

Вывод напрямую с помощью " echo "поверх файла классов. Я получаю в интерфейсе желаемый формат:" Zutaten: MARILLEn (75%), Zucker, Zitronensaft, Geliermittel: PEKTINe (aus Apfel) "

Неправильная реализация вывода smarty:" Zutaten : Marillen (75%), Zucker, Zitronensaft, Geliermittel: Pektine (aus Apfel) "

Вот как я реализовал в tpl-файле:

<span class="pull-right">
{if isset($articleIngredients)}
<p>{$articleIngredients|unescape:'html'}</p>
{/if}   
</span>

Из-за того, что я Я не очень разбираюсь в проекте и в умных способностях исправить это для меня почти невозможно. Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 30 мая 2020

Я нашел решение реализовать это прямо в шаблоне: умная замена нескольких значений

проблема заключается в том, чтобы жестко запрограммировать все различные возможности для замены в два массива. Может быть, я найду для этого другое решение.

0 голосов
/ 30 мая 2020

Думаю, один из этих двух может вам помочь. Попробуйте использовать unescape: 'htmlall' или попробуйте распечатать текст как буквальный текст

<span class="pull-right">
{if isset($articleIngredients)}
<p>{$articleIngredients}|unescape:'htmlall'}</p>
{/if}  

source: https://www.smarty.net/docs/en/language.modifier.unescape.tpl

Что-нибудь в пределах {literal} {/ literal} теги не интерпретируются, а отображаются как есть.

<span class="pull-right">
{if isset($articleIngredients)}
<p>{literal}{$articleIngredients}{/literal}</p>
{/if}   
</span>

Источник: https://www.smarty.net/docs/en/language.function.literal.tpl

...