2010-08-26 5 views
1

J'ai trouvé dans sfDoctrineApplyPlugin un modèle appelé applyAfter.php qui montre un message comme "Vous avez enregistré ok ..." après les utilisateurs demander un compte. Il est appelé à partir de l'action sfApply/apply de cette façon: "return 'After"; " lorsque le formulaire de demande est valide.symfony 1.4: deux questions sur sfDoctrineApplyPlugin (bien, pourrait aussi être considéré comme des questions générales)

Quel type de modèle est-ce? Je n'ai jamais vu de cette façon (retourner 'Après';) d'appeler un modèle. Quelqu'un peut-il me donner des informations à ce sujet?

Deuxième question: je montre une mise en page avec une langue sélectionner lorsque le formulaire est imprimé appliquer. Je ne voudrais pas montrer cette langue sélectionner dans la page qui montre le message "Vous avez enregistré ok ...". Comme l'action est la même dans les deux pages (sfApply/apply), que dois-je faire pour masquer la langue sélectionnée dans la page de vérification?

Javi

Répondre

0

La fonction retourne la chaîne 'après' à l'appelant. L'appelant semble toujours être comme suit: $this->widgetSchema->setNameFormat('sfApplyResetRequest[%s]');

Ainsi, la chaîne 'After' est utilisée conjointement avec la fonction setNameFormat (qui fait partie des bibliothèques symfony). Tout ce qu'il fait, est en train de définir l'attribut 'name' pour le formulaire. Plus d'informations sur cette fonction here. Pour votre deuxième question, vous pouvez simplement ajouter une instruction IF, pour vérifier si l'itinéraire actuel est celui sur lequel vous ne souhaitez pas afficher la langue. Si ce n'est pas le cas, affichez la sélection de la langue.

Vous pouvez vérifier l'itinéraire actuel avec le code suivant:

sfContext::getInstance()->getRouting()->getCurrentRouteName(); 
+0

Merci, mais pour la deuxième question que je veux dire que dans les deux pages (celui avec la forme et l'autre avec le message « Vous se sont enregistrés ok ") la route est la même. Alors qu'est-ce que je peux faire? – ziiweb

+0

Si le message est affiché après la publication du formulaire, vous pouvez toujours faire un if (! Isset ($ _ POST ['FormArgument'])) {// show lang select} – jgallant