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

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

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

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