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 :

Retirer les <li> d'un form avec checkboxes: autres suggestions? [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Vicrabb
    Femme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2010
    Messages : 66
    Par défaut Retirer les <li> d'un form avec checkboxes: autres suggestions?
    Bonjour,

    Je me lance dans ce sujet. Le rendu des formulaires avec checkboxes m'a un peu choquée visuellement avec les listes à puces visibles. J'ai bien trouvé deux solutions (avec certains inconvénients qui m'ont un peu perturbées pendant quelques jours avant que je trouve un moyen de les contourner hier) et j'ai bien entendu envisagé d'aller changer ce rendu directement à la source (mais je ne sais plus si j'ai abandonné par crainte de mettre la pagaille ou parce que je n'ai pas trouvé le fichier où se trouvait ce code).

    J'ai également trouvé de la documentation sur le sujet mais cela concernant sfWidgetFormChoice et non sfWidgetFormDoctrineChoice (qui est le widget utilisé).

    Donc ma question est: existe-t-il une autre manière de retirer ces listes à puce autre que:
    - bidouiller le code source
    - utiliser la fonction strip_tags()
    - faire un ccs spécialement pour cela
    ?


    Si cela est possible avec un nouveau renderer, que l'on m'explique alors comment le faire pour sfFormDoctrineChoice? Car aux dernières nouvelles, je ne peux pas lui mettre un renderer_class et je n'ai trouvé aucune documentation à ce sujet-là (d'où un post dans mon blog à ce propos avec mes deux malheureuses solutions).

    Pour info, les deux manières que j'ai trouvé sont:

    -strip_tags avec un str_replace pour avoir une liste verticale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php 
    //remplace les fins de li par des br pour un affichage vertical
    $form2 = str_replace("</li>", "<br/>",$form);
     
    //impression du formulaire en indiquant les tags autorisés
    echo strip_tags($form2,'<a><input><tr><b><td><th><label><select><option><ul><textarea><br/>');
    - ccs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #nouveau css form.css
    li{
    list-style-type: none;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //code dans _form.php
    <?php use_stylesheet('form.css') ?>

  2. #2
    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
    Dans le xhtml résultant de symfony (et dans tout xhtml) seul la notion de sémantique devrait être prise en compte.

    Et à ce niveau, la liste, pour une série de case à cocher me semble parfaitement adaptée.

    La gestion du rendu peut être parfaitement obtenue par une css adaptée.

    Je pense que mettre les cases et leurs libellé dans des div imbriqués ou tout autre système est une mauvaise idée.

  3. #3
    Membre éprouvé Avatar de Vicrabb
    Femme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2010
    Messages : 66
    Par défaut
    Pour moi, il est hors de question de faire des divs imbriquées, j'utilise la solution de la CSS adaptée et non strip_tags() si cela peut te rassurer . Je pense aussi que celle-ci est mieux adaptée, après avoir testé les deux il y a une ou deux semaines (du moins pour le test sans le str_replace et avec la règle css directement dans le main.css).

    J'ai mis la version strip_tags uniquement pour montrer que j'avais planché sur le problème (d'ailleurs, c'est normal de venir ici après avoir cherché et tenté de résoudre son problème) et pour éviter que quelqu'un me donne cela comme réponse.

    Mais en voyant ta réponse, tu me confirmes quelque part qu'il n'y a pas d'autres possibilités à part celles énumérées. Je vais laisser le sujet encore non-résolu un peu histoire de voir si d'autres ont quelque chose à proposer.

  4. #4
    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
    En fait, ce n'est pas tant dans symfony qu'est le problème, mais dans le html. Il faut que le fichier html reste sémantiquement viable et la liste reste le moyen par excellence pour l'énumération.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 212
    Par défaut
    Oui mais quand le client se fou de l' excellence il faut malheureusement l' écouter gentiment et trouver une solution. Si on est pas obliger de passer 15 jours pour faire qqchose de simple, c 'est le paradis !

  6. #6
    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
    Si tu as un client qui s'occupe du html généré et non pas de la page vue, tu as là un client exceptionnel ! En général, il ne savent même pas qu'il y a du HTML et du CSS.

    Je ne sais pas s'il faut le garder où le changer...

    Il reste à lui faire comprendre que la génération d'une liste ne change rien dans le cadre de l'affichage avec une CSS et rend la page plus lisible si la CSS n'est pas prise en charge par le terminal.

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

Discussions similaires

  1. [2.x] créer une collection de form avec checkbox
    Par jejeman dans le forum Symfony
    Réponses: 2
    Dernier message: 09/03/2015, 14h52
  2. acceder à un controle d'un form avec un autre form
    Par rafafa87 dans le forum VB.NET
    Réponses: 5
    Dernier message: 05/01/2014, 21h33
  3. [Débutant] Remplir une form avec un autre
    Par Hobbi1 dans le forum VB.NET
    Réponses: 2
    Dernier message: 26/12/2012, 11h19
  4. Réponses: 7
    Dernier message: 16/12/2012, 10h44
  5. Envoyer les données de plusieurs forms avec un autre formulaire
    Par malgache dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 19/10/2011, 17h15

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