|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 94 ![]() |
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 :
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 |
||
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Développeur Web Inscription : mars 2005 Messages : 769 ![]() |
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.
|
|
|
00
|
|
|
#3 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Et si tu fais un css pour l'affichage de ton select, tu peux changer pour les ul...
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#4 | ||
|
Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 94 ![]() |
Merci pour les réponses, je suis arrivé grâce à
Code :
@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 |
||
|
|
00
|
|
|
#5 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
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).
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 94 ![]() |
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é |
|
|
00
|
|
|
#7 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Au risque de me répéter et comme je l'ai déjà dis au moins 2 fois ici, le code généré par le render est sémantiquement le bon. De plus, je ne suis pas sur que d'autres codes soient possible dans le cadre d'une balise select.
Il est utilisé tel quel par de nombreux sites qui arrivent très bien à le mettre en page. Donc, le mieux serait, à mon avis, de ne rien toucher et de laisser le plugin faire. Si réellement, il s'avèrerait impossible à ton graphiste d'utiliser le code généré, je pense que tu as alors deux solutions : changer de graphiste, modifier le render. Je pense que dans ce cas, la première solution est la bonne. Pour terminé, ce plugin est écrit par les mêmes personnes que celles qui ont écrit symfony, elles ont de nombreuses années d'expérience sur la construction d'applications qui génèrent du html, tu devrais pouvoir envisager sérieusement de leur faire confiance. Surtout si, comme tu le dis au départ, tu as toi même très peu d'expérience sur la mise en page.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 94 ![]() |
Ok donc je laisse le html tel qu'il est alors.
Par contre pour les <ul> j'ai tjs pas compris le problème que tu m'avais signalé dans ton post précédent car je n'avais rien touché ils ont été générés automatiquement par le widget sfWidgetFormDoctrineChoiceGrouped que j'utilise pour obtenir des checkboxes (multiple and expanded =true). |
|
|
00
|
|
|
#9 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Désolé, c'est entièrement de ma faute.
J'ai parfois tendance à considérer que tous le monde lit dans mon esprit... Je voulais simplement dire qu'il était possible de spécifier un style pour toute la liste et de le changer pour les ul, donc d'avoir l'effet que tu souhaitais... Trop court. Encore désolé.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#10 |
|
Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 94 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com