|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Invité régulier
![]() Sébastien Inscription : mai 2008 Messages : 20 ![]() |
Je me familiarise depuis deux jours avec les plugins sfDoctrineGuardPlugin et sfForkedDoctrineApplyPlugin. Ils sont maintenant correctement installés et configurés.
Je veux ajouter les champs à sfGuardUser (ex: code postal et date de naissance). J'ai donc essayé ce qui est indiqué le READ ME de sfForkedDoctrineApplyPlugin. J'ai ajouté dans mon schema.yml : Code :
Code :
Je veux maintenant que lorsque qu'un utilisateur créé un compte, le formulaire d'inscription intègre les champs cp et birthday. Je pensais que la bonne option était de surcharger le formulaire sfApplyApplyForm du plugin. J'ai donc créé dans lib/forms, le fichier applyForm.class.php : Code :
Je tourne en rond et je ne trouve pas de réponse sur les forums : 1) Suis-je sur la bonne voie ? 2) Si oui, comment surcharger ce formulaire ? Merci d'avance pour votre aide. |
||||||
|
|
00
|
|
|
#2 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Il faut envisager de définir la table directement dans ton shema.yml en fusionnant les informations de shema des deux plugin.
Si non, l'ajout des champs ne se fait que pour les objets hérité et ne sera jamais vu par le formApply.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#3 | ||
|
Invité régulier
![]() Sébastien Inscription : mai 2008 Messages : 20 ![]() |
Merci pour ta réponse, mais je suis plutôt newbie en symfony et ce que tu me dis ne me parle pas trop.
Ce que j'ai compris c'est que le dois définir dans mon schema.yml une table sfGuardUser qui va surcharger celle définie par le plugin. Si c'est ça j'ai ajouter ceci à mon schéma : Code :
J'ai aussi vu que sfForkedDoctrineApplyPlugin définisait une table sfGuardUserProfile. Est-ce qu'il est plus judicieux d'étendre celle-ci ? Je me noie surement dans un verre d'eau mais je me sens un peu perdu. J'imagine quelques solutions mais ça me parait de la bidouille et j'aimerais partir sur de bonnes bases. |
||
|
|
00
|
|
|
#4 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
J'ai très peu de temps hélas ces jours ci.
Il faut faire la fusion des deux tables, celle de sfGuard et celle définie dans sfFDAP. Et y rajouter tes champs. Le form de base est généré par symfony en fonction des champs. Ensuite il est affiché. Normalement (a vérifier) sfFDAP ne fait qu'un simple render sur le form de base. Donc les champs rajouté y apparaîtrons. Si non il reste possible de redéfinir localement le template, on verra à ce moment là.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#5 | ||||||||
|
Invité régulier
![]() Sébastien Inscription : mai 2008 Messages : 20 ![]() |
Eureka !
Merci de m'avoir mis sur la piste. J'ai essayé tellement de choses (un fil des post que j'ai pu lire !) que je n'arrivais plus à m'y retrouver. Tout cela me semble maintenant plutôt basique, mais je fais un petit topo quand même, ça peut servir : BUT : Je veux que les utilisateurs de mon appli s'identifient et je veux associer au formulaire d'enregistrement des parametres propres à mon appli : code postal, ville, date de naissance, localisation.... 1 - Installation des plugins : sfDoctrineGuardPlugin (qui gère l'identification et les permissions) et sfForkedDoctrineApplyPlugin (alias sfFDAP, qui ajoute quelques fonctions bien pratiques dont la récupération de mot de passe oublié). Pour l'installation, les README des deux plugins sont très bien faits. 2 - Quand sfFDAP affiche le formulaire d'enregistrement, il s'appuie sur le modèle sfGuardUserProfile dont il donne une définition dans son schema.yml : Code :
- utiliser l'héritage de Doctrine dans votre propre schema en étendant sfGuardUserProfile avec les champs dont vous avez besoin : Code :
et on construit la base de donnée : php symfony doctrine:build --all --and-load 3 - Si tout s'est bien passé, /user/new (la route par défaut de sfFDAP pour afficher le formulaire d'enregistrement) vous affiche un joli formulaire incluant les champs que vous avez défini dans votre modèle ! On pourrait s'arrêter là mais c'est dommage car le meilleur reste à venir. En effet, nos champs s'affichent bien dans le formulaire, mais leur libellé est le même que dans la base de donnée : Cp et Naissance ne font pas le meilleur effet. Il nous faut donc modifier le formulaire. 4 - sfFDAP fournit le formulaire sfApplyApplyForm, qui se charge d'afficher le formulaire d'enregistrement. Et ce formulaire hérite de sfGuardUserProfileForm. Ce dernier a gentiment été placé par Doctrine dans votre dossier /lib/form/doctrine/sfForkedDoctrineApplyPlugin... ce qui veut dire que vous pouvez modifier directement cette classe puisqu'elle ne sera pas écrasé lors du prochain doctrine:build : Code :
ex : le champ date ne me convient pas pour une date d'anniversaire. Je veux augmenter le nombre d'années proposé par le widget et je veux utiliser le widget JQuery. Après avoir installé sfFormExtraPlugin (pour utiliser le widget JQuery), j'ajoute à ma fonction configure() : Code :
|
||||||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com