Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/05/2011, 14h46   #1
Membre du Club
 
Inscription : mars 2005
Messages : 217
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : mars 2005
Messages : 217
Points : 54
Points : 54
Par défaut affichage variable balisé

Bonjour,

J'ai un souci avec une variable string qui contient des caractères balisées...
Je m'explique, dans mon action, je récupère une liste d'item que je place dans une variable comme ceci
Code :
$this->mavar = '<a href="toto">clic</a>'
dans mon template je fais un au lieu de m'afficher le html comme je veux, il m'affiche
Code :
&lt;a href="toto"&gt;clic etc...
Comment faire pour qu'il me mette bien le html ?
Merci !
__________________
Jérôme
jejeman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 16h57   #2
Membre du Club
 
Inscription : mars 2005
Messages : 217
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : mars 2005
Messages : 217
Points : 54
Points : 54
J'ai trouvé !
En faisant tout simplement un
Code :
echo html_entity_decode($mavar);
Et ca marche !

Merci !
__________________
Jérôme
jejeman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 18h32   #3
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Tous ce que tu prépares dans le contrôleur est automatiquement "echapé" par symfony. En fait, la variable string que tu as remplis dans ton contrôleur est embeded dans un objet de type sfOutputEscaper.

La bonne méthode est qui retourne la valeur non échapée.

Attention, il t’appartiens de vérifier que le code que tu y mets est propre, surtout si tu y mes un résultat basé sur des données utilisateurs. A toi le cas échéant d'échaper les valeurs.

Il est en général une mauvaise idée de préparer des sorties avec du html au niveau du contrôleur, on perd une partie de la séparation des couches entre C et V, il serait plus intéressant, à priori, de déporter la partie html dans le template, quitte a envoyer du contrôleur un tableau :
Code :
1
2
#contrôleur
$mavar = array('texte'=>'clic', 'url'=>'toto');
Code :
1
2
#template
<a href="<?php echo $mavar['toto'] ?>" ><?php echo $mavar['texte'] ?></a>
ou encore plus symfony
Code :
1
2
#template
<?php echo link_to($mavar['toto'], $mavar['url'] ?>
qui présente l'avantage de la séparation des couches et de conserver le moteur de génération de liens de symfony.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h16.


 
 
 
 
Partenaires

Hébergement Web