4 if (!defined('_ECRIRE_INC_VERSION')) {
8 include_spip('inc/formidable_fichiers');
10 * Effacer régulièrement les enregistrements obsolètes
12 function genie_formidable_effacer_enregistrements($t) {
13 $res = sql_select('id_formulaire,traitements', 'spip_formulaires');
14 while ($result = sql_fetch($res)) {
15 $traitements = unserialize($result['traitements']);
16 $id_formulaire = $result['id_formulaire'];
17 if (isset($traitements['enregistrement']['effacement'])
18 and $traitements['enregistrement']['effacement'] == 'on'
19 and isset($traitements['enregistrement']['effacement_delai'])
21 $delai = intval($traitements['enregistrement']['effacement_delai']);
23 // si on a bien configuré un délai
24 $asupprimer = sql_select(
25 'id_formulaires_reponse',
26 'spip_formulaires_reponses',
27 "DATE_SUB(CURDATE(), INTERVAL $delai DAY) > maj
28 AND id_formulaire = $id_formulaire"
29 ); // on utilise la date de maj, ce qui fait que lorsqu'une réponse est modifiée, l'échéance de la suppression est prorogée
30 while ($reponse = sql_fetch($asupprimer)) {
31 $id_formulaires_reponse = $reponse['id_formulaires_reponse'];
33 formidable_effacer_fichiers_reponse($id_formulaire, $id_formulaires_reponse); // effacer d'abord les fichiers
34 sql_delete('spip_formulaires_reponses', "id_formulaires_reponse=$id_formulaires_reponse");// les réponses
35 sql_delete('spip_formulaires_reponses_champs', "id_formulaires_reponse=$id_formulaires_reponse");//les champs correspondant
36 spip_log("Effacement de la réponse $$id_formulaires_reponse du form $id_formulaire car antérieur à $delai jours");