Submitted by badrix on
salut, j'ai un formualire webform sur lequel j'enregistre les information de chaque etudiant . moi je veux lorsque je valide un enregistrement . un utilisateur sera crée automatiquement avec le nom comme login et n°cin comme passe sans paseer par la creation d'un user que drupal offre . est ce que c'est possible??
Tout dépend de la version de
Permalien Soumis par takeova le 6 Juin, 2010 - 14:01
Tout dépend de la version de webform que vous utilisée mais dans tout les cas il vous faudra créer un module, si vous êtes en 6.x-2.9 il vous est nécessaire d'utiliser un hook_form_alter(), en revenche si vous êtes en 6.x-3.0 webform possède ses propres hooks et vous pouvez utilisé hook_webform_submission_insert().
En 6.x-2.9 :
<?php
function monModule_form_alter(&$form, &$form_state, $form_id) {
if (substr($form_id, 0, 20) == 'webform_client_form_') { // Vous pouvez rajouter le nom du webform si vous en avez plusieur pour qu'il n'y ai pas de conflit.
$submit = array_shift($form['#submit']);
array_unshift($form['#submit'], $submit, 'monModule_save_user');
}
}
function
monModule_save_user($form, &$form_state) {// Ici le champs correspondant au nom de votre formulaire.
$name = $form_state['values']['submitted_tree']['name'];
// Ici le champs correspondant au cid de votre formulaire.
$pass = $form_state['values']['submitted_tree']['pass'];
$user_account = array(
'name' => $name,
'pass' => $pass,
'init' => $name,
'status' => 1,
'access' => time(),
);
$account = user_save('', $user_account);
}
?>
En 6.x-3.0 :
<?php
function monModule_webform_submission_insert($node, $submission) {
if ($node->nid == ma_page_nid) {
$name = $submission->data[1]['value'][0]; // Ici le champs correspondant au nom de votre formulaire.
$pass = $submission->data[2]['value'][0]; // Ici le champs correspondant au cid de votre formulaire.
monModule_save_user($name, $pass);
}
}
function
monModule_save_user($name, $pass) {$user_account = array(
'name' => $name,
'pass' => $pass,
'init' => $name,
'status' => 1,
'access' => time(),
);
$account = user_save('', $user_account);
}
?>
Merçi Beaucoup takeova, je
Permalien Soumis par badrix le 6 Juin, 2010 - 19:05
Merçi Beaucoup takeova,
je travaille avec webform 6.X-3.0 beta 5
la methode hook_webform_submission_insert() existe dans le fichier
webform_hooks.php
est ce que je dois mettre ces deux methodes dans le fichiers
ou bien creer un module avec webform_hook.php et mettre ces methodes dedans.
Merçi
j'ai creer un module avec 2
Permalien Soumis par badrix le 6 Juin, 2010 - 19:42
j'ai creer un module avec 2 fichiers: .INFO et .MODULE
dans .MODULE j'ai mis le code que vous m'avez donner et dons .INFO les informations sur le module . mais il ne s'affichera pas dans la page module de drupal pour l'activer.
Il faut verifier les noms
Permalien Soumis par takeova le 7 Juin, 2010 - 18:00
Il faut verifier les noms dans votre fichier .info et .module avec le nom du répertoire et aussi l'endroit ou vous avez mis ce module. Plus d'info ici.
Bonsoir takeova, j'ai activé
Permalien Soumis par badrix le 7 Juin, 2010 - 22:51
Bonsoir takeova, j'ai activé le module et je sais pas les informations que je devrai mettre dans ce ligne est ce que je dois remplacer value par le form_key(j'ai esayée mais ça marche pas) du champs ou bien le cid du champs
$name = $submission->data[1]['value'][0]; // Ici le champs correspondant au nom de votre formulaire.
Enfaite cette ligne
Permalien Soumis par takeova le 11 Juin, 2010 - 19:31
Enfaite cette ligne $submission->data[1]['value'][0] doit correspondre au champs dans votre formulaire et à la place de celui-ci dans $submission. Pour connaitre la valeur il faut simplement faire un var_dump($submission) ou dsm($submission) si vous avez le module devel.
bnjr mes amis je suis aussi
Permalien Soumis par hamoumi le 9 Juin, 2010 - 16:03
bnjr mes amis je suis aussi intéresse par cette astuce,alors j'ai coché le module que je viens de crée et j'aimerai savoir qu'est ce que je doi modifier dans cette ligne "$name = $submission->data[1]['value'][0]"
merci d'avance