IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Afficher une URL dans le label d'un formulaire [1.x]


Sujet :

Symfony PHP

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    Points : 3
    Points
    3
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    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.

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    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 .

  4. #4
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    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.

  5. #5
    Candidat au Club
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    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>.

  6. #6
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    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...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher une variable dans un label.
    Par Pierredc dans le forum GTK+
    Réponses: 1
    Dernier message: 23/10/2014, 13h39
  2. Réponses: 6
    Dernier message: 15/06/2009, 21h49
  3. Afficher une durée dans un label
    Par Coluche dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2008, 23h19
  4. Réponses: 3
    Dernier message: 17/07/2007, 15h21
  5. [MySQL] Vérifier une URL dans la validation d'un formulaire
    Par groupejtt dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 30/11/2006, 11h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo