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 :

sfWidgetFormi18nDate et le champs year [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 30
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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) ).

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 30
    Par défaut
    La solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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'
    	)
    );

  3. #3
    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
    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ù ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 30
    Par défaut
    Bonjour Michel,

    ce bout de code est dans :
    monprjet\lib\form\doctrine\sfForkedDoctrineApplyPlugin\sfGuardUserProfileForm.class.php
    et public function configure()

  5. #5
    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 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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction Year() Sur un champs d'un Dcount()
    Par niamo dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 21/07/2010, 14h12
  2. [VB6] [Datareport] définir un champ
    Par ckankonvahou dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/10/2002, 11h16
  3. [ADO] Constantes des types de champ
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 05/09/2002, 11h08
  4. Taille des champs proportionnelle...
    Par Depteam1 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 09/08/2002, 11h48
  5. taille max du nom d'un champ
    Par hna dans le forum Paradox
    Réponses: 2
    Dernier message: 28/07/2002, 02h40

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