Formulaire CVT avec sauvegarde automatique

SPIP 3.0 introduit la prise en charge de la sauvegarde automatique de la saisie de l’utilisateur.
  • Apparu en : SPIP 3.0

Pour éviter que les utilisateurs ne perdent le bénéfice de leur saisie en cas de perte de connexion ou de fausse manipulation, il est possible d’activer une fonction de sauvegarde automatisée dans les formulaires CVT.

Activer la fonction

Pour activer la prise en charge, il suffit que la fonction charger() du formulaire renvoie un identifiant unique qui désigne le formulaire.

Il y aura une sauvegarde différente par identifiant unique (et par formulaire), celui-ci doit donc dépendre du contexte de la saisie. Par exemple sur un formulaire de forum en réponse à un article on choisira de passer comme identifiant l’id_article de l’article auquel on répond.

Cet identifiant peut être un entier, une chaine ou un tableau, et doit être envoyé dans le champ ’_autosave_id’ :

function formulaires_repondre_article_charger_dist($id_article){
...
return array(
...,
'_autosave_id' => $id_article
);
}

Ou sont sauvegardées les données ?

Lorsqu’on active cette fonction, le formulaire va envoyer à chaque modification de saisie une requête à SPIP avec la liste de tous les champs saisis. SPIP va alors stocker cette information dans la session de l’utilisateur, sur le serveur.

Lorsque la saisie est complète et que l’utilisateur valide le formulaire, SPIP va alors vider cette sauvegarde (lors du traitement du formulaire).

Mais si l’utilisateur rencontre une erreur ou un problème et oublie de valider le formulaire, la sauvegarde est conservée 72H. Si l’utilisateur revient sur le même formulaire, il va retrouver le formulaire pré-rempli avec toutes les informations qu’il avait saisi auparavant.

De la vie privée ...

Attention cependant à ne pas utiliser cette sauvegarde automatique dans un formulaire qui collecte des données personnelles dans une session anonyme.

Si l’utilisateur est sur un poste de consultation public et ne valide pas, ses données seront alors disponibles pour quiconque revient sur la même page avec son poste de consultation.

Par ailleurs, il est possible de personnaliser la durée de 72H de conservation des données saisies en précisant dans le fichier mes_options.php par exemple (pour une durée de 24h) :

define('_AUTOSAVE_GB_DELAY',24*3600)

Auteur cerdic Publié le : Mis à jour : 11/09/23

Traductions : français, Nederlands