source: spip-zone/_core_/plugins/mots/base/mots.php @ 89285

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

remplacement des http://doc.spip.org par http://code.spip.net (Francky)
passage du copyright en 2015

File size: 6.9 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2015                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13/**
14 * Déclarations relatives à la base de données
15 *
16 * @package SPIP\Mots\Pipelines
17**/
18if (!defined('_ECRIRE_INC_VERSION')) return;
19
20/**
21 * Déclarer les interfaces des tables mots et groupes de mots pour le compilateur
22 *
23 * @pipeline declarer_tables_interfaces
24 * @param array $interfaces
25 *     Déclarations d'interface pour le compilateur
26 * @return array
27 *     Déclarations d'interface pour le compilateur
28 */
29function mots_declarer_tables_interfaces($interfaces){
30
31        $interfaces['table_des_tables']['mots']='mots';
32        $interfaces['table_des_tables']['groupes_mots']='groupes_mots';
33
34        $interfaces['exceptions_des_tables']['mots']['titre_mot'] = 'titre';
35        $interfaces['table_des_traitements']['TYPE']['mots']= _TRAITEMENT_TYPO_SANS_NUMERO;
36
37        $interfaces['exceptions_des_jointures']['titre_mot'] = array('spip_mots', 'titre');
38        $interfaces['exceptions_des_jointures']['type_mot'] = array('spip_mots', 'type');
39        $interfaces['exceptions_des_jointures']['id_mot_syndic'] = array('spip_mots_liens', 'id_mot');
40        $interfaces['exceptions_des_jointures']['titre_mot_syndic'] = array('spip_mots', 'titre');
41        $interfaces['exceptions_des_jointures']['type_mot_syndic'] = array('spip_mots', 'type');
42        $interfaces['exceptions_des_jointures']['spip_articles']['id_groupe'] = array('spip_mots', 'id_groupe');
43        $interfaces['exceptions_des_jointures']['spip_rubriques']['id_groupe'] = array('spip_mots', 'id_groupe');
44        $interfaces['exceptions_des_jointures']['spip_syndic']['id_groupe'] = array('spip_mots', 'id_groupe');
45
46        return $interfaces;
47}
48
49
50
51/**
52 * Déclarer les tables auxiliaires des mots
53 *
54 * @pipeline declarer_tables_auxiliaires
55 * @param array $tables_auxiliaires
56 *     Description des tables
57 * @return array
58 *     Description complétée des tables
59 */
60function mots_declarer_tables_auxiliaires($tables_auxiliaires){
61
62        $spip_mots_liens = array(
63                        "id_mot"        => "bigint(21) DEFAULT '0' NOT NULL",
64                        "id_objet"      => "bigint(21) DEFAULT '0' NOT NULL",
65                        "objet" => "VARCHAR (25) DEFAULT '' NOT NULL");
66
67        $spip_mots_liens_key = array(
68                        "PRIMARY KEY"           => "id_mot,id_objet,objet",
69                        "KEY id_mot"    => "id_mot",
70                        "KEY id_objet"  => "id_objet",
71                        "KEY objet"     => "objet",
72        );
73
74        $tables_auxiliaires['spip_mots_liens'] =
75                array('field' => &$spip_mots_liens, 'key' => &$spip_mots_liens_key);
76               
77        return $tables_auxiliaires;
78}
79
80
81/**
82 * Déclarer les objets éditoriaux des mots et groupes de mots
83 *
84 * @pipeline declarer_tables_objets_sql
85 * @param array $tables
86 *     Description des tables
87 * @return array
88 *     Description complétée des tables
89 */
90function mots_declarer_tables_objets_sql($tables){
91        $tables['spip_mots'] = array(
92                'type'=>'mot',
93                'type_surnoms' => array('mot-cle'), // pour les icones...
94                'texte_retour' => 'icone_retour',
95                'texte_objets' => 'public:mots_clefs',
96                'texte_objet' => 'public:mots_clef',
97                'texte_modifier' => 'mots:icone_modifier_mot',
98                'texte_ajouter' => 'titre_ajouter_un_mot', // # A deplacer
99                'texte_creer' => 'titre_ajouter_un_mot',
100                'texte_logo_objet' => 'mots:logo_mot_cle',
101                'texte_creer_associer' => 'mots:creer_et_associer_un_mot',
102                'info_aucun_objet'=> 'mots:info_aucun_mot_cle',
103                'info_1_objet' => 'info_1_mot_cle',
104                'info_nb_objets' => 'info_nb_mots_cles',
105                'titre' => "titre, '' AS lang",
106                'date' => 'date',
107                'principale' => 'oui',
108                'field'=> array(
109                        "id_mot"        => "bigint(21) NOT NULL",
110                        "titre" => "text DEFAULT '' NOT NULL",
111                        "descriptif"    => "text DEFAULT '' NOT NULL",
112                        "texte" => "longtext DEFAULT '' NOT NULL",
113                        "id_groupe"     => "bigint(21) DEFAULT 0 NOT NULL",
114                        "type"  => "text DEFAULT '' NOT NULL",
115                        "maj"   => "TIMESTAMP"
116                ),
117                'key' => array(
118                        "PRIMARY KEY"   => "id_mot",
119                        "KEY id_groupe" => "id_groupe"
120                ),
121                'rechercher_champs' => array(
122                  'titre' => 8, 'texte' => 1, 'descriptif' => 5
123                ),
124                'tables_jointures' => array(
125                        #'mots_liens' // declare generiquement ci dessous
126                ),
127                'champs_versionnes' => array('titre', 'descriptif', 'texte','id_groupe'),
128        );
129
130        $tables['spip_groupes_mots'] = array(
131                'table_objet_surnoms' => array('groupemot','groupe_mots' /*hum*/,'groupe_mot' /* hum*/,'groupe' /*hum (EXPOSE)*/),
132                'type'=>'groupe_mots',
133                'type_surnoms' => array('groupes_mot','groupemot','groupe_mot'),
134                'texte_retour' => 'icone_retour',
135                'texte_objets' => 'mots:titre_groupes_mots',
136                'texte_objet' => 'mots:titre_groupe_mots',
137                'texte_modifier' => 'mots:icone_modif_groupe_mots',
138                'texte_creer' => 'mots:icone_creation_groupe_mots',
139                'texte_logo_objet' => 'mots:logo_groupe',
140                'info_aucun_objet'=> 'mots:info_aucun_groupemots',
141                'info_1_objet' => 'mots:info_1_groupemots',
142                'info_nb_objets' => 'mots:info_nb_groupemots',
143                'titre' => "titre, '' AS lang",
144                'date' => 'date',
145                'principale' => 'oui',
146                'page' => '', // pas de page publique pour les groupes
147                'field'=> array(
148                        "id_groupe"     => "bigint(21) NOT NULL",
149                        "titre" => "text DEFAULT '' NOT NULL",
150                        "descriptif"    => "text DEFAULT '' NOT NULL",
151                        "texte" => "longtext DEFAULT '' NOT NULL",
152                        "unseul"        => "varchar(3) DEFAULT '' NOT NULL",
153                        "obligatoire"   => "varchar(3) DEFAULT '' NOT NULL",
154                        "tables_liees" => "text DEFAULT '' NOT NULL",
155                        "minirezo"      => "varchar(3) DEFAULT '' NOT NULL",
156                        "comite"        => "varchar(3) DEFAULT '' NOT NULL",
157                        "forum" => "varchar(3) DEFAULT '' NOT NULL",
158                        "maj"   => "TIMESTAMP"
159                ),
160                'key' => array(
161                        "PRIMARY KEY"   => "id_groupe"
162                ),
163                'rechercher_champs' => array(
164            'titre' => 8, 'texte' => 1, 'descriptif' => 5
165                ),
166                'tables_jointures' => array(
167                        'mots'
168                ),
169                'champs_versionnes' => array('titre', 'descriptif', 'texte','un_seul','obligatoire','tables_liees','minirezo','forum','comite'),
170        );
171
172        // jointures sur les mots pour tous les objets
173        $tables[]['tables_jointures'][]= 'mots_liens';
174        $tables[]['tables_jointures'][]= 'mots';
175
176        // cas particulier des auteurs et mots : declarer explicitement mots_liens comme jointure privilegiee
177        // cf https://core.spip.net/issues/2329
178        $tables['spip_auteurs']['tables_jointures'][]= 'mots_liens';
179        $tables['spip_auteurs']['tables_jointures'][]= 'mots';
180        $tables['spip_mots']['tables_jointures'][]= 'mots_liens';
181        $tables['spip_mots']['tables_jointures'][]= 'mots';
182
183
184        // recherche jointe sur les mots pour tous les objets
185        $tables[]['rechercher_jointures']['mot'] = array('titre' => 3);
186        // versionner les jointures pour tous les objets
187        $tables[]['champs_versionnes'][] = 'jointure_mots';
188
189        return $tables;
190}
191?>
Note: See TracBrowser for help on using the repository browser.