2010-01-12 2 views
3

Nous avons cette fonction Smarty qui renvoie le code HTML pour les modèles. Cependant, il est également possible que la fonction renvoie une chaîne vide, que nous souhaitons maintenant identifier. Notre système fonctionne de manière stable depuis des années, donc je suis à la recherche de la solution la moins invasive possible.faire des choses avec la valeur de retour de la fonction smarty?

Est-il possible d'affecter la valeur de retour à une variable smarty? J'ai essayé de l'assigner à une variable Javascript, cependant, parce qu'une partie du HTML est générée par l'utilisateur, la chaîne de retour pourrait être un mélange de guillemets doubles et simples, ce qui cause des problèmes dans IE (malheureusement la majorité de nos utilisateurs).

<script type="text/javascript"> 
var html = '{smarty function}'; //IE chokes on mixed quotes 
</script> 

Toute aide appréciée!

Répondre

6

Utilisez le modificateur escape, par exemple:

{$variable|escape:'quotes'} 

Pour la fonction Smarty, vous pouvez d'abord essayer si {smarty_function|escape:'quotes'} fonctionne, si elle ne vous avait pas alors d'assigner la sortie de la fonction dans une variable avant de échapper, et pour que vous utilisez capture:

{capture name=mycapture}{smarty_function}{/capture} 
{$smarty.capture.mycapture|escape:'quotes'} 
+0

Vous venez de faire ma journée. Merci beaucoup! – jodeci

Questions connexes