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 :

modifier le render de sfWidgetFormDoctrineChoiceGrouped


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 104
    Par défaut modifier le render de sfWidgetFormDoctrineChoiceGrouped
    Bonjour à tous,
    j'utilise dans un formulaire le widget sfWidgetFormDoctrineChoiceGrouped du plugin sfFormExtraPlugin. Mon but est d'avoir des checkbox regroupées par catégories. Jusque la tout va bien, le problème c'est le rendu HTML, je me retrouve avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Categorie1
    <ul>
    <li>Checkbox1</li>
    <li>Checkbox2</li>
    ...........
    <li>CheckboxX</li>
    </ul>
    Categorie2
    <ul>
    <li>Checkbox Y</li>
    <li>Checkbox </li>
    ...........
    <li>Checkbox Z</li>
    </ul>
    Le problème c'est qu'il n'y a pas de balises autour des champs de la Catégorie. J'aurai voulu un truc du genre <h2 id="idcat1">Categorie1</h2> afin de pouvoir appliquer du CSS à ma catégorie ainsi que du code Javascript: Je veux que pour une personne n'ayant pas activé Javascript tout apparaisse sur la même page et pour une personne avec Javascript pouvoir afficher chaque catégorie sous forme d'onglets cliquables.


    J'ai donc cherché comment ajouter des balises HTML autour de catégorie, mais je n'ai pas trouvé comment. Je me doute qu'il faille redéfinir la fonction render() et j'ai cherché des heures dans l'API sans trouver.
    Merci pour votre aide,
    John

  2. #2
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    Tu peux dériver ton widget et surcharger la méthode render() en effet mais le plus simple (donc le plus sûr) serait d'utiliser les options renderer_class, renderer_options ou renderer (cf. la doc du sfWidgetFormChoice) : tu définis un widget à toi qui va s'occuper exclusivement du rendu et tu t'en sers comme renderer pour ton sfWidgetFormDoctrineChoiceGrouped.

  3. #3
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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
    Par défaut
    Et si tu fais un css pour l'affichage de ton select, tu peux changer pour les ul...

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 104
    Par défaut
    Merci pour les réponses, je suis arrivé grâce à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    'renderer_options'=>array('template'=>'<h2>%group%</h2>%options%')
    que j'ai inséré dans la déclaration de mon widget.
    @Michel: j'ai pas compris pour les <ul>? Pourquoi vaut mieux mettre autre chose? ps: je ne suis pas celui qui va mettre le css, étant donné mes talents de designer et mon horrible gout artistique je compte demander de l'aide mais je veux programmer les templates de manière à ce que cette personne n'ait que les templates et pas le code à toucher.

    Sinon j'ai regardé un peu plus les codes de l'API et j'ai toujours du mal à comprendre comment tout celà marche. J'ai vu le code source de la méthode render() de sfwidgetFormChoice et j'ai vu aussi qu'elle appelait une méthode getRenderer() mais je suis resté incapable de comprendre le mécanisme. Si quelqu'un avait un exemple d'override de la méthode render() pour par exemple changer les '<ul>' en '<ol>' ou faire ce que j'ai fait mais directement en override.

    Merci et bon week end à tous,
    John

  5. #5
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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
    Par défaut
    Parce que le code généré permettra à un designer de faire la mise en page qu'il souhaite sans avoir besoin de retoucher le dom. Sauf exception particulièrement exceptionnel, mais je doute que tu y sois.

    J'ai démonter plusieurs render, mais pas celui-ci en particulier. En suivant bien les méthodes et avec un peu de rétro ingénieurerie, cela ne devrait pas être trop compliqué (enfin, si, avec l'objet et symfony, ce n'est jamais évident du premier coup).

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 104
    Par défaut
    Merci pour ta réponse,
    je vais donc m'attaquer au render,
    par contre pour les <ul> et pour tous les autres éléments des pages view tu préconise quoi? Je m'explique, pour qu'un designer puisse travailler proprement avec quelles balises html est il conseillé de générer un formulaire, une page qui affiche des objets de la bdd?
    Je n'en suis pas encore là mais si je peux faire le travail proprement dès le début ça sera tjs ça de gagné

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/01/2008, 11h07
  2. [renderer] HtmlDataTable modifier
    Par seddik_saber dans le forum JSF
    Réponses: 3
    Dernier message: 29/10/2007, 12h04
  3. Réponses: 5
    Dernier message: 27/11/2002, 14h08
  4. [VB6] [MDI] Modifier form en MDIform
    Par fikou dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 12/09/2002, 13h48
  5. Réponses: 5
    Dernier message: 06/08/2002, 20h08

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