Submitted by Stouille21 on
Bonjour,
Je suis débutant un développement sous Drupal et je n'arrive pas à trouver une information.
Actuellement je modifie le formulaire d'enregistrement d'un utilisateur comme ceci :
<?php
function monmodule_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'user_register') {
$form['account']['club'] = array(
'#type' => 'select',
'#title' => t('Club'),
'#options' => get_lst_club(), // retourne un tableau
'#description' => t('Nom du club ou la gymnaste est rattachée'),
);
}else if($form_id == 'user_profile_form'){
$form['account']['club'] = array(
'#type' => 'select',
'#title' => t('Club'),
'#default_value' => $form_state['values']['club'],
'#options' => get_lst_club(), // retourne un tableau
'#description' => t('Nom du club où la gymnaste est rattachée'),
);
}
}
?>
ma liste club propose une liste de club à sélectionner quand je crée un nouvel utilisateur. Cependant quand je souhaite modifier un utilisateur l'information affichée par défaut dans la liste des clubs n'est pas la valeur enregistrée mais tout simplement la première de la liste. J'imagine bien que le souci vient de l'argument '#default_value' mais je ne sais pas comment récupérer la valeur précédemment enregistrée !
Avez vous une idée ?
Merci beaucoup
Salut, quand tu rajoutes des
Permalien Soumis par Artusamak le 8 Août, 2010 - 23:18
Salut, quand tu rajoutes des champs au formulaire d'inscription ces champs sont juste là pour de la décoration, les valeurs que tu fais saisir par ton utilisateur ne sont pas sauvegardées, cela signifie qu'une fois que le formulaire affiché la valeur s'envole... à moins que tu ne la sauvegardes !
Pour ce faire, deux solutions s'offrent à toi, la première consiste à ajouter une fonction à executer une fois que le formulaire est validé et soumis, dans cette fonction tu te chargeras de stocker la valeur saisie par ton utilisateur dans une table de ta base de données par exemple. La seconde solution consiste à étendre les fonctionnalités du profil utilisateur à l'aide du module profile (module implémenté par le coeur de Drupal) ou du module "content profile" qui est un module de contribution (http://drupal.org/project/content_profile), tous deux permettent d'ajouter des champs au profil utilisateur. Ils se chargent donc de sauvegarder l'information en base de données.
Je te recommande la deuxième solution et plus particulièrement le module content profile qui permet de manipuler facilement les données (pour Views par exemple).
Visiblement les infos sont
Permalien Soumis par Stouille21 le 10 Août, 2010 - 12:23
Visiblement les infos sont enregistrée puisque je retrouve mes valeurs dans le champs DATA de la table Users.