source: spip-zone/_plugins_/formidable/branches/v0/base/formidable_tables.php @ 107472

Last change on this file since 107472 was 107472, checked in by real3t@…, 3 years ago

Possibilité supplémentaire d'anonymisation totale des participation (cas rencontré : réponses uniques basées sur l'auteur, dans le cadre d'un Intranet avec tous les répondant connectés).

  • l'affichage des résultats est anonymisée
  • l'exportation aussi.

Si c'est OK, je fais la même chose sur le trunk

File size: 3.9 KB
Line 
1<?php
2
3// Sécurité
4if (!defined('_ECRIRE_INC_VERSION')) return;
5
6function formidable_declarer_tables_interfaces($interface){
7        // 'spip_' dans l'index de $tables_principales
8        $interface['table_des_tables']['formulaires'] = 'formulaires';
9        $interface['table_des_tables']['formulaires_reponses'] = 'formulaires_reponses';
10        $interface['table_des_tables']['formulaires_reponses_champs'] = 'formulaires_reponses_champs';
11       
12       
13        $interface['table_titre']['formulaires'] = 'titre';
14       
15        $interface['tables_jointures']['spip_formulaires'][] = 'formulaires_liens';
16        $interface['tables_jointures']['spip_articles'][] = 'formulaires_liens';
17        $interface['tables_jointures']['spip_rubriques'][] = 'formulaires_liens';
18       
19        return $interface;
20}
21
22function formidable_declarer_tables_principales($tables_principales){
23        //-- Table formulaires -----------------------------------------------------
24        $formulaires = array(
25                "id_formulaire" => "bigint(21) NOT NULL",
26                "identifiant" => "varchar(200)",
27                "titre" => "text NOT NULL default ''",
28                "descriptif" => "text",
29                "message_retour" => "text NOT NULL default ''",
30                "saisies" => "longtext NOT NULL default ''",
31                "traitements" => "text NOT NULL default ''",
32                "public" => "enum('non', 'oui') DEFAULT 'non' NOT NULL",
33                "statut" => "varchar(10) NOT NULL default ''",
34                "maj" => "timestamp",
35                "apres" => "varchar(12) NOT NULL default ''",
36                "url_redirect" => "varchar(255)",
37                "anonymat" => "varchar(3) NOT NULL default ''"
38        );
39        $formulaires_cles = array(
40                "PRIMARY KEY" => "id_formulaire"
41        );
42        $tables_principales['spip_formulaires'] = array(
43                'field' => &$formulaires,
44                'key' => &$formulaires_cles,
45                'join'=> array(
46                        'id_formulaire' => 'id_formulaire'
47                )
48        );
49       
50        //-- Table formulaires_reponses --------------------------------------------
51        $formulaires_reponses = array(
52                "id_formulaires_reponse" => "bigint(21) NOT NULL",
53                "id_formulaire" => "bigint(21) NOT NULL default 0",
54                "date" => "datetime NOT NULL default '0000-00-00 00:00:00'",
55                "ip" => "varchar(255) NOT NULL default ''",
56                "id_auteur" => "bigint(21) NOT NULL default 0",
57                "cookie" => "varchar(255) NOT NULL default ''",
58                "statut" => "varchar(10) NOT NULL default ''",
59                "maj" => "timestamp"
60        );
61        $formulaires_reponses_cles = array(
62                "PRIMARY KEY" => "id_formulaires_reponse",
63                "KEY id_formulaire" => "id_formulaire",
64                "KEY id_auteur" => "id_auteur",
65                "KEY cookie" => "cookie"
66        );
67        $tables_principales['spip_formulaires_reponses'] = array(
68                'field' => &$formulaires_reponses,
69                'key' => &$formulaires_reponses_cles,
70                'join'=> array(
71                        'id_formulaires_reponse' => 'id_formulaires_reponse',
72                        'id_formulaire' => 'id_formulaire',
73                        'id_auteur' => 'id_auteur'
74                )
75        );
76       
77        //-- Table formulaires_reponses_champs -------------------------------------
78        $formulaires_reponses_champs = array(
79                "id_formulaires_reponse" => "bigint(21) NOT NULL default 0",
80                "nom" => "varchar(255) NOT NULL default ''",
81                "valeur" => "text NOT NULL DEFAULT ''",
82                "maj" => "timestamp"
83        );
84        $formulaires_reponses_champs_cles = array(
85                "PRIMARY KEY" => "id_formulaires_reponse, nom",
86                "KEY id_formulaires_reponse" => "id_formulaires_reponse"
87        );
88        $tables_principales['spip_formulaires_reponses_champs'] = array(
89                'field' => &$formulaires_reponses_champs,
90                'key' => &$formulaires_reponses_champs_cles
91        );
92       
93        return $tables_principales;
94}
95
96function formidable_declarer_tables_auxiliaires($tables_auxiliaires){
97        $formulaires_liens = array(
98                "id_formulaire" => "bigint(21) DEFAULT '0' NOT NULL",
99                "id_objet"      => "bigint(21) DEFAULT '0' NOT NULL",
100                "objet" => "VARCHAR (25) DEFAULT '' NOT NULL"
101        );
102
103        $formulaires_liens_cles = array(
104                "PRIMARY KEY" => "id_formulaire,id_objet,objet",
105                "KEY id_formulaire" => "id_formulaire"
106        );
107       
108        $tables_auxiliaires['spip_formulaires_liens'] = array(
109                'field' => &$formulaires_liens,
110                'key' => &$formulaires_liens_cles
111        );
112       
113        return $tables_auxiliaires;
114}
115
116function formidable_rechercher_liste_des_champs($tables){
117        $tables['formulaire']['titre'] = 5;
118        $tables['formulaire']['descriptif'] = 3;
119        return $tables;
120}
121
122?>
Note: See TracBrowser for help on using the repository browser.