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 :

Les attributs des champs


Sujet :

Symfony PHP

  1. #1
    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 Les attributs des champs
    Salut tout le monde,

    Voilà je cherche l'équivalent de ça en Symfony2:

    $w = new sfWidgetFormInputText();
    $w->setAttribute('class', 'foo');

    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
    Les form sont en pleine refonte.

    Je pense qu'il est urgent d'attendre un peu.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Points : 658
    Points
    658
    Par défaut
    Je serais tenté de dire que l'ajout d'une classe (css) se fait dans le template de Twig.

    Edit:
    Dans le template concernant les attributs, la propriété "class" n'est pas disponible. Il faut d'abord l'ajouter et ajouter l'attribut dans la classe...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    {% block attributes %}
    {% spaceless %}
        id="{{ id }}" name="{{ name }}"{% if read_only %} disabled="disabled"{% endif %}{% if required %} required="required"{% endif %}{% if max_length %} maxlength="{{ max_length }}"{% endif %}
        {% for attrname,attrvalue in attr %}{{attrname}}="{{attrvalue}}" {% endfor %}
    {% endspaceless %}
    {% endblock attributes %}
    Un petit si la réponse convient. Merci.

  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
    En v1 il était possible de préciser pour un widget une classe.

    Ce qui permettait de générer l'affichage avec un simple render du formulaire tout en gardant la possibilité d'avoir un champ avec une classe particulière. Et donc de ne pas avoir à reprendre entièrement à la main le déroulé du formulaire dans le template.

    Je n'ai aucune idée de si ceci est repris dans le future form qui va arriver.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  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
    oui tout a fait d'accord, en v1 il était possible de préciser pour un Widget une classe.

    en espérant avoir la même manip dans le future form qui va arriver.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Points : 658
    Points
    658
    Par défaut
    Il ne fait pas partie des attributs par défaut en tout cas.
    Un petit si la réponse convient. Merci.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Points : 658
    Points
    658
    Par défaut
    J'ai confirmation que l'attribut 'class' (comme 'style') est possible par le biais du template uniquement. Ces attributs concernent le display et sont donc paramètrable par ce biais. Ce choix permet de séparer clairement la vue du reste. Cela me parait logique.

    Un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {{ form_widget(form.field_name, {'attr': {'class':'foo'}}) }}

    Un autre moyen plus général serait de modifier le block "{% block attributes %}" pour y intégrer l'attribut "class". N'oublions pas que la vue est dotée de "if". Vous pouvez donc facilement changer l'attribut "class" à votre guise.

    A noter qui si vous vous trouvez frustré de ne pas pouvoir le faire en php; il est possible d'utiliser un template PHP

    Voilou
    Un petit si la réponse convient. Merci.

  8. #8
    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
    Je crois que la refactorisation des forms permet a nouveau de pouvoir definir ces attributs depuis PHP. Il me semble avoir vu ca passer.

  9. #9
    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
    @RapotOR
    En Sf1 tu pouvais aussi le faire dans le template dans le même type de déclaration. La différence étant que tu pouvais le faire dans la partie configure du form, d'où, un form utilisé dans plusieurs template embarquait avec lui cette logique visuel. Il est malgré tout possible de forcer au niveau du template même si cela a été défini dans le configure.

    Je suis d'accord que coté conformité au MVC, il y a une entorse.

    Mais l'avantage est que si tu rends ton form avec le code minimal tu as cette logique qui s'applique.

    Bon, on va voir ce que nous donne la nouvelle mouture du form en Sf2
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Points : 658
    Points
    658
    Par défaut
    @winzou
    Je parlais déjà de la nouvelle mouture (je travaillais sur la branche 'form'). Sauf si j'ai vraiment loupé cela, il n'est pas possible de le faire. J'ai meme posé la question sur un commit de gihub (https://github.com/symfony/symfony/c...comment-350566).

    Sinon; au passage; la branche 'form' vient d'être appliquée à la branche 'master' à l'instant!

    Je comprends la facilité de minimiser la partie template et tout mettre dans le code (je le faisais) mais je crois que ce n'est pas la bonne approche. C'est surtout le cas lorsqu'on travaille à plusieurs sur un projet. Les personnes qui programment ne sont pas nécéssairement celle qui mettent en page.
    Un petit si la réponse convient. Merci.

  11. #11
    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 pense que cela dépend essentiellement du type de projet sur lequel tu travail et que (pour la 1) symfony s’adapte aux deux principaux types.

    Cas un, le site public de présentation où chaque page doit être léchée avec respect !

    Cas deux, le site "applicatif" qui permet de mettre à disposition a travers une interface web une application plus classique style ERP, Gestion d'association,...

    Dans le premier cas, où la présentation est essentiel, je suis d'accord avec toi, ceci doit se gérer dans le template, dans le deuxième cas, tu as intérêt à le gérer dans le form pour uniformiser l'interface et accélérer le développement.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/12/2007, 19h06
  2. [MySQL] Supprimer les informations des champs dans une table (suite)
    Par snakejl dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 26/05/2006, 15h37
  3. Récupérer les valeurs des champs créés dynamiquement
    Par outlawz dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/05/2006, 16h32
  4. les types des champs
    Par zidenne dans le forum Access
    Réponses: 3
    Dernier message: 18/11/2005, 12h27
  5. Réponses: 4
    Dernier message: 16/05/2005, 14h16

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