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 30/05/2011, 10h49   #1
Invité de passage
 
Inscription : mai 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 3
Points : 1
Points : 1
Par défaut Afficher une URL dans le label d'un formulaire

Bonjour,
J'ai actuellement un soucis avec un formulaire sfWidgetFormSelectRadio.
Je voudrai faire en sorte que le label associé à chaque radio-button soit en fait une URL.

Actuellement je passe à mon formulaire un tableau du type suivant :
Code :
1
2
3
4
5
 
array
  '1234' => string '<a href="http://monurl/1234">Page1</a>'
  '1235' => string '<a href="http://monurl/1235">Page2</a>'
  '1236' => string '<a href="http://monurl/1236">Page3</a>'
Ensuite j'affiche mon formulaire avec la méthode RenderRow.

Le soucis , c'est qu'à l'affichage le lien URL n'est pas interprété. Mon formulaire s'affiche bien , mais le string est affiché complètement (avec les balise <a href=""></a>").
Est ce quelqu'un verrait comment ressoudre ce problème ?

Merci d'avance.
Aerths est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 16h55   #2
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
Il n'y a pas de solution simple.

Ta liste est rendue par l'objet sfWidgetFormSelectRadio et plus particulièrement la méthode formatChoice().

Le problème est que cette méthode escape ton code.

Il faudrait donc faire un objet enfant de sfWidgetFormSelectRadio avec une méthode formatChoice qui, soit ne ferait pas d'escape, soit génèrerait la balise <a> à partir d'un url_for() (plus propre).

Tu peux créer cet objet dans un dossier (à créer) lib/widget/ dans lequel tu peux créer un objet du genre sfWidgetFormSelectRadioUrl.
__________________
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 30
Vieux 06/06/2011, 12h28   #3
Invité de passage
 
Inscription : mai 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 3
Points : 1
Points : 1
Oui je me suis résolu à faire un widget qui hérite de la classe sfWidgetFormSelectRadio et j'ai enlevé le self::escapeOnce dans la méthode formatChoices.
Résultat ça marche parfaitement.

Merci pour ton aide .
Aerths est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2011, 00h10   #4
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
Attention, le fait de supprimer le self::escapeOnce rend ton code sensible à une attaque. Il est indispensable que tu t'assures que les données affichées soient, soit entrée par et uniquement par des personnes parfaitement sur, soit qu'il soit échapé par toi par ailleurs.
__________________
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
Vieux 09/06/2011, 12h03   #5
Invité de passage
 
Inscription : mai 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 3
Points : 1
Points : 1
Je récupère les données à partir d'une API donc normalement c'est bon , non ?
Sinon je me pencherai sur ta seconde proposition , faire en sorte que le widget génère les balises <a>.
Aerths est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 18h35   #6
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
Je ne suis pas sur de ce que tu veux dire par "Je récupère les données à partir d'une API". Le danger étant que tu ne peux jamais être sur des données qui arrivent, même si c'est toi qui a écris le prg en face, rien ne dit que quelqu'un ne ce fait pas passer pour lui...
__________________
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 17h13.


 
 
 
 
Partenaires

Hébergement Web