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.
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.