source: spip-zone/_core_/plugins/revisions/base/revisions.php

Last change on this file was 113294, checked in by spip.franck@…, 11 months ago

Il parait que le futur c'est maintenant :-D

File size: 3.5 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2019                                                *
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\Revisions\Pipelines
17 **/
18
19if (!defined('_ECRIRE_INC_VERSION')) {
20        return;
21}
22
23/**
24 * Déclarer les interfaces des tables versions pour le compilateur
25 *
26 * @pipeline declarer_tables_interfaces
27 * @param array $interface
28 *     Déclarations d'interface pour le compilateur
29 * @return array
30 *     Déclarations d'interface pour le compilateur
31 */
32function revisions_declarer_tables_interfaces($interface) {
33
34        $interface['table_des_tables']['versions'] = 'versions';
35
36        return $interface;
37}
38
39/**
40 * Déclaration des jointures génériques
41 *
42 * @pipeline declarer_tables_objets_sql
43 * @param array $tables
44 *     Description des tables
45 * @return array
46 *     Description complétée des tables
47 */
48function revisions_declarer_tables_objets_sql($tables) {
49
50        // jointures sur les mots pour tous les objets
51        $tables[]['tables_jointures'][] = 'versions';
52
53        return $tables;
54}
55
56
57/**
58 * Déclarer les tables versions et fragments
59 *
60 * @pipeline declarer_tables_auxiliaires
61 * @param array $tables_auxiliaires
62 *     Description des tables
63 * @return array
64 *     Description complétée des tables
65 */
66function revisions_declarer_tables_auxiliaires($tables_auxiliaires) {
67
68        $spip_versions = array(
69                'id_version' => 'bigint(21) DEFAULT 0 NOT NULL',
70                'id_objet' => 'bigint(21) DEFAULT 0 NOT NULL',
71                'objet' => "VARCHAR (25) DEFAULT '' NOT NULL",
72                'date' => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
73                'id_auteur' => "VARCHAR(23) DEFAULT '' NOT NULL", # stocke aussi IP(v6)
74                'titre_version' => "text DEFAULT '' NOT NULL",
75                'permanent' => "char(3) DEFAULT '' NOT NULL",
76                'champs' => "text DEFAULT '' NOT NULL"
77        );
78
79        $spip_versions_key = array(
80                'PRIMARY KEY' => 'id_version, id_objet, objet',
81                'KEY id_version' => 'id_version',
82                'KEY id_objet' => 'id_objet',
83                'KEY objet' => 'objet'
84        );
85        $spip_versions_join = array(
86                'id_version' => 'id_version',
87                'id_objet' => 'id_objet',
88                'objet' => 'objet',
89                'id_auteur' => 'id_auteur',
90        );
91
92        $spip_versions_fragments = array(
93                'id_fragment' => "int unsigned DEFAULT '0' NOT NULL",
94                'version_min' => "int unsigned DEFAULT '0' NOT NULL",
95                'version_max' => "int unsigned DEFAULT '0' NOT NULL",
96                'id_objet' => 'bigint(21) NOT NULL',
97                'objet' => "VARCHAR (25) DEFAULT '' NOT NULL",
98                'compress' => 'tinyint NOT NULL',
99                'fragment' => 'longblob'  # ici c'est VRAIMENT un blob (on y stocke du gzip)
100        );
101
102        $spip_versions_fragments_key = array(
103                'PRIMARY KEY' => 'id_objet, objet, id_fragment, version_min'
104        );
105
106
107        $tables_auxiliaires['spip_versions'] = array(
108                'field' => &$spip_versions,
109                'key' => &$spip_versions_key,
110                'join' => &$spip_versions_join
111        );
112
113        $tables_auxiliaires['spip_versions_fragments'] = array(
114                'field' => &$spip_versions_fragments,
115                'key' => &$spip_versions_fragments_key
116        );
117
118        return $tables_auxiliaires;
119}
Note: See TracBrowser for help on using the repository browser.