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

Last change on this file since 80541 was 80541, checked in by cedric@…, 6 years ago

Prise en charge du statut sur les formulaires.
Lors de l'import f&t les formulaires sans réponses sont mis en statut proposé, les autres en publiés

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