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 :

[Form] Personnaliser le field_row des checkboxes [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web PHP5/Symfony
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 14
    Points
    14
    Par défaut [Form] Personnaliser le field_row des checkboxes
    Bonjour,

    J'ai une question toute simple : comment personnaliser le field_row des checkboxes de mon formulaire ?

    Le but est de ne pas avoir les checkboxes les unes à la suite des autres mais en liste (ul > li).

    Merci par avance.

  2. #2
    Inscrit
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 476
    Points
    476
    Par défaut
    Salut,

    La doc sur le form theming est pour toi : http://symfony.com/doc/current/book/...l#form-theming

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Web PHP5/Symfony
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Merci pour ta réponse.

    J'avais déjà parcouru la doc, mon problème ne concerne pas le form theming, mais le cas particulier d'un field_row de checkbox !

  4. #4
    Inscrit
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 476
    Points
    476
    Par défaut
    ? Bah c'est exactement ca.

    Regarde ce que tu peux personnaliser ici : https://github.com/symfony/symfony/b...yout.html.twig
    Et personnalise le en suivant la doc que j'ai mis au dessus.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 96
    Points : 111
    Points
    111
    Par défaut
    c'est exactement le bloc checkbox_widget:

    {% block checkbox_widget %}
    {% spaceless %}

    <li>

    <input type="checkbox" {{ block('widget_attributes') }}{% if value is defined
    %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} />

    </li>

    {% endspaceless %}
    {% endblock checkbox_widget %}

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur Web PHP5/Symfony
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    J'ai également vu cela, mais justement, je n'ai rien trouvé pour personnaliser le field_row de checkboxes (pas de checkbox_field_row ou chose dans le genre !).

    Mon fields.html.twig actuel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    {% block field_row %}
        {% spaceless %}
            <div class="clearfix">
                {{ form_label(form, label) }}
     
                <div class="input">
                    {{ form_widget(form) }}
                    {{ form_errors(form) }}
                </div>
            </div>
        {% endspaceless %}
    {% endblock field_row %}
    (j'ai adapté pour l'utilisation du framework CSS Twitter - Bootstrap)

    Comment intégrerais-tu la personnalisation du field_row des checkboxes pour avoir une liste ul > li avec ça ?

    Merci encore pour tes réponses.

  7. #7
    Inscrit
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 476
    Points
    476
    Par défaut
    Aah ok. Tu peux pas. C'est pas logique, imagine t'es en layout table, il te met une balise table avant, des tr au milieu, puis quand il arrive aux checkboxes, des li ? Non c'est impossible.

    Par contre si t'as un formulaire avec que des checkboxes, et que tu veux que tout soit en li, tu peux créer un layout_ul.

  8. #8
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Points : 872
    Points
    872
    Par défaut
    Voici la personnalisation que j'ai faite (extrait) :

    Certaines choses sont spécifiques à mon code (attr.noLabel et attr.chkbx_style).... Tu peux te servir de attr pour définir une classe (pas au sens CSS, mais un attributs personnalisé, comme mes chckbx_style ) sur laquelle tes checkboxs seront affichées en liste

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
     
    {# Pas de label global sur les choices expanded #}
    {% block choice_row %}
    {% spaceless %}
    <div class="field_row">
          {#{% if not expanded %}
             {{ form_label(form) }}
          {% endif %}#}
          {% if  not attr.noLabel is defined %}
             {{ form_label(form) }}
          {% endif %}
          {% if help is defined %}
             {{ form_widget(form, {'help':help, 'attr':attr}) }}
          {% else %}
             {{ form_widget(form, {'attr':attr}) }}
          {% endif %}
          {{ form_errors(form) }}
    </div>
    <div class="spacer"></div>
    {% endspaceless %}
    {% endblock choice_row %}
     
    {# Le label vient après l'input sur les radios #}
    {% block radio_row %}
    {% spaceless %}
    <div class="field_row">
          {{ form_widget(form, {'attr':attr}) }}
          {{ form_label(form) }}
          {{ form_errors(form) }}
    </div>
    <div class="spacer"></div>
    {% endspaceless %}
    {% endblock radio_row %}
     
    {% block checkbox_row %}
    {% spaceless %}
    <div class="field_row">
       {% if attr.chkbx_style is defined %}
          {% if attr.chkbx_style == 'left_label' %}
          {# Le label est placé avant l'input sur les checkbox (s'intègre dans la disposition standard des forms) #}
             {{ form_label(form, null, {'attr' : attr}) }}
             {% if help is defined %}
                   {{ form_widget(form, {'help':help, 'attr':attr}) }}
             {% else %}
                   {{ form_widget(form, {'attr':attr}) }}
             {% endif %}
             {{ form_errors(form) }}
          {% endif %}
       {% else %}
       {# Le label vient après l'input si left_label n'est pas déclaré #}
             {% if help is defined %}
                   {{ form_widget(form, {'help':help, 'attr':attr}) }}
             {% else %}
                   {{ form_widget(form, {'attr':attr}) }}
             {% endif %}
             {{ form_label(form) }}
             {{ form_errors(form) }}
       {% endif %}
    </div>
    <div class="spacer"></div>
    {% endspaceless %}
    {% endblock checkbox_row %}
    Donc pour moi c'est possible
    • Mon blog PHP : http://blog.alterphp.com
    • "Peace cannot be kept by force, it can only be achieved by Understanding" -- Albert Einstein

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur Web PHP5/Symfony
    Inscrit en
    Janvier 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Génial pc.bertineau, c'est exactement ce que je cherchais. Je vais me pencher sur cet exemple en l'adaptant à mon cas (le framework CSS Twitter Bootstrap).

    Merci à tous.

  10. #10
    Inscrit
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 476
    Points
    476
    Par défaut
    Décidément Symfony me surprendra toujours !

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    On peut aussi tester le type du champ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    {% block field_row %}
    {% spaceless %}
        {% if 'checkbox' in types %}
            <!-- Mise en forme pour les checkboxes -->
        {% else %}
            <!-- Mise en forme par defaut -->
        {% endif %}
    {% endspaceless %}
    {% endblock field_row %}

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

Discussions similaires

  1. [Dojo] Formater des checkBox sous forme de radioBouton
    Par DevBetty dans le forum Bibliothèques & Frameworks
    Réponses: 10
    Dernier message: 04/02/2010, 17h53
  2. Réponses: 0
    Dernier message: 27/01/2010, 18h08
  3. creer des forms personnalisables
    Par warubi dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/09/2008, 10h10
  4. [JavaScript] [SRC] personnaliser des checkboxes
    Par SpaceFrog dans le forum Contribuez
    Réponses: 22
    Dernier message: 29/02/2008, 22h36

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