source: spip-zone/_plugins_/espaces/trunk/base/espaces.php @ 114065

Last change on this file since 114065 was 114065, checked in by abelass@…, 2 years ago

Objet éditorial espaces. Par exemple les espaces d'un immeuble. Utilisé par location d'immeubles

File size: 3.7 KB
Line 
1<?php
2/**
3 * Déclarations relatives à la base de données
4 *
5 * @plugin     Espaces
6 * @copyright  2018 - 2019
7 * @author     Rainer Müller
8 * @licence    GNU/GPL v3
9 * @package    SPIP\Espaces\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 espaces_declarer_tables_interfaces($interfaces) {
27
28  $interfaces['table_des_tables']['espaces'] = 'espaces';
29
30  return $interfaces;
31}
32
33
34/**
35 * Déclaration des objets éditoriaux
36 *
37 * @pipeline declarer_tables_objets_sql
38 * @param array $tables
39 *     Description des tables
40 * @return array
41 *     Description complétée des tables
42 */
43function espaces_declarer_tables_objets_sql($tables) {
44
45  $tables['spip_espaces'] = array(
46    'type' => 'espace',
47    'principale' => 'oui',
48    'field'=> array(
49      'id_espace'          => 'bigint(21) NOT NULL',
50      'titre'              => 'varchar(255) NOT NULL DEFAULT ""',
51      'descriptif'         => 'text NOT NULL DEFAULT ""',
52      'texte'              => 'text NOT NULL DEFAULT ""',
53      'mesure'             => 'int(11) NOT NULL DEFAULT 0',
54      'unite'              => 'varchar(10) NOT NULL DEFAULT ""',
55      'date'               => 'datetime NOT NULL DEFAULT "0000-00-00 00:00:00"',
56      'statut'             => 'varchar(20)  DEFAULT "0" NOT NULL',
57      'lang'               => 'VARCHAR(10) NOT NULL DEFAULT ""',
58      'langue_choisie'     => 'VARCHAR(3) DEFAULT "non"',
59      'id_trad'            => 'bigint(21) NOT NULL DEFAULT 0',
60      'maj'                => 'TIMESTAMP'
61    ),
62    'key' => array(
63      'PRIMARY KEY'        => 'id_espace',
64      'KEY lang'           => 'lang',
65      'KEY id_trad'        => 'id_trad',
66      'KEY statut'         => 'statut',
67    ),
68    'titre' => 'titre AS titre, lang AS lang',
69    #'date' => '',
70    'champs_editables'  => array('titre', 'descriptif', 'texte',  'mesure', 'unite'),
71    'champs_versionnes' => array('titre', 'descriptif', 'texte', 'mesure', 'unite'),
72    'rechercher_champs' => array("titre" => 8, "descriptif" => 5, 'texte',),
73    'tables_jointures'  => array('spip_espaces_liens'),
74    'statut_textes_instituer' => array(
75      'prepa'    => 'texte_statut_en_cours_redaction',
76      'prop'     => 'texte_statut_propose_evaluation',
77      'publie'   => 'texte_statut_publie',
78      'refuse'   => 'texte_statut_refuse',
79      'poubelle' => 'texte_statut_poubelle',
80    ),
81    'statut'=> array(
82      array(
83        'champ'     => 'statut',
84        'publie'    => 'publie',
85        'previsu'   => 'publie,prop,prepa',
86        'post_date' => 'date',
87        'exception' => array('statut','tout')
88      )
89    ),
90    'texte_changer_statut' => 'espace:texte_changer_statut_espace',
91
92
93  );
94
95  return $tables;
96}
97
98
99/**
100 * Déclaration des tables secondaires (liaisons)
101 *
102 * @pipeline declarer_tables_auxiliaires
103 * @param array $tables
104 *     Description des tables
105 * @return array
106 *     Description complétée des tables
107 */
108function espaces_declarer_tables_auxiliaires($tables) {
109
110  $tables['spip_espaces_liens'] = array(
111    'field' => array(
112      'id_espace'          => 'bigint(21) DEFAULT "0" NOT NULL',
113      'id_objet'           => 'bigint(21) DEFAULT "0" NOT NULL',
114      'objet'              => 'VARCHAR(25) DEFAULT "" NOT NULL',
115      'vu'                 => 'VARCHAR(6) DEFAULT "non" NOT NULL',
116      'rang_lien'          => 'int(4) NOT NULL DEFAULT "0"',
117    ),
118    'key' => array(
119      'PRIMARY KEY'        => 'id_espace,id_objet,objet',
120      'KEY id_espace'      => 'id_espace',
121    )
122  );
123
124  return $tables;
125}
Note: See TracBrowser for help on using the repository browser.