|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2009 Messages : 44 ![]() |
Bonjour tout le monde,
Voila j'ai un problème avec l'affichage des dates. J'utilise le plugin sfWidgetFormDateJQueryUI et il me fait tout ce que je lui demande sauf lorsqu'il récupère une date en base. En base les dates sont stockées yyyy-mm-dd, et tout les champs qui affiche une date me l'affiche sous cette forme... Je ne sais pas trop comment je peux faire pour contourner ce problème... Merci |
|
|
00
|
|
|
#2 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Il la récupère comment, la date en base ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2009 Messages : 44 ![]() |
hé bien la date est récupéree par un find($id) qui me retourne une doctrine collection qui alimente mon formulaire.
|
|
|
00
|
|
|
#4 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Un Doctrine_Collection pour alimenter un form ? Ce ne serait pas plutôt un Doctrine_Record, où encore mieux un sfRecord ?
Nonobstant, il provient de la base, et pas d'une alimentation différente. Quel est le type de champ de la base ? Peux-tu mettre la partie du shema.yml qui concerne la table en question ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#5 | ||||
|
Membre habitué
![]() Jean-François Développeur Web Inscription : février 2003 Messages : 124 ![]() |
Avec l'admin generator tu peux faire ainsi :
fields: champdate: {label: 'date', date_format: dd/mm/MM} Dans formFilter : Code :
Code :
|
||||
|
|
00
|
|
|
#6 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2009 Messages : 44 ![]() |
Désolé pour le retard dans la réponse,
voila mon schema pour les users : Code :
|
||
|
|
00
|
|
|
#7 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Le schema me semble relativement bon, pour ce qui est du problème de date, même s'il reste discutable sur d'autres points.
Il n'y a pas de raison que tu n'arrives pas à initialiser le widget. Peux-tu mettre le code de la méthode configure() de l'objet form ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#8 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2009 Messages : 44 ![]() |
Désolé pour le petit retard de réponse des imprévus, m'ont fait mettre de coté ce problème...
voici mon configure() : Code :
|
||
|
|
00
|
|
|
#9 | ||
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
[hors sujet]
C'est pour ça : Code :
[/hors sujet] A priori, et après deux lectures, ta déclaration me semble bonne. Comment alimentes-tu ton form avec les données ? Est-ce que, si tu mets une date, elle est correctement enregistrée ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
||
|
00
|
|
|
#10 | ||||
|
Nouveau Membre du Club
![]() Inscription : octobre 2008 Messages : 75 ![]() |
Bonjour à tous,
Je rencontre moi aussi le même problème. bedomon, as-tu réussi à le résoudre ? Moi dans mon configure() du form, j'ai mis : Code :
Code :
Quelqu'un a-t-il une idée ? Je suis un newbie sur symfony, je l'apprends en autodidacte, et je galère comme un fou malgrès les tutoriaux qui existent sur le web. ![]() J'ai essayé pas mal de truc à ce sujet, mais rien n'y fait ! Merci à ceux qui pourront m'éclairer. teraDev |
||||
|
|
00
|
|
|
#11 | ||
|
Membre habitué
![]() Jean-François Développeur Web Inscription : février 2003 Messages : 124 ![]() |
Hello,
Voici un exemple que moi j'utilise Ca peut t'aider Code :
|
||
|
|
00
|
|
|
#12 | ||||||
|
Nouveau Membre du Club
![]() Inscription : octobre 2008 Messages : 75 ![]() |
Bonjour,
Pardon pour le retard dans la réponse, mais j'ai dû mettre de côté ce dev pour d'autres problèmes. Merci jf_homer pour ta réponse. Cependant, je veux vraiment utiliser le sfWidgetFormDateJQueryUI, et celui ci n'a pas de paramètre 'date_widget'. Mais j'ai trouvé la solution (pas des plus classe, mais bon). Pour ceux que ça intéresse : Dans le actionSuccess pour les listes : Code :
J'ai dû modifier le code du sfWidgetFormDateJQueryUI (c'est ça qui est pas très classe) pour y rajouter une option format_date. Voilà ce que ça donne : Code :
Et je l'appelle ensuite dans mon formulaire ObjectForm.class.php : Code :
A bientôt. |
||||||
|
|
00
|
|
|
#13 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Code intéressant.
Je suppose que tu as créé un nouveau widget plutôt que de modifier l'existant, ce n'est pas très claire dans tes explications. Je ne comprend pas trop ton problème avec l'année. D'après le code de sfDateFormat il supporte y, yyy et yyyy pour l'année sur 4 digits, seul yy est réservé pour deux digits. Donc tu devrais supporter un format dd/MM/yyyy. Jolie modification
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#14 | ||
|
Nouveau Membre du Club
![]() Inscription : octobre 2008 Messages : 75 ![]() |
Citation:
Une autre option (presque meilleure pour moi) serait de créer un autre sfWidgetFormDateJQueryUI_perso qui étends de sfWidgetForm en redéfinissant tous les éléments de la classe. Je dis "meilleure" car plusieurs points me gênent un peu dans le sfWidgetFormDateJQueryUI original. Par exemple, si on ne veut pas le modifier, cela signifie qu'à chaque appel, il faut redonner le chemin du thème par défaut que l'on souhaite (si on ne veut pas utiliser le thème par défaut proposé). Je ne sais pas si je m'explique bien : le thème par défaut de base est /sfJQueryUIPlugin/css/ui-lightness/jquery-ui.css mais moi dans toutes mes pages (sauf si je redéfini l'option thème), je veux utiliser par défaut /sfJQueryUIPlugin/css/redmond/jquery-ui-1.8.9.custom.css. Sans modification du widget, je serais obligé de repasser l'option "theme" à chaque appel, ce qui n'est pas très pratique. Si vous avez des conseils pour améliorer le code, je suis preneur ! Citation:
Il aurait été préférable que symfony utilise les mêmes codifications que la fonction date() de php (http://php.net/manual/fr/function.date.php) Merci pour la réponse.
|
||
|
|
00
|
|
|
#15 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Créer un widget dans ton application est très simple, tu crées un dossier dans le dossier lib/ de ton projet et tu y mets le widget. Idéalement tu l'appel lib/widget/ mais en réalité, l'autoload s'en fiche.
Si tu mets une classe qui à le même nom qu'une classe de symfony ou d'un plugin tu la remplaces. Si non, tu ajoutes. Créer un plugin n'est pas beaucoup plus compliqué et peut parfaitement être fait dans un deuxième temps. Ce qui rendra ta modification visible pour tous tes projets. Modifier le code de l'existant est la plus mauvaise des solutions, notamment elle oblige à ne plus faire de mise à jour du code pour le plugin en question... Après faut-il dériver ton nouveau widget de l'existant ou en créer un de toutes pièces je n'ai pas la réponse. Partant du principe de la factorisation du code j'aurais plutôt tendance à dériver dans un premier temps. Mais il faut que les modifications ne soient pas trop importante et il faut bien voir que cela risque d'avoir à t'obliger à installer un plugin pour que ton code fonctionne. L'autre solution (tout recréer) peut vite s'avérer rentable si les modifications sont très importantes.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#16 | ||
|
Invité de passage
![]() Inscription : janvier 2006 Messages : 1 ![]() |
Personnellement, en bon fainéant, j'aime pas écrire 50 fois la même chose, alors lorsque j'ai souvent à utiliser les même widgets, je crée une classe dans lib/widget:
Code :
Tout ceci en partant du principe que je n'ai pas de grosses modifications à effectuer par rapport à la classe originale, juste définir une configuration par défaut et/ou quelques méthodes à surcharger voire quelques options de widget à rajouter. Sinon opter pour la création complète d'un nouveau widget me parait plus approprié. La création d'une classe portant le même nom qu'une déjà existante, que ce soit une classe symfony ou une classe issue d'un plugin, et de la placer dans le dossier lib/* pour qu'elle soit privilégiée par l'autoload est, à mon avis, une solution à n'utiliser qu'en dernier recours. Dans ce cas, la classe originale devient inutilisable et nécessite d'être entièrement réécrite. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com