source: spip-zone/_plugins_/formidable/trunk/formidable_pipelines.php @ 77522

Last change on this file since 77522 was 75314, checked in by maieul@…, 7 years ago

après réflexion, on peut utiliser la constante cnil periode aussi, de toute facon la surcharge se fera ds tt les cas ds mes_options.php

File size: 1.4 KB
Line 
1<?php
2
3/**
4 * Utilisation de pipelines
5 *
6 * @package SPIP\Formidable\Pipelines
7**/
8
9// Sécurité
10if (!defined("_ECRIRE_INC_VERSION")) return;
11
12
13/**
14 * Optimiser la base de donnée en enlevant les liens de formulaires supprimés
15 *
16 * @pipeline optimiser_base_disparus
17 * @param array $flux
18 *     Données du pipeline
19 * @return array
20 *     Données du pipeline
21 */
22function formidable_optimiser_base_disparus($flux){
23        // Les réponses qui sont à la poubelle
24        $res = sql_select(
25                'id_formulaires_reponse AS id',
26                'spip_formulaires_reponses',
27                'statut = '.sql_quote('poubelle')
28        );
29       
30        // On génère la suppression
31        $flux['data'] += optimiser_sansref('spip_formulaires_reponses', 'id_formulaires_reponse', $res);
32       
33                //
34        // CNIL -- Informatique et libertes
35        //
36        // masquer le numero IP des vieilles réponses
37        //
38        ## date de reference = 4 mois
39        ## definir a 0 pour desactiver
40        ## même constante que pour les forums
41        if (!defined('_CNIL_PERIODE')) {
42                define('_CNIL_PERIODE', 3600*24*31*4);
43        }
44       
45        if (_CNIL_PERIODE) {
46                $critere_cnil = 'date<"'.date('Y-m-d', time()-_CNIL_PERIODE).'"'
47                        . ' AND statut != "spam"'
48                        . ' AND (ip LIKE "%.%" OR ip LIKE "%:%")'; # ipv4 ou ipv6
49                $c = sql_countsel('spip_formulaires_reponses', $critere_cnil);
50                if ($c>0) {
51                        spip_log("CNIL: masquer IP de $c réponses anciennes à formidable");
52                        sql_update('spip_formulaires_reponses', array('ip' => 'MD5(ip)'), $critere_cnil);
53                }
54        }
55       
56        return $flux;
57}
58
59?>
Note: See TracBrowser for help on using the repository browser.