Een CVT formulier met automatische opslag

SPIP 3.0 introduceerde de automatische opslag van door de gebruiker ingevoerde gegevens.

Om te voorkomen dat een gebruiker zijn ingevoerde gegevens niet verliest bij een onderbreking in de verbinding of een onjuiste handeling, kan een automatische opslag van de gegevens van een VCT formulier worden bewerkstellig.

De functie activeren

Om deze functie te activeren volstaat het dat de functie charger() van het formulier een unieke identificatie verzendt die het formulier bepaalt.

Er is een afwijkende opslag per unieke identificatie (en per formulier) die afhangt van de context. Zo kan bij een forumformulier in reactie op een artikel het unieke artikelnummer als identificatie worden gebruikt.

Deze indentificatie kan een geheel getal zijn, een tekenreeks of een tabel die moet worden verzonden in het veld ’_autosave_id’:

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

Waar staan de opgeslagen gegevens?

Wanneer de functie actief is, zal het formulier bij iedere wijziging van de invoer een request sturen naar SPIP met de lijst van alle ingevoerde velden. SPIP bewaart deze gegevens op de server in de sessie van de gebruiker.

Zodra de gebruiker het formulier valideert, verwijdert SPIP de in de sessie opgeslagen gegevens (als onderdeel van de verwerking van het formulier).

Maar krijgt de gebruiker een technisch probleem en slaagt hij er niet in het formulier te valideren, dan worden de opgeslagen gegevens 72 uur bewaard. Komt de gebruiker in hetzelfde formulier terug, dan zal hij zijn invoer terugvinden.

Privacy ...

Let erop dat je deze functie niet toepast in een formulier dat persoonlijke gegevens bevat bij een anonieme sessie.

Bevindt de gebruiker zich op een openbare plaatswaar anderen van dezelfde computer gebruik kunnen maken, dan zouden anderen (indien de gebruiker niet valideert) deze gegevens kunnen terugvinden.

De tijd dat de gegevens bewaard worden kan worden aangepast in het bestand mes_options.php. Voor een duur van 24 uur vermeld je:

define('_AUTOSAVE_GB_DELAY',24*3600)

Auteur Hanjo Publié le :

Traductions : français, Nederlands