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

Last change on this file since 84164 was 84164, checked in by ben.spip@…, 6 years ago

inclure inc/config pour pouvoir lire_config ( suite de r83630)

File size: 7.3 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 *
17 * @param array $interfaces
18 *     Déclarations d'interface pour le compilateur
19 * @return array
20 *     Déclarations d'interface pour le compilateur
21**/
22function formidable_declarer_tables_interfaces($interfaces) {
23        // 'spip_' dans l'index de $tables_principales
24        $interfaces['table_des_tables']['formulaires'] = 'formulaires';
25        $interfaces['table_des_tables']['formulaires_reponses'] = 'formulaires_reponses';
26        $interfaces['table_des_tables']['formulaires_reponses_champs'] = 'formulaires_reponses_champs';
27
28        $interfaces['tables_jointures']['spip_formulaires'][] = 'formulaires_liens';
29        $interfaces['tables_jointures']['spip_articles'][] = 'formulaires_liens';
30        $interfaces['tables_jointures']['spip_rubriques'][] = 'formulaires_liens';
31
32        $interfaces['table_des_traitements']['MESSAGE_RETOUR']['formulaires']= _TRAITEMENT_RACCOURCIS;
33        $interfaces['table_des_traitements']['URL_REDIRECT']['formulaires']= 'vider_url(%s)';
34
35
36        return $interfaces;
37}
38
39/**
40 * Déclarer les objets éditoriaux des formulaires
41 *
42 * @pipeline declarer_tables_objets_sql
43 * @param array $tables
44 *     Description des tables
45 * @return array
46 *     Description complétée des tables
47 */
48function formidable_declarer_tables_objets_sql($tables) {
49        include_spip('inc/config');
50        $tables['spip_formulaires'] = array(
51                'type'=>'formulaire',
52                'titre' => "titre, '' AS lang",
53                'date' => 'date_creation',
54                'principale' => 'oui',
55                'texte_modifier' => 'formidable:editer_modifier_formulaire',
56                'info_aucun_objet'=> 'formidable:info_aucun_formulaire',
57                'info_1_objet' => 'formidable:info_1_formulaire',
58                'info_nb_objets' => 'formidable:info_nb_formulaires',
59
60                'champs_editables' => array('titre', 'identifiant', 'descriptif','message_retour', 'saisies', 'traitements', 'public','apres','url_redirect'),
61                'champs_versionnes' => array('titre', 'identifiant', 'descriptif','message_retour', 'saisies', 'traitements', 'public','apres','url_redirect'),
62                'field' => array(
63                        "id_formulaire" => "bigint(21) NOT NULL",
64                        "identifiant" => "varchar(200)",
65                        "titre" => "text NOT NULL default ''",
66                        "descriptif" => "text",
67                        "message_retour" => "text NOT NULL default ''",
68                        "saisies" => "longtext NOT NULL default ''",
69                        "traitements" => "text NOT NULL default ''",
70                        "public" => "enum('non', 'oui') DEFAULT 'non' NOT NULL",
71                        "apres" => "varchar(12) NOT NULL default ''",
72                        "url_redirect" => "varchar(255)",
73                        "statut" => "varchar(10) NOT NULL default ''",
74                        "date_creation" => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'",
75                        "maj" => "timestamp",
76                ),
77                'key' => array(
78                        "PRIMARY KEY" => "id_formulaire"
79                ),
80                'join'=> array(
81                        'id_formulaire' => 'id_formulaire'
82                ),
83                'statut'=> array(
84                        array(
85                                'champ' => 'statut',
86                                'publie' => 'publie',
87                                'previsu' => 'publie,prop',
88                                'exception' => array('statut', 'tout'),
89                        )
90                ),
91                'texte_changer_statut' => 'formidable:changer_statut',
92                'rechercher_champs' => array(
93                  'titre' => 5, 'descriptif' => 3
94                ),
95                'statut_titres' => array(
96                        'prop'=>'info_article_propose',
97                        'publie'=>'info_article_publie',
98                        'refuse'=>'formidable:info_formulaire_refuse',
99                        'poubelle'=>'info_article_supprime'
100                ),
101                'statut_textes_instituer' => array(
102                        'prop' => 'texte_statut_propose_evaluation',
103                        'publie' => 'texte_statut_publie',
104                        'refuse'=>'formidable:texte_statut_refuse',
105                        'poubelle' => 'texte_statut_poubelle',
106                ),
107                'page' => (lire_config('formidable/analyse/activer_pages')=='on') ? 'formulaire' : false,
108
109        );
110
111        $tables['spip_formulaires_reponses'] = array(
112                'type'=>'formulaires_reponse',
113                'titre' => "'' AS titre, '' AS lang",
114                'date' => 'date',
115                'principale' => 'oui',
116                'info_aucun_objet'=> 'formidable:info_aucune_reponse',
117                'info_1_objet' => 'formidable:info_1_reponse',
118                'info_nb_objets' => 'formidable:info_nb_reponses',
119
120                'field' => array(
121                        "id_formulaires_reponse" => "bigint(21) NOT NULL",
122                        "id_formulaire" => "bigint(21) NOT NULL default 0",
123                        "date" => "datetime NOT NULL default '0000-00-00 00:00:00'",
124                        "ip" => "varchar(255) NOT NULL default ''",
125                        "id_auteur" => "bigint(21) NOT NULL default 0",
126                        "cookie" => "varchar(255) NOT NULL default ''",
127                        "statut" => "varchar(10) NOT NULL default ''",
128                        "maj" => "timestamp"
129                ),
130                'key' => array(
131                        "PRIMARY KEY" => "id_formulaires_reponse",
132                        "KEY id_formulaire" => "id_formulaire",
133                        "KEY id_auteur" => "id_auteur",
134                        "KEY cookie" => "cookie"
135                ),
136                'join' => array(
137                        'id_formulaires_reponse' => 'id_formulaires_reponse',
138                        'id_formulaire' => 'id_formulaire',
139                        'id_auteur' => 'id_auteur'
140                ),
141                'statut'=> array(
142                        array(
143                                'champ' => 'statut',
144                                'publie' => 'publie',
145                                'previsu' => 'publie,prop',
146                                'exception' => array('statut', 'tout'),
147                        )
148                ),
149                'texte_changer_statut' => 'formulaires_reponse:changer_statut',
150                'rechercher_champs' => array('ip'=>1),
151                'rechercher_jointures' => array(
152                        'formulaires_reponses_champ' => array('valeur' => 4),
153                ),
154                'statut_titres' => array(
155                        'prop'=>'formidable:info_reponse_proposee',
156                        'publie'=>'formidable:info_reponse_publiee',
157                        'refuse'=>'formidable:info_reponse_supprimee'
158                ),
159                'statut_textes_instituer' => array(
160                        'prop' => 'formidable:texte_statut_propose_evaluation',
161                        'publie' => 'formidable:texte_statut_publie',
162                        'refuse' => 'formidable:texte_statut_poubelle',
163                ),
164        );
165        return $tables;
166}
167
168/**
169 * Déclarer les tables principales de formidable
170 *
171 * @pipeline declarer_tables_principales
172 * @param array $tables_principales
173 *     Description des tables
174 * @return array
175 *     Description complétée des tables
176**/
177function formidable_declarer_tables_principales($tables_principales){
178
179        // Table formulaires_reponses_champs
180        $formulaires_reponses_champs = array(
181                "id_formulaires_reponses_champ" => "bigint(21) NOT NULL",
182                "id_formulaires_reponse" => "bigint(21) NOT NULL default 0",
183                "nom" => "varchar(255) NOT NULL default ''",
184                "valeur" => "text NOT NULL DEFAULT ''",
185                "maj" => "timestamp"
186        );
187        $formulaires_reponses_champs_cles = array(
188                "PRIMARY KEY" => "id_formulaires_reponses_champ",
189                "KEY id_formulaires_reponse" => "id_formulaires_reponse",
190                "KEY nom" => "nom",
191                "UNIQUE reponse" => "id_formulaires_reponse,nom",
192        );
193        $tables_principales['spip_formulaires_reponses_champs'] = array(
194                'field' => &$formulaires_reponses_champs,
195                'key' => &$formulaires_reponses_champs_cles
196        );
197       
198        return $tables_principales;
199}
200
201/**
202 * Déclarer les tables auxiliaires de formidable
203 *
204 * @pipeline declarer_tables_auxiliaires
205 * @param array $tables_auxiliaires
206 *     Description des tables
207 * @return array
208 *     Description complétée des tables
209**/
210function formidable_declarer_tables_auxiliaires($tables_auxiliaires){
211        $formulaires_liens = array(
212                "id_formulaire" => "bigint(21) DEFAULT '0' NOT NULL",
213                "id_objet"      => "bigint(21) DEFAULT '0' NOT NULL",
214                "objet" => "VARCHAR (25) DEFAULT '' NOT NULL"
215        );
216
217        $formulaires_liens_cles = array(
218                "PRIMARY KEY" => "id_formulaire,id_objet,objet",
219                "KEY id_formulaire" => "id_formulaire"
220        );
221       
222        $tables_auxiliaires['spip_formulaires_liens'] = array(
223                'field' => &$formulaires_liens,
224                'key' => &$formulaires_liens_cles
225        );
226       
227        return $tables_auxiliaires;
228}
229
230
231
232?>
Note: See TracBrowser for help on using the repository browser.