phpformattingsmartysmarty3

smarty processes strong (text) format over php -> put out modified php only


Have prepared a string modification with php in the classes file. Now in the smarty template (tpl) file when outputting the string I get a wrong text format. The project uses smarty 3.1-DEV and php 5.6.

I have this php code and assigned the variable in php class file:

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

Outputting directly with "echo" over classes file I get on front end the desired format: "Zutaten: MARILLEn (75%), Zucker, Zitronensaft, Geliermittel: PEKTINe (aus Apfel)"

Implementation over smarty output is wrong: "Zutaten: Marillen (75%), Zucker, Zitronensaft, Geliermittel: Pektine (aus Apfel)"

Here like I implemented to the tpl-file:

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

Due to the fact that I don't know much of the project and of smarty it is nearly impossible to fix this for me. Any help is appreciated.


Solution

  • I found a solution to implement it directly on the template: smarty replace multiple values

    problem is to hardcode all diffrent possibilities to replace into two arrays. Maybe I can find another solution for this.