source: spip-zone/_plugins_/albums/trunk/base/albums.php

Last change on this file was 99807, checked in by kent1@…, 2 years ago

PSR SPIP

File size: 3.5 KB
Line 
1<?php
2/**
3 * Déclarations relatives à la base de données
4 *
5 * @plugin     Albums
6 * @copyright  2014
7 * @author     Tetue, Charles Razack
8 * @licence    GNU/GPL
9 * @package    SPIP\Albums\Fonctions
10 */
11
12// Sécurité
13if (!defined('_ECRIRE_INC_VERSION')) {
14        return;
15}
16
17
18/**
19 * Déclaration des alias de tables et filtres automatiques de champs
20 *
21 * @pipeline declarer_tables_interfaces
22 * @param array $interfaces
23 *     Déclarations d'interface pour le compilateur
24 * @return array
25 *     Déclarations d'interface pour le compilateur
26 */
27function albums_declarer_tables_interfaces($interfaces) {
28
29        $interfaces['table_des_tables']['albums'] = 'albums';
30
31        return $interfaces;
32}
33
34
35/**
36 * Déclaration des objets éditoriaux
37 *
38 * @pipeline declarer_tables_objets_sql
39 * @param array $tables
40 *     Description des tables
41 * @return array
42 *     Description complétée des tables
43 */
44function albums_declarer_tables_objets_sql($tables) {
45
46        /* ALBUMS */
47        $tables['spip_albums'] = array(
48                'type'                  => 'album',
49                'principale'            => 'oui',
50                'field'=> array(
51                        'id_album'          => 'bigint(21) NOT NULL',
52                        'titre'             => "text DEFAULT '' NOT NULL",
53                        'descriptif'        => "text DEFAULT '' NOT NULL",
54                        'date'              => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
55                        'statut'            => "varchar(10) DEFAULT '' NOT NULL",
56                        'lang'              => "VARCHAR(10) DEFAULT '' NOT NULL",
57                        'langue_choisie'    => "VARCHAR(3) DEFAULT 'non'",
58                        'id_trad'           => "bigint(21) DEFAULT '0' NOT NULL",
59                        'maj'               => 'TIMESTAMP'
60                ),
61                'key' => array(
62                        'PRIMARY KEY'       => 'id_album',
63                        'KEY lang'          => 'lang',
64                        'KEY id_trad'       => 'id_trad',
65                        'KEY statut'        => 'statut',
66                ),
67                'titre'                 => 'titre, lang AS lang',
68                'date'                  => 'date',
69                'champs_editables'      => array('titre', 'descriptif'),
70                'champs_versionnes'     => array('titre', 'descriptif'),
71                'rechercher_champs'     => array(
72                        'titre' => 10,
73                        'descriptif' => 4
74                ),
75                'tables_jointures'      => array(
76                ),
77                'modeles'               => array('album'),
78                'statut'=> array(
79                        array(
80                                'champ'         => 'statut',
81                                'publie'        => 'publie',
82                                'previsu'       => 'prepa,publie',
83                                'post_date'     => 'date',
84                                'exception'     => array('statut','tout')
85                        )
86                ),
87                'statut_textes_instituer' => array(
88                        'prepa'             => 'album:texte_statut_prepa',
89                        'publie'            => 'album:texte_statut_publie',
90                        'poubelle'          => 'album:texte_statut_poubelle',
91                ),
92                'texte_changer_statut'  => 'album:texte_changer_statut',
93        );
94
95        // jointures sur les albums pour tous les objets
96        // passe apres id_auteur=>auteurs_liens et evite de le casser
97        $tables[]['tables_jointures'][]= 'albums_liens';
98        $tables[]['tables_jointures'][]= 'albums';
99
100        return $tables;
101}
102
103
104/**
105 * Déclaration des tables secondaires (liaisons)
106 *
107 * @pipeline declarer_tables_auxiliaires
108 * @param array $tables
109 *     Description des tables
110 * @return array
111 *     Description complétée des tables
112 */
113function albums_declarer_tables_auxiliaires($tables) {
114
115        $tables['spip_albums_liens'] = array(
116                'field' => array(
117                        'id_album'     => "bigint(21) DEFAULT '0' NOT NULL",
118                        'id_objet'     => "bigint(21) DEFAULT '0' NOT NULL",
119                        'objet'        => "VARCHAR (25) DEFAULT '' NOT NULL",
120                        'vu'           => "ENUM('non', 'oui') DEFAULT 'non' NOT NULL"
121                ),
122                'key' => array(
123                        'PRIMARY KEY'  => 'id_album,id_objet,objet',
124                        'KEY id_album' => 'id_album',
125                )
126        );
127
128        return $tables;
129}
Note: See TracBrowser for help on using the repository browser.