Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/03/2011, 23h25   #1
Invité de passage
 
Inscription : février 2011
Messages : 30
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 30
Points : 4
Points : 4
Par défaut sfWidgetFormi18nDate et le champs year

Bonjour,

J'utilise le plugin sfForkedDoctrineApplyPlugin.
J'ai créé un utilisateur grâce aux fixtures qui a pour date de naissance 25/11/1969.
Lorsque j'édite son profile, je retrouve toutes les infos du user par contre la liste déroulante concernant spécifiquement l'année n'affiche rien au lieu de 1969.
Dans ma classe sfGuardUserProfileForm, j'ai configuré mon widget ainsi :
Code :
1
2
3
4
5
6
7
$this->widgetSchema['birthday'] = new sfWidgetFormi18nDate(
			array(
				'culture' => sfContext::getInstance()->getUser()->getCulture(), 
				'years' => range(date("Y")-10, 1940),
				'label' => 'Date de naissance'
			)
		);
Lorsque je regarde la source de la page, je constate que les valeurs des options du select sfApplyApply[birthday][year] ne reprennent pas les années, c'est-à-dire :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
<select id="sfApplySettings_birthday_year" name="sfApplySettings[birthday][year]">
<option value=""></option>
<option value="0">2001</option>
<option value="1">2000</option>
<option value="2">1999</option>
...
<option value="32">1969</option>
...
<option value="59">1942</option>
<option value="60">1941</option>
<option value="61">1940</option>
</select>
De plus si je fais une sauvegarde en choisissant l'année 1969, je retrouve dans ma table pour le champs birthday, la valeur "0032-11-25"...

Auriez-vous svp une solution à me proposer afin que :
- l'année enregistrée dans la BDD soit sélectionnée lors de l'édition du profile
- la sauvegarde de l'année de naissance soit bien l'année et non la valeur de l'option.

Merci d'avance pour vos réponses.

PS : le public concerné sera plus proche des 20-40 ans que des 60-80 ans, d'où le fait que j'affiche les années en sens inverse ( range(date("Y")-10, 1940) ).
richard_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2011, 10h34   #2
Invité de passage
 
Inscription : février 2011
Messages : 30
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 30
Points : 4
Points : 4
La solution :
Code :
1
2
3
4
5
6
7
8
9
10
 
$years_range = range(date("Y")-10, 1940);
$years = array_combine($years_range, $years_range);
$this->widgetSchema['birthday'] = new sfWidgetFormi18nDate(
	array(
		'culture' => sfContext::getInstance()->getUser()->getCulture(), 
		'years' => $years,
		'label' => 'Date de naissance'
	)
);
richard_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2011, 12h11   #3
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Trop rapide entre la question et la solution pour même avoir eu le temps de voir le message

Ton bout de code, tu le mets où ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2011, 15h05   #4
Invité de passage
 
Inscription : février 2011
Messages : 30
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 30
Points : 4
Points : 4
Bonjour Michel,

ce bout de code est dans :
monprjet\lib\form\doctrine\sfForkedDoctrineApplyPlugin\sfGuardUserProfileForm.class.php
et public function configure()
richard_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2011, 17h51   #5
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Je n'ai jamais eu besoin de modifier le plugin pour qu'il tourne...

Et dans mes souvenir, l'équipe derrière est en bonne partie française.

Je reste plus que surpris.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h24.


 
 
 
 
Partenaires

Hébergement Web