$val) {
if (isset($flux['data'][$key]))
$flux['data'][$key] = (is_string($val)?autosave_clean_value($val):array_map('autosave_clean_value',$val));
}
}
/**
* Envoyer le input hidden et le bout de js qui l'utilisera
*/
$flux['data']['_hidden'] .= ""
.'';
}
return $flux;
}
/**
* Quand on poste definitivement un formulaire autosave,
* on peut vider la session autosave
* et on vide aussi toutes les autosave de plus de 72H (delai par defaut) ou sans __timestamp (vieilles sessions)
* @param $flux
* @return
*/
function cvtautosave_formulaire_traiter($flux){
// si on poste 'autosave' c'est qu'on n'a plus besoin de sauvegarder :
// on elimine les donnees de la session
if ($cle_autosave = _request('autosave')){
include_spip('inc/session');
session_set('session_autosave_'.$cle_autosave, null);
// delai par defaut avant purge d'un backup de form : 72H
if (!defined('_AUTOSAVE_GB_DELAY')) define('_AUTOSAVE_GB_DELAY',72*3600);
$time_too_old = time() - _AUTOSAVE_GB_DELAY;
// purger aussi toutes les vieilles autosave
$session = $GLOBALS['visiteur_session'];
foreach($session as $k=>$v){
if (strncmp($k,'session_autosave_',17)==0){
$timestamp = 0;
if (preg_match(",&__timestamp=(\d+)$,",$v,$m)){
$timestamp = intval($m[1]);
}
if ($timestamp<$time_too_old)
session_set($k, null);
}
}
}
return $flux;
}