source: spip-zone/_plugins_/selections_editoriales/trunk/base/selections_editoriales.php @ 111904

Last change on this file since 111904 was 111904, checked in by tcharlss@…, 11 months ago

Déclarer le parent (pour duplicator et cie)

File size: 4.4 KB
Line 
1<?php
2/**
3 * Déclarations relatives à la base de données
4 *
5 * @plugin     Sélections éditoriales
6 * @copyright  2014
7 * @author     Les Développements Durables
8 * @licence    GNU/GPL v3
9 * @package    SPIP\Selections_editoriales\Pipelines
10 */
11
12if (!defined('_ECRIRE_INC_VERSION')) {
13        return;
14}
15
16
17/**
18 * Déclaration des alias de tables et filtres automatiques de champs
19 *
20 * @pipeline declarer_tables_interfaces
21 * @param array $interfaces
22 *     Déclarations d'interface pour le compilateur
23 * @return array
24 *     Déclarations d'interface pour le compilateur
25 */
26function selections_editoriales_declarer_tables_interfaces($interfaces) {
27        $interfaces['table_des_tables']['selections'] = 'selections';
28        $interfaces['table_des_tables']['selections_contenus'] = 'selections_contenus';
29
30        $interfaces['table_des_traitements']['URL']['selections_contenus'] = 'calculer_url(%s)';
31
32        return $interfaces;
33}
34
35
36/**
37 * Déclaration des objets éditoriaux
38 *
39 * @pipeline declarer_tables_objets_sql
40 * @param array $tables
41 *     Description des tables
42 * @return array
43 *     Description complétée des tables
44 */
45function selections_editoriales_declarer_tables_objets_sql($tables) {
46
47        $tables['spip_selections'] = array(
48                'type' => 'selection',
49                'principale' => 'oui',
50                'field'=> array(
51                        'id_selection'       => 'bigint(21) NOT NULL',
52                        'titre'              => 'text NOT NULL DEFAULT ""',
53                        'descriptif'         => 'text NOT NULL DEFAULT ""',
54                        'css'                            => 'varchar(255) NOT NULL DEFAULT ""',
55                        'identifiant'        => 'varchar(255) NOT NULL DEFAULT ""',
56                        'limite'             => 'int(6) NOT NULL DEFAULT 0',
57                        'maj'                => 'TIMESTAMP'
58                ),
59                'key' => array(
60                        'PRIMARY KEY'        => 'id_selection',
61                ),
62                'titre' => "titre AS titre, '' AS lang",
63                 #'date' => '',
64                'modeles' => array('selection_edito'),
65                'champs_editables'  => array('titre', 'descriptif', 'identifiant', 'css', 'limite'),
66                'champs_versionnes' => array('titre', 'descriptif', 'identifiant', 'css', 'limite'),
67                'rechercher_champs' => array('titre' => 8, 'descriptif' => 4, 'identifiant' => 8),
68                'rechercher_jointures' => array(
69                        'selections_contenu' => array('titre' => 6, 'descriptif' => 2)
70                ),
71                'tables_jointures'  => array('spip_selections_liens')
72        );
73
74        $tables['spip_selections_contenus'] = array(
75                'type' => 'selections_contenu',
76                'principale' => 'oui',
77                // table_objet('selections_contenu') => 'selections_contenus'
78                'table_objet_surnoms' => array('selectionscontenu'),
79                'field'=> array(
80                        'id_selections_contenu' => 'bigint(21) NOT NULL',
81                        'id_selection'       => 'bigint(21) NOT NULL DEFAULT 0',
82                        'rang'               => 'int NOT NULL DEFAULT 0',
83                        'titre'              => 'text NOT NULL DEFAULT ""',
84                        'url'                => 'text NOT NULL DEFAULT ""',
85                        'descriptif'         => 'text NOT NULL DEFAULT ""',
86                        'css'                => 'varchar(255) not null default ""',
87                        'id_objet'           => 'bigint(21) NOT NULL DEFAULT 0',
88                        'objet'              => 'VARCHAR(25) NOT NULL DEFAULT ""',
89                        'maj'                => 'TIMESTAMP'
90                ),
91                'key' => array(
92                        'PRIMARY KEY'        => 'id_selections_contenu',
93                        'KEY id_selection'        => 'id_selection',
94                ),
95                'titre' => "titre AS titre, '' AS lang",
96                 #'date' => "",
97                'champs_editables'  => array('rang', 'objet', 'id_objet', 'titre', 'url', 'descriptif', 'id_selection', 'css'),
98                'champs_versionnes' => array('objet', 'id_objet', 'titre', 'url', 'descriptif', 'css'),
99                'rechercher_champs' => array('titre' => 8, 'descriptif' => 4),
100                'tables_jointures'  => array(),
101                'parent' => array('type' => 'selection', 'champ' => 'id_selection'),
102        );
103
104
105        $tables[]['champs_versionnes'][] = 'jointure_selections';
106        return $tables;
107}
108
109
110/**
111 * Déclaration des tables secondaires (liaisons)
112 *
113 * @pipeline declarer_tables_auxiliaires
114 * @param array $tables
115 *     Description des tables
116 * @return array
117 *     Description complétée des tables
118 */
119function selections_editoriales_declarer_tables_auxiliaires($tables) {
120        $tables['spip_selections_liens'] = array(
121                'field' => array(
122                        'id_selection'       => 'bigint(21) DEFAULT "0" NOT NULL',
123                        'id_objet'           => 'bigint(21) DEFAULT "0" NOT NULL',
124                        'objet'              => 'VARCHAR(25) DEFAULT "" NOT NULL',
125                        'vu'                 => 'VARCHAR(6) DEFAULT "non" NOT NULL'
126                ),
127                'key' => array(
128                        'PRIMARY KEY'        => 'id_selection,id_objet,objet',
129                        'KEY id_selection'   => 'id_selection'
130                )
131        );
132        return $tables;
133}
Note: See TracBrowser for help on using the repository browser.