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

Last change on this file was 113070, checked in by maieul@…, 4 months ago

enregistrer les config de formidable dans #CONFIG{formidable} et pas dans #CONFIG{formidable/analyse}

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