Sauvegarder le remplissage d'un formulaire et récupérer ce formulaire pour le modifier avant sa validation (User authentifié)

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

je connais assez bien Drupal mais je tombe sur un besoin spécifique:

Je dois créer un formulaire en plusieurs étapes pour lequel on doit s'identifier pour le remplir.

Mais la personne authentifiée doit pouvoir le remplir en plusieurs fois. Donc il y a une sauvegarde des champs remplis afin de les récupérer plus tard et de les modifier avant une validation définitive.

Existe-t-il une solution pour ce genre de besoin ou je dois développer un système moi-même?

Merci d'avance pour votre aide

Quentin

Forum : 
Version de Drupal : 

Un petit module personnalisé pourrait faire ça. Ce qui me vient à l'esprit c'est de stocker l'état actuel du formulaire dans un champ personnalisé de l'objet $user.

Pour schématiser :

<?php
 
function mon_module_form_id_submit($form, &$form_state) {
  global
$user;
 
$infos = array('form_id_autosave' => $form_state['values']);
 
user_save($user, $infos);
}
?>

Ensuite dans le code décrivant le formulaire on peut se resservir des infos pour préremplir les champs et se repositionner à la bonne étape.

Côté stockage, avec user_save() c'est sérialisé dans la colonne "data" de la table "user" donc rien de plus simple. Après, rien n'empêche de stocker ça ailleurs.

MISE À JOUR: le module Autosave semble faire ça, mais seulement pour les formulaire d'édition de nœud. Il stocke les infos dans une table à part. Il doit être possible de modifier le module pour l'adapter à d'autres types de formulaires.

En effet c'est un bon début de piste.

Merci pour ton aide. Je vais regarder dans ce sens.

Si d'autres personnes ont d'autres idées, n'hésitez pas nous sommes en plein développement et cherchons les meilleurs solutions.

Bien que je crois que l'idée ci-dessus est la plus adaptée.

Q.

PS: si nous y arrivons, nous partagerons notre expérience pour peut-être en faire un module à part entière.