[SPIP] ~v3.0.20-->v3.0.25
[lhc/web/clavette_www.git] / www / plugins-dist / revisions / base / revisions.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2016 *
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 if (!defined('_ECRIRE_INC_VERSION')) return;
14
15 function revisions_declarer_tables_interfaces($interface){
16
17 $interface['table_des_tables']['versions']='versions';
18
19 return $interface;
20 }
21
22 /**
23 * Declaration des jointures generiques
24 * @param $tables
25 * @return
26 */
27 function revisions_declarer_tables_objets_sql($tables){
28
29 // jointures sur les mots pour tous les objets
30 $tables[]['tables_jointures'][]= 'versions';
31
32 return $tables;
33 }
34
35 /**
36 * Table principale spip_versions
37 *
38 * @param array $tables_principales
39 * @return array
40 */
41 function revisions_declarer_tables_auxiliaires($tables_auxiliaires){
42
43 $spip_versions = array (
44 "id_version" => "bigint(21) DEFAULT 0 NOT NULL",
45 "id_objet" => "bigint(21) DEFAULT 0 NOT NULL",
46 "objet" => "VARCHAR (25) DEFAULT '' NOT NULL",
47 "date" => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
48 "id_auteur" => "VARCHAR(23) DEFAULT '' NOT NULL", # stocke aussi IP(v6)
49 "titre_version" => "text DEFAULT '' NOT NULL",
50 "permanent" => "char(3) DEFAULT '' NOT NULL",
51 "champs" => "text DEFAULT '' NOT NULL"
52 );
53
54 $spip_versions_key = array (
55 "PRIMARY KEY" => "id_version, id_objet, objet",
56 "KEY id_version" => "id_version",
57 "KEY id_objet" => "id_objet",
58 "KEY objet" => "objet");
59
60 $spip_versions_fragments = array(
61 "id_fragment" => "int unsigned DEFAULT '0' NOT NULL",
62 "version_min" => "int unsigned DEFAULT '0' NOT NULL",
63 "version_max" => "int unsigned DEFAULT '0' NOT NULL",
64 "id_objet" => "bigint(21) NOT NULL",
65 "objet" => "VARCHAR (25) DEFAULT '' NOT NULL",
66 "compress" => "tinyint NOT NULL",
67 "fragment" => "longblob" # ici c'est VRAIMENT un blob (on y stocke du gzip)
68 );
69
70 $spip_versions_fragments_key = array(
71 "PRIMARY KEY" => "id_objet, objet, id_fragment, version_min"
72 );
73
74
75 $tables_auxiliaires['spip_versions'] = array(
76 'field' => &$spip_versions,
77 'key' => &$spip_versions_key);
78
79 $tables_auxiliaires['spip_versions_fragments'] = array(
80 'field' => &$spip_versions_fragments,
81 'key' => &$spip_versions_fragments_key);
82
83 return $tables_auxiliaires;
84 }
85
86 ?>