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 :

changer de layout avec un form


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 534
    Par défaut changer de layout avec un form
    Voila j'aurai besoin de changer de layout pour un formulaire.
    Pour l'ouverture ça ne pose pas trop de probléme en reprenant un post:
    lien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    questionnaire:
      url: /questionnaire/:light
      param: { module: monmodule, action: questionnaire, light: false }
    et dans l'action Edit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    if ( $request->getParameter('light') )
           $this->setLayout('light');
    par contre comment faire, apres que le formulaire soit soumis pour qu'il revienne au layout allégé ?

    j'ai tenté dans l'action processForm de récuperer le layout via
    $this->getLayout()
    mais il ne me retourne rien et donc je me retrouve avec le layout général.
    quelqu'un aurait il une idée ?

  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
    Et je suppose que, suivant le cas, le layout doit être différent et que la fenêtre peut être parfois l'un, parfois l'autre. Histoire de bien te simplifier la vie

    Il faut que, dans la fenêtre tu transfères un paramètre avec le layout a afficher. Soit, si c'est un form, dans un champ caché du form. Si non, dans tous les cas possible, dans l'url. Je le mettrais en dernier, du genre :
    http://www.monappli.loc/chemin/param1/param2/light.html
    ce qui pourra donner dans le cas plus courant un
    http://www.monappli.loc/chemin/param1/param2.html

    Et dans la route, du définis une valeur par défaut pour ce troisième (dans l'exemple) paramètre. S'il est a light, tu mets en light, si non, en normal. Et ça marche aussi en cas de form. Merci symfony !

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 534
    Par défaut
    disons que si j'ouvre un formulaire avec un certain layout j'aimerai que la page aprés soumission s'ouvre aussi avec le même layout.

    Si je comprend bien je doit, dans l'action Edit mettre une variable pour que dans le configure du form je crée un champ caché qui intègrera le nom de mon layout et surchargé mon action processForm pour tester si ce champ existe, quelle est sa valeur et modifié mon layout en conséquence ,

    Bien sur je travaille sur un module admin

  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


    Là, t'es mort !

    En module admin, je doute que cela soit gérable.

    Le truc c'est que tu dois bien noter quelque part que le prochain affichage de la donnée est prévue en light ! Et accessoirement, si ton user "oublie" l'écran ou le ferme sans le remplir, la séquence suivant ne doit pas, elle nécessairement commencer en light (c'est le plus compliqué à mon avis).

    Je vois deux solutions potentiel pour transférer l'information.
    Tu passes par un attribut sur l'objet user. Mais la partie "je reviens sur un qui ne doit pas être light" me semble plus difficile a gérer, a toi de voir si tu peux nettoyer.
    Autre possibilité, toujours avec l'objet user, mais tu crées des méthodes pour y mettre l'intelligence de la solution.
    A voir si tu as une donnée qui est unique dans ton écran et permettrai de l'identifier (un Id d'enregistrement + une table ?)
    La difficulté ici c'est de faire le distinguo entre deux ouvertures du même écran sur le même enregistrement, une en light et une en normal

    Mais pourquoi donc veux-tu construire un truc aussi compliqué ?

    Dans les idées a creuser aussi, deux route avec chacune un paramètre optionnel de même nom mais une valeur par défaut différente. Jamais tu ne renseigne le paramètre optionnel. Une route va ouvrir en normal, l'autre en light. Reste un "problème", comment indiquer la route a utiliser au form ??? là, je n'ai pas la solution.

    Mais qu'allait-il donc faire dans cette galère !

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 534
    Par défaut
    en faites je liste des enregistrements avec 2-3 données affiché.
    sur chaque enregistrement il y a un lien pour avoir plus de détails et modifié 2 états.

    pourquoi un layout light pour cette fenêtre ? pour que l'utilisateur n'ai pas tendance à continuer sa navigation dans cette fenêtre et qu'il ait besoin de revenir à la fenêtre principal.

  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
    Je suis sur que tu as raison, même si je préfère, par simplicité pour l'utilisateur et pour ne pas augmenter le nombre d'onglets d'une manière exponentiel, gérer toute mes applications dans une seule fenêtre.

    Et je n'ai pas d'autre solutions que celles déjà proposée.

Discussions similaires

  1. Réponses: 15
    Dernier message: 18/12/2013, 15h33
  2. Réponses: 1
    Dernier message: 15/04/2011, 09h06
  3. [ZF 1.7] Pb avec un form et peut etre le layout!?
    Par miya dans le forum Zend Framework
    Réponses: 6
    Dernier message: 08/06/2009, 11h35
  4. Réponses: 5
    Dernier message: 30/01/2008, 20h24
  5. [Crystal Report 9] Changer de schéma avec Oracle
    Par sur_uix dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/11/2002, 12h19

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