source: spip-zone/_plugins_/formidable/trunk/base/formidable_tables.php @ 65580

Last change on this file since 65580 was 65580, checked in by marcimat@…, 8 years ago

Un peu plus de migration de Formidable vers SPIP 3 :

  • paquet.xml et administration nouvelle mode
  • un peu de phpdoc.
File size: 5.0 KB
Line 
1<?php
2
3/**
4 * Déclarations relatives à la base de données
5 *
6 * @package SPIP\Formidable\Pipelines
7**/
8
9// Sécurité
10if (!defined('_ECRIRE_INC_VERSION')) return;
11
12/**
13 * Déclarer les interfaces des tables de formidable pour le compilateur
14 *
15 * @pipeline declarer_tables_interfaces
16 * @param array $interfaces
17 *     Déclarations d'interface pour le compilateur
18 * @return array
19 *     Déclarations d'interface pour le compilateur
20 */
21function formidable_declarer_tables_interfaces($interfaces) {
22        // 'spip_' dans l'index de $tables_principales
23        $interfaces['table_des_tables']['formulaires'] = 'formulaires';
24        $interfaces['table_des_tables']['formulaires_reponses'] = 'formulaires_reponses';
25        $interfaces['table_des_tables']['formulaires_reponses_champs'] = 'formulaires_reponses_champs';
26
27        $interfaces['table_titre']['formulaires'] = 'titre';
28
29        $interfaces['tables_jointures']['spip_formulaires'][] = 'formulaires_liens';
30        $interfaces['tables_jointures']['spip_articles'][] = 'formulaires_liens';
31        $interfaces['tables_jointures']['spip_rubriques'][] = 'formulaires_liens';
32
33        return $interfaces;
34}
35
36
37/**
38 * Déclarer les tables principales de formidable
39 *
40 * @pipeline declarer_tables_principales
41 * @param array $tables_principales
42 *     Description des tables
43 * @return array
44 *     Description complétée des tables
45 */
46function formidable_declarer_tables_principales($tables_principales){
47        //-- Table formulaires -----------------------------------------------------
48        $formulaires = array(
49                "id_formulaire" => "bigint(21) NOT NULL",
50                "identifiant" => "varchar(200)",
51                "titre" => "text NOT NULL default ''",
52                "descriptif" => "text",
53                "message_retour" => "text NOT NULL default ''",
54                "saisies" => "text NOT NULL default ''",
55                "traitements" => "text NOT NULL default ''",
56                "public" => "enum('non', 'oui') DEFAULT 'non' NOT NULL",
57                "statut" => "varchar(10) NOT NULL default ''",
58                "maj" => "timestamp",
59                "apres" => "varchar(12) NOT NULL default ''",
60                "url_redirect" => "varchar(255)"
61        );
62        $formulaires_cles = array(
63                "PRIMARY KEY" => "id_formulaire"
64        );
65        $tables_principales['spip_formulaires'] = array(
66                'field' => &$formulaires,
67                'key' => &$formulaires_cles,
68                'join'=> array(
69                        'id_formulaire' => 'id_formulaire'
70                )
71        );
72       
73        //-- Table formulaires_reponses --------------------------------------------
74        $formulaires_reponses = array(
75                "id_formulaires_reponse" => "bigint(21) NOT NULL",
76                "id_formulaire" => "bigint(21) NOT NULL default 0",
77                "date" => "datetime NOT NULL default '0000-00-00 00:00:00'",
78                "ip" => "varchar(255) NOT NULL default ''",
79                "id_auteur" => "bigint(21) NOT NULL default 0",
80                "cookie" => "varchar(255) NOT NULL default ''",
81                "statut" => "varchar(10) NOT NULL default ''",
82                "maj" => "timestamp"
83        );
84        $formulaires_reponses_cles = array(
85                "PRIMARY KEY" => "id_formulaires_reponse",
86                "KEY id_formulaire" => "id_formulaire",
87                "KEY id_auteur" => "id_auteur",
88                "KEY cookie" => "cookie"
89        );
90        $tables_principales['spip_formulaires_reponses'] = array(
91                'field' => &$formulaires_reponses,
92                'key' => &$formulaires_reponses_cles,
93                'join'=> array(
94                        'id_formulaires_reponse' => 'id_formulaires_reponse',
95                        'id_formulaire' => 'id_formulaire',
96                        'id_auteur' => 'id_auteur'
97                )
98        );
99       
100        //-- Table formulaires_reponses_champs -------------------------------------
101        $formulaires_reponses_champs = array(
102                "id_formulaires_reponse" => "bigint(21) NOT NULL default 0",
103                "nom" => "varchar(255) NOT NULL default ''",
104                "valeur" => "text NOT NULL DEFAULT ''",
105                "maj" => "timestamp"
106        );
107        $formulaires_reponses_champs_cles = array(
108                "PRIMARY KEY" => "id_formulaires_reponse, nom",
109                "KEY id_formulaires_reponse" => "id_formulaires_reponse"
110        );
111        $tables_principales['spip_formulaires_reponses_champs'] = array(
112                'field' => &$formulaires_reponses_champs,
113                'key' => &$formulaires_reponses_champs_cles
114        );
115       
116        return $tables_principales;
117}
118
119/**
120 * Déclarer les tables auxiliaires de formidable
121 *
122 * @pipeline declarer_tables_auxiliaires
123 * @param array $tables_auxiliaires
124 *     Description des tables
125 * @return array
126 *     Description complétée des tables
127 */
128function formidable_declarer_tables_auxiliaires($tables_auxiliaires){
129        $formulaires_liens = array(
130                "id_formulaire" => "bigint(21) DEFAULT '0' NOT NULL",
131                "id_objet"      => "bigint(21) DEFAULT '0' NOT NULL",
132                "objet" => "VARCHAR (25) DEFAULT '' NOT NULL"
133        );
134
135        $formulaires_liens_cles = array(
136                "PRIMARY KEY" => "id_formulaire,id_objet,objet",
137                "KEY id_formulaire" => "id_formulaire"
138        );
139       
140        $tables_auxiliaires['spip_formulaires_liens'] = array(
141                'field' => &$formulaires_liens,
142                'key' => &$formulaires_liens_cles
143        );
144       
145        return $tables_auxiliaires;
146}
147
148/**
149 * Déclarer les champs inclus dans la recherche
150 *
151 * @pipeline rechercher_liste_des_champs
152 * @param array $tables
153 *     Liste des tables, de leurs champs de recherche et pondération
154 * @return array
155 *     Liste ddes tables complétée
156**/
157function formidable_rechercher_liste_des_champs($tables){
158        $tables['formulaire']['titre'] = 5;
159        $tables['formulaire']['descriptif'] = 3;
160        return $tables;
161}
162
163?>
Note: See TracBrowser for help on using the repository browser.