source: spip-zone/_plugins_/dictionnaires/trunk/base/dictionnaires_tables.php @ 65485

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

Poursuite du passage à SPIP 3 du plugin dictionnaire. On utilise l'api d'objets éditoriaux et on ne met que les squelettes nécessaires dans le plugin. Au passage on PHPDoc toutes les fonctions.

File size: 4.7 KB
Line 
1<?php
2
3/**
4 * Déclarations relatives à la base de données
5 *
6 * @package SPIP\Dictionnaires\Pipelines
7**/
8
9// Sécurité
10if (!defined('_ECRIRE_INC_VERSION')) return;
11
12/**
13 * Déclarer les interfaces des tables dictionnaires et definitions pour le compilateur
14 *
15 * @pipeline declarer_tables_interfaces
16 * @param array $interfaces
17 *     Déclarations d'interface pour le compilateur
18 * @return array
19 *     Déclarations d'interface pour le compilateur
20 */
21function dictionnaires_declarer_tables_interfaces($interfaces){
22        // 'spip_' dans l'index de $tables_principales
23        $interfaces['table_des_tables']['dictionnaires'] = 'dictionnaires';
24        $interfaces['table_des_tables']['definitions']   = 'definitions';
25        return $interfaces;
26}
27
28
29/**
30 * Déclarer les objets éditoriaux des dictionnaires et définitions
31 *
32 * @pipeline declarer_tables_objets_sql
33 * @param array $tables
34 *     Description des tables
35 * @return array
36 *     Description complétée des tables
37 */
38function dictionnaires_declarer_tables_objets_sql($tables) {
39
40        //-- Table dictionnaires
41        $tables['spip_dictionnaires'] = array(
42                'type' => 'dictionnaire',
43
44                'titre' => "titre, '' AS lang",
45                'date' => '',
46                'principale' => 'oui',
47
48                'field' => array(
49                        'id_dictionnaire' => 'bigint(21) not null',
50                        'titre' => 'text not null default ""',
51                        'descriptif' => 'text not null default ""',
52                        'type_defaut' => 'varchar(255) not null default ""',
53                        'statut' => "varchar(10) DEFAULT 'inactif' NOT NULL",
54                        'maj' => 'timestamp',
55                ),
56                'key' => array(
57                        "PRIMARY KEY"   => "id_dictionnaire",
58                ),
59                'join' => array(
60                        "id_dictionnaire" => "id_dictionnaire"
61                ),
62                'champs_editables' => array(
63                        'titre', 'descriptif',
64                        'type_defaut','statut'
65                ),
66
67                'statut' => array(
68                        array(
69                                'champ'=>'statut',
70                                'publie'=>'actif',
71                                'previsu'=>'actif,inactif',
72                                'exception'=> array('statut', 'tout')
73                        )
74                ),
75                'texte_changer_statut' => 'dictionnaire:changer_statut',
76                'statut_titres' => array(
77                        'actif'   => 'dictionnaire:champ_actif_oui',
78                        'inactif' => 'dictionnaire:champ_actif_non',
79                ),
80                'statut_textes_instituer' => array(
81                        'actif'   => 'dictionnaire:champ_actif_oui',
82                        'inactif' => 'dictionnaire:champ_actif_non',
83                ),
84                'statut_images' => array(
85                        'actif'   => 'puce-publier-8.png',
86                        'inactif' => 'puce-proposer-8.png',
87                ),
88        );
89
90
91        //-- Table definitions
92        $tables['spip_definitions'] = array(
93                'type' => 'definition',
94
95                'titre' => "titre, lang",
96                'date' => 'date',
97                'principale' => 'oui',
98
99                'field' => array(
100                        'id_definition' => 'bigint(21) not null',
101                        'id_dictionnaire' => 'bigint(21) not null default 0',
102                        'titre' => 'text not null default ""',
103                        'texte' => 'text not null default ""',
104                        'termes' => 'text not null default ""',
105                        'type' => 'varchar(255) not null default ""',
106                        'casse' => 'tinyint(1) not null default 0',
107                        'statut' => 'varchar(255) not null default "prop"',
108                        'lang' => 'varchar(10) not null default ""',
109                        'date' => 'datetime default "0000-00-00 00:00:00" not null',
110                        'maj' => 'timestamp',
111                ),
112                'key' => array(
113                        "PRIMARY KEY"         => "id_definition",
114                        "KEY id_dictionnaire" => "id_dictionnaire",
115                ),
116                'join' => array(
117                        "id_definition"   => "id_definition",
118                        "id_dictionnaire" => "id_dictionnaire"
119                ),
120                'tables_jointures' => array('definitions_liens'),
121                'champs_editables' => array(
122                        'id_dictionnaire',
123                        'titre', 'texte', 'termes',
124                        'type', 'casse', 'statut',
125                        'lang', 'date',
126                ),
127                'statut' => array(
128                        array(
129                                'champ'=>'statut',
130                                'publie'=>'publie',
131                                'previsu'=>'prepa,publie',
132                                'exception'=> array('statut', 'tout')
133                        )
134                ),
135                'texte_changer_statut' => 'definition:changer_statut',
136                'statut_titres' => array(
137                        'prop'=>'info_article_propose',
138                        'publie'=>'info_article_publie',
139                        'poubelle'=>'info_article_supprime'
140                ),
141                'statut_textes_instituer' => array(
142                        'prop' => 'texte_statut_propose_evaluation',
143                        'publie' => 'texte_statut_publie',
144                        'refuse' => 'texte_statut_poubelle',
145                ),
146        );
147
148        return $tables;
149}
150
151
152/**
153 * Déclarer les tables auxiliaires des definitions
154 *
155 * @pipeline declarer_tables_auxiliaires
156 * @param array $tables_auxiliaires
157 *     Description des tables
158 * @return array
159 *     Description complétée des tables
160 */
161function dictionnaires_declarer_tables_auxiliaires($tables_auxiliaires){
162        //-- Table de relations definitions_liens
163        $spip_definitions_liens = array(
164                'id_definition' => 'bigint(21) not null default 0',
165                'objet' => 'varchar(255) not null default ""',
166                'id_objet' => 'bigint(21) not null default 0',
167        );
168       
169        $spip_definitions_liens_cles = array(
170                'PRIMARY KEY' => 'id_definition, objet, id_objet',
171                'KEY id_definition' => 'id_definition'
172        );
173       
174        $tables_auxiliaires['spip_definitions_liens'] = array(
175                'field' => &$spip_definitions_liens,
176                'key' => &$spip_definitions_liens_cles
177        );
178       
179        return $tables_auxiliaires;
180}
181
182?>
Note: See TracBrowser for help on using the repository browser.