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

Last change on this file was 110399, checked in by maieul@…, 7 weeks ago

L'option qui permet de définir un résumé personnalisé pour les réponses
enregistrées correspond au seul traitement "enregistrement".
On déplace donc la config dans les réglages de ce traitement.
La migration des réglages est prévues lors de la mise à jour du plugin.

File size: 7.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')) {
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','unicite','message_erreur_unicite','url_redirect','resume_reponse'),
65                'champs_versionnes' => array('titre', 'identifiant', 'descriptif', 'css', 'message_retour', 'saisies', 'traitements', 'public','apres','unicite','message_erreur_unicite','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                        'unicite' => "text NOT NULL default ''",
78                        'message_erreur_unicite' => "text NOT NULL default ''",
79                        'url_redirect' => 'varchar(255)',
80                        'statut' => "varchar(10) NOT NULL default ''",
81                        'date_creation' => "datetime NOT NULL DEFAULT '0000-00-00 00:00:00'",
82                        'maj' => 'timestamp',
83                ),
84                'key' => array(
85                        'PRIMARY KEY' => 'id_formulaire'
86                ),
87                'join'=> array(
88                        'id_formulaire' => 'id_formulaire'
89                ),
90                'statut'=> array(
91                        array(
92                                'champ' => 'statut',
93                                'publie' => 'publie',
94                                'previsu' => 'publie,prop',
95                                'exception' => array('statut', 'tout'),
96                        )
97                ),
98                'texte_changer_statut' => 'formidable:changer_statut',
99                'rechercher_champs' => array(
100                  'titre' => 5, 'descriptif' => 3, 'identifiant' => 3,
101                ),
102                'statut_titres' => array(
103                        'prop'=>'info_article_propose',
104                        'publie'=>'info_article_publie',
105                        'refuse'=>'formidable:info_formulaire_refuse',
106                        'poubelle'=>'info_article_supprime'
107                ),
108                'statut_textes_instituer' => array(
109                        'prop' => 'texte_statut_propose_evaluation',
110                        'publie' => 'texte_statut_publie',
111                        'refuse'=>'formidable:texte_statut_refuse',
112                        'poubelle' => 'texte_statut_poubelle',
113                ),
114                'page' => (lire_config('formidable/analyse/activer_pages')=='on') ? 'formulaire' : false,
115
116        );
117
118        $tables['spip_formulaires_reponses'] = array(
119                'type_objet'=>'formulaires_reponse',
120                'table_objet_surnoms' => array('formulairesreponse'),
121                'type'=>'formulaires_reponse',
122                'type_surnoms' => array('formulairesreponse'),
123                'titre' => "'' AS titre, '' AS lang",
124                'date' => 'date',
125                'principale' => 'oui',
126                'info_aucun_objet'=> 'formidable:info_aucune_reponse',
127                'info_1_objet' => 'formidable:info_1_reponse',
128                'info_nb_objets' => 'formidable:info_nb_reponses',
129
130                'field' => array(
131                        'id_formulaires_reponse' => 'bigint(21) NOT NULL',
132                        'id_formulaire' => 'bigint(21) NOT NULL default 0',
133                        'date' => "datetime NOT NULL default '0000-00-00 00:00:00'",
134                        'ip' => "varchar(255) NOT NULL default ''",
135                        'id_auteur' => 'bigint(21) NOT NULL default 0',
136                        'cookie' => "varchar(255) NOT NULL default ''",
137                        'statut' => "varchar(10) NOT NULL default ''",
138                        'maj' => 'timestamp'
139                ),
140                'key' => array(
141                        'PRIMARY KEY' => 'id_formulaires_reponse',
142                        'KEY id_formulaire' => 'id_formulaire',
143                        'KEY id_auteur' => 'id_auteur',
144                        'KEY cookie' => 'cookie'
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.