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

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

Migration un peu plus vers SPIP 3 :

  • déclarer 'spip_formulaires' en objet éditorial
  • renommage des pages exec homogène avec le reste de SPIP : formulaires, formulaire et formulaire_edit
  • décoration des listes de formulaire aux nouvelles normes

Reste à gérer les réponses...

Petit inconvénient aussi, il fait du coup des urls propres pour les formulaires…

File size: 4.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')) 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['table_titre']['formulaires'] = 'titre';
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        return $interfaces;
35}
36
37/**
38 * Déclarer les objets éditoriaux des formulaires
39 *
40 * @pipeline declarer_tables_objets_sql
41 * @param array $tables
42 *     Description des tables
43 * @return array
44 *     Description complétée des tables
45 */
46function formidable_declarer_tables_objets_sql($tables) {
47        $tables['spip_formulaires'] = array(
48                'type'=>'formulaire',
49                'titre' => "titre, '' AS lang",
50                'date' => '',
51                'principale' => 'oui',
52               
53                'field' => array(
54                        "id_formulaire" => "bigint(21) NOT NULL",
55                        "identifiant" => "varchar(200)",
56                        "titre" => "text NOT NULL default ''",
57                        "descriptif" => "text",
58                        "message_retour" => "text NOT NULL default ''",
59                        "saisies" => "text NOT NULL default ''",
60                        "traitements" => "text NOT NULL default ''",
61                        "public" => "enum('non', 'oui') DEFAULT 'non' NOT NULL",
62                        "statut" => "varchar(10) NOT NULL default ''",
63                        "maj" => "timestamp",
64                        "apres" => "varchar(12) NOT NULL default ''",
65                        "url_redirect" => "varchar(255)"
66                ),
67                'key' => array(
68                        "PRIMARY KEY" => "id_formulaire"
69                ),
70                'join'=> array(
71                        'id_formulaire' => 'id_formulaire'
72                ),
73                'rechercher_champs' => array(
74                  'titre' => 5, 'descriptif' => 3
75                ),
76        );
77        return $tables;
78}
79
80/**
81 * Déclarer les tables principales de formidable
82 *
83 * @pipeline declarer_tables_principales
84 * @param array $tables_principales
85 *     Description des tables
86 * @return array
87 *     Description complétée des tables
88**/
89function formidable_declarer_tables_principales($tables_principales){
90
91        // Table formulaires_reponses
92        $formulaires_reponses = array(
93                "id_formulaires_reponse" => "bigint(21) NOT NULL",
94                "id_formulaire" => "bigint(21) NOT NULL default 0",
95                "date" => "datetime NOT NULL default '0000-00-00 00:00:00'",
96                "ip" => "varchar(255) NOT NULL default ''",
97                "id_auteur" => "bigint(21) NOT NULL default 0",
98                "cookie" => "varchar(255) NOT NULL default ''",
99                "statut" => "varchar(10) NOT NULL default ''",
100                "maj" => "timestamp"
101        );
102        $formulaires_reponses_cles = array(
103                "PRIMARY KEY" => "id_formulaires_reponse",
104                "KEY id_formulaire" => "id_formulaire",
105                "KEY id_auteur" => "id_auteur",
106                "KEY cookie" => "cookie"
107        );
108        $tables_principales['spip_formulaires_reponses'] = array(
109                'field' => &$formulaires_reponses,
110                'key' => &$formulaires_reponses_cles,
111                'join'=> array(
112                        'id_formulaires_reponse' => 'id_formulaires_reponse',
113                        'id_formulaire' => 'id_formulaire',
114                        'id_auteur' => 'id_auteur'
115                )
116        );
117
118
119        // Table formulaires_reponses_champs
120        $formulaires_reponses_champs = array(
121                "id_formulaires_reponse" => "bigint(21) NOT NULL default 0",
122                "nom" => "varchar(255) NOT NULL default ''",
123                "valeur" => "text NOT NULL DEFAULT ''",
124                "maj" => "timestamp"
125        );
126        $formulaires_reponses_champs_cles = array(
127                "PRIMARY KEY" => "id_formulaires_reponse, nom",
128                "KEY id_formulaires_reponse" => "id_formulaires_reponse"
129        );
130        $tables_principales['spip_formulaires_reponses_champs'] = array(
131                'field' => &$formulaires_reponses_champs,
132                'key' => &$formulaires_reponses_champs_cles
133        );
134       
135        return $tables_principales;
136}
137
138/**
139 * Déclarer les tables auxiliaires de formidable
140 *
141 * @pipeline declarer_tables_auxiliaires
142 * @param array $tables_auxiliaires
143 *     Description des tables
144 * @return array
145 *     Description complétée des tables
146**/
147function formidable_declarer_tables_auxiliaires($tables_auxiliaires){
148        $formulaires_liens = array(
149                "id_formulaire" => "bigint(21) DEFAULT '0' NOT NULL",
150                "id_objet"      => "bigint(21) DEFAULT '0' NOT NULL",
151                "objet" => "VARCHAR (25) DEFAULT '' NOT NULL"
152        );
153
154        $formulaires_liens_cles = array(
155                "PRIMARY KEY" => "id_formulaire,id_objet,objet",
156                "KEY id_formulaire" => "id_formulaire"
157        );
158       
159        $tables_auxiliaires['spip_formulaires_liens'] = array(
160                'field' => &$formulaires_liens,
161                'key' => &$formulaires_liens_cles
162        );
163       
164        return $tables_auxiliaires;
165}
166
167
168
169?>
Note: See TracBrowser for help on using the repository browser.