|
Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon. |
|
View previous topic :: View next topic |
Author |
Message |
leomat Smarty Rookie
Joined: 21 Oct 2010 Posts: 8
|
Posted: Thu Oct 21, 2010 2:26 pm Post subject: [Résolu] Balise literal? |
|
|
Bonjour tout le monde.
Il y a 6 mois, j'ai réalisé un gros projet en me servant de Smarty intensément. Durant ce projet, je n'ai jamais eu à utiliser les balises {literal}. Je n'en connaissais d'ailleurs pas l'existence.
Récemment, je me suis lancé dans un nouveau projet, et j'utilise encore Smarty. Mais maintenant, lors d'utilisation Javascript, je me retrouve obligé d'utiliser ces balises.
Imaginons le bout de code :
Code: |
function retrieveQualities(){
{foreach from=$qualities item=quality}
...
{/foreach}
}
|
Il me sort une erreur à la compilation puisque je n'ai pas entouré mon code de {literal}. Mais si je mets des balises, il ne reconnait pas alors mon foreach, et j'suis à nouveau obligé de remettre des balises...
Et je trouve ça super ennuyeux de devoir se servir des balises "literal".
N'existe-t-il pas un moyen de ne pas les utiliser?
Last edited by leomat on Fri Oct 22, 2010 10:37 pm; edited 1 time in total |
|
Back to top |
|
Gowser Smarty Pro
Joined: 19 Feb 2008 Posts: 104 Location: Nantes (France)
|
Posted: Fri Oct 22, 2010 8:08 am Post subject: |
|
|
Bonjour, il y a plusieurs solutions pour votre problème:
Solution 1 (un peu sale) :
Encapsuler les instructions javascript contenant des accolades dans les balises "literal" :
Code: |
{literal}
function retrieveQualities(){
{/literal}
{foreach from=$qualities item=quality}
...
{/foreach}
{literal}
}
{/literal}
|
Solution 2 (plus propre mais plus perturbante) :
Changez les délimiteurs de balises smarty !
sujet : http://www.smarty.net/manual/fr/language.escaping.php
Grace a cette méthode , cela nous permet de mêler les 2 langages sans interférence.
Solution 3 (la voix de la raison) :
Ne mettez pas de JS dans vos templates !!! C'est fou ca cette manie de mettre du javascript hors des fichiers externes fait pour (qui en plus centralise les scripts et les rends plus maintenable)
Cordialement |
|
Back to top |
|
leomat Smarty Rookie
Joined: 21 Oct 2010 Posts: 8
|
Posted: Fri Oct 22, 2010 9:00 pm Post subject: |
|
|
Merci pour votre réponse. La deuxième solution est peut-être celle que j'adopterai.
P.S : je n'inclus pas mon JS tel quel dans mes templates |
|
Back to top |
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|