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 :

personnaliser les prototypes


Sujet :

Symfony PHP

  1. #1
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut personnaliser les prototypes
    Bonjour,

    j'ai un formulaire imbriqué à 3 niveaux avec des allow_add, allow_delete

    est possible de personnaliser les formulaire, l'emplacement des ADD, DELETE pour chaque formulaire.

    si oui comment? avec un exemple si possible.


    merci

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    Oui tu peux utiliser le form theming
    http://www.developpez.net/forums/d14...lisation-twig/

    Une autre solution ici (que j'utilisais avec SF version 2.0, mais je prefere maintenant le form theming)
    http://www.developpez.net/forums/d12...otype-donnees/

  3. #3
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    je voudrais surcharger un thème pour chaque _collection_widget


    donc pour ma collection de produit, voici le retour de mon produitType.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        public function getName()
        {
            return 'acme_prod_produit';
        }

    et donc je surcharge :

    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
    {% _acme_prod_produit_collection_widget %}                         <-- ça marche po 
        {% spaceless %}
            {% if prototype is defined %}
                {% set child = prototype %}
                {% set attr = attr|merge({'data-prototype': block('collection_widget_row'), 'class': attr.class|default('') ~ ' controls' }) %}
            {% endif %}
     
            <div {{ block('widget_container_attributes') }} style="width: auto; ">
                {{ form_errors(form) }}
     
                {% for child in form %}
                        {{ block('collection_widget_row') }}
                {% endfor %}
                {{ form_rest(form) }}
                {% if allow_add %}
                    <div class="col-md-12" style=""><a href="#" class="btn btn-primary sonata-collection-add pull-left"><i class="icon-plus"></i></a></div>
                {% endif %}
            </div>
        {% endspaceless %}
    {% endblock  %}
    et rien ne se passe



    (quand je surcharge le block pour toutes les collections ça marche ) mais c'est pas ce que je veux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    {% block collection_widget %}                   <-- ça marche mais c'est pas ce que je veux 
    ...

    une idée ?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    As tu mis dans ta template?
    {% form_theme form _self %}
    (ou form est la variable twig correspondant à ton formView)


    Ta template hérite t'elle bien d'une autre template ?
    (les blocks "surchargeur" doivent être défini en dehors des blocks qui s'affichent normalemen t (block 'container' , 'body', etc...)

    Es-tu sur du nom de ton block, le + sur est de consulter l'id généré coté html (et de la préfixé par '_')?

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    fausse manip

  6. #6
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    fausse manip

  7. #7
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    fausse manip

  8. #8
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    oui j'ai mis {% form_theme form _self %}
    et il va bien dans ma surcharge de block


    pour un simple_widget j'arrive à surcharger mais pas une collection.


    j'aimerais savoir si on peut surcharger une collection_widget ou pas ?

  9. #9
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    Citation Envoyé par dukoid Voir le message
    j'aimerais savoir si on peut surcharger une collection_widget ou pas ?
    oui c'est possible

    Si tu as un formulaire nommé "form" qui a un champ collection de produitType nommé "produits" , le nom du bloc devrait être "_form_produits_widget".

  10. #10
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    quand tu dis le nom du form c'est le name du form , c'est bien ça ?

  11. #11
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    quand tu dis le nom du form c'est le name du form , c'est bien ça ?
    Un formView a un nom (généralement fourni par la méthode getName du FormType),
    mais un form a également des sous formulaire, qui ont également un nom (généralement l'attribut auquel il est bindé).

    Le nom entier d'un formulaire serait donc la concaténation du nom de son (ses) parents et de son propre nom.

    Comme dis plus haut : le + sur est de consulter l'attribute "id" généré coté html

  12. #12
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    voila l'id :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    acme_bundle_documentbundle_dvrptype_unites_7_situations
    il y a un numéro 7 qui est inclus car collection .

    donc j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    {% block _acme_bundle_documentbundle_dvrptype_unites_collection_widget %}
    ....

    et ça ne marche toujours pas
    (js suis sous symfony2.1)

  13. #13
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    acme_bundle_documentbundle_dvrptype_unites_7_situations
    est l'id d'un champ du formulaire
    il est compris dans un formulaire parent (qui sera représenté par une div avec un id)
    ce formulaire parent est lui-même compris dans un fomulaire parent (correspondant à un champ collection, et qui possède également un id)
    et ce champ collection est compris dans un formulaire (dont l'id semble être acme_bundle_documentbundle_dvrptype => ce formulaire correspond à la balise html form)

    comme évoqué dans les liens que je t'ai donnée tu peux personaliser le champ prototype en utilisant le mot clé "entry"

    donc à priori le block
    _acme_bundle_documentbundle_dvrptype_unites_widget va étre utilisé pour afficher ta collection de sous formulaire
    _acme_bundle_documentbundle_dvrptype_unites_entry_row sera utilisé pour afficher chaque item de ton champ collection

  14. #14
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    merci bien, pour toutes ces infos.


    ça marche mais le comportement n'est pas ce que j'attendais.


    disons que j'ai une collection de produits.
    donc la ligne est composé d'un produit et de 2 boutons ADD et DELETE

    les lignes déjà présentes (que j'ai enregistré précédemment) sont bien formaté avec mon block perso par contre quand je fais ADD le prototype qui s'affiche n'est pas formaté.
    wtf ?

  15. #15
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    on ne trouve pas beaucoup d'info

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/08/2006, 17h10
  2. [FLASH MX2004] Personnaliser les champs de saisie?
    Par Rei Itchido dans le forum Flash
    Réponses: 5
    Dernier message: 21/03/2006, 17h45
  3. [CSS] personnaliser les boutons des balises INPUT
    Par Leviathan_72 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 08/11/2005, 15h22
  4. Personnaliser les pages d'erreurs
    Par Jeweller dans le forum XMLRAD
    Réponses: 3
    Dernier message: 03/06/2004, 12h26
  5. [FLASH MX2004] Personnaliser les scrollbars
    Par stephane eyskens dans le forum Flash
    Réponses: 10
    Dernier message: 09/10/2003, 12h53

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