source: spip-zone/_plugins_/svp/base/svp_declarer.php @ 48867

Last change on this file since 48867 was 48867, checked in by eric@…, 10 years ago

SVP se débarasse des statistiques d'utilisation des plugins qui vont rejoindre un autre plugin SVP Statistiques.
On en profite aussi pour appeler maj_tables() avec la liste des tables manipulées par SVP ce qui est plus optimisé.
Incrément de version

  • Property svn:eol-style set to native
File size: 6.3 KB
Line 
1<?php
2
3function svp_declarer_tables_principales($tables_principales) {
4
5        // Tables des depots : spip_depots
6        $depots = array(
7                "id_depot"              => "bigint(21) NOT NULL",
8                "titre"                 => "text DEFAULT '' NOT NULL",
9                "descriptif"    => "text DEFAULT '' NOT NULL",
10                "type"                  => "varchar(10) DEFAULT '' NOT NULL",
11                "url_serveur"   => "varchar(255) DEFAULT '' NOT NULL", // url du serveur svn ou git
12                "url_brouteur"  => "varchar(255) DEFAULT '' NOT NULL", // url de l'interface de gestion du repository (trac, redmine...)
13                "url_archives"  => "varchar(255) DEFAULT '' NOT NULL", // url de base des zips
14                "xml_paquets"   => "varchar(255) DEFAULT '' NOT NULL", // chemin complet du fichier xml du depot
15                "sha_paquets"   => "varchar(40) DEFAULT '' NOT NULL",
16                "nbr_paquets"   => "integer DEFAULT 0 NOT NULL",
17                "nbr_plugins"   => "integer DEFAULT 0 NOT NULL",
18                "nbr_autres"    => "integer DEFAULT 0 NOT NULL", // autres contributions, non plugin
19                "maj"                   => "timestamp");
20
21        $depots_key = array(
22                "PRIMARY KEY"   => "id_depot"
23        );
24
25        $tables_principales['spip_depots'] =
26                array('field' => &$depots, 'key' => &$depots_key);
27
28        // Tables des plugins : spip_plugins
29        $plugins = array(
30                "id_plugin"             => "bigint(21) NOT NULL",
31                "prefixe"               => "varchar(30) DEFAULT '' NOT NULL",
32                "nom"                   => "text DEFAULT '' NOT NULL",
33                "slogan"                => "text DEFAULT '' NOT NULL",
34                "categorie"             => "varchar(100) DEFAULT '' NOT NULL",
35                "tags"                  => "text DEFAULT '' NOT NULL",
36                "vmax"                  => "varchar(24) DEFAULT '' NOT NULL", // version la plus elevee des paquets du plugin
37                "date_crea"             => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", // la plus ancienne des paquets du plugin
38                "date_modif"    => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", // la plus recente des paquets du plugin
39                "compatibilite_spip"    => "varchar(24) DEFAULT '' NOT NULL", // union des intervalles des paquets du plugin
40                "branches_spip" => "varchar(255) DEFAULT '' NOT NULL", // union des branches spip supportees par les paquets du plugin
41        );
42       
43        $plugins_key = array(
44                "PRIMARY KEY"   => "id_plugin",
45                "KEY"   => "prefixe"
46        );
47
48        $tables_principales['spip_plugins'] =
49                array('field' => &$plugins, 'key' => &$plugins_key);
50
51        // Tables des paquets : spip_paquets
52        $paquets = array(
53                "id_paquet"             => "bigint(21) NOT NULL",
54                "id_plugin"             => "bigint(21) NOT NULL",
55                "logo"                  => "varchar(255) DEFAULT '' NOT NULL", // chemin du logo depuis la racine du plugin
56                "version"               => "varchar(24) DEFAULT '' NOT NULL",
57                "version_base"  => "varchar(24) DEFAULT '' NOT NULL",
58                "compatibilite_spip"    => "varchar(24) DEFAULT '' NOT NULL",
59                "branches_spip" => "varchar(255) DEFAULT '' NOT NULL", // branches spip supportees (cf meta)
60                "description"   => "text DEFAULT '' NOT NULL",
61                "auteur"                => "text DEFAULT '' NOT NULL",
62                "credit"                => "text DEFAULT '' NOT NULL",
63                "licence"               => "text DEFAULT '' NOT NULL",
64                "copyright"             => "text DEFAULT '' NOT NULL",
65                "lien_doc"              => "text DEFAULT '' NOT NULL", // lien vers la documentation
66                "lien_demo"             => "text DEFAULT '' NOT NULL", // lien vers le site de demo
67                "lien_dev"              => "text DEFAULT '' NOT NULL", // lien vers le site de dev
68                "etat"                  => "varchar(16) DEFAULT '' NOT NULL",
69                "etatnum"               => "int(1) DEFAULT 0 NOT NULL", // 0 aucune indication - 1 exp - 2 dev - 3 test - 4 stable
70                "dependances"   => "text DEFAULT '' NOT NULL",
71                "date_crea"             => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
72                "date_modif"    => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL",
73                "id_depot"              => "bigint(21) DEFAULT 0 NOT NULL",
74                "nom_archive"   => "VARCHAR(255) DEFAULT '' NOT NULL", // nom du zip du paquet, depuis l'adresse de la zone
75                "nbo_archive"   => "integer DEFAULT 0 NOT NULL", // taille de l'archive en octets
76                "maj_archive"   => "datetime DEFAULT '0000-00-00 00:00:00' NOT NULL", // date de mise a jour de l'archive
77                "src_archive"   => "VARCHAR(255) DEFAULT '' NOT NULL", // source de l'archive sur le depot
78                "traductions"   => "text DEFAULT '' NOT NULL" // tableau serialise par module des langues traduites et de leurs traducteurs
79        );
80       
81        $paquets_key = array(
82                "PRIMARY KEY"   => "id_paquet",
83                "KEY id_plugin" => "id_plugin"
84        );
85
86        // Les jointures
87        // -- Entre spip_paquets et spip_plugins
88        $paquets_join = array(
89                "id_paquet"     => "id_paquet",
90                "id_plugin"     => "id_plugin"
91        );
92       
93        $tables_principales['spip_paquets'] =
94                array('field' => &$paquets, 'key' => &$paquets_key, 'join' => &$paquets_join);
95
96        return $tables_principales;
97}
98
99
100function svp_declarer_tables_auxiliaires($tables_auxiliaires) {
101        // Tables de liens entre plugins et depots : spip_depots_plugins
102        $spip_depots_plugins = array(
103                "id_depot"      => "bigint(21) NOT NULL",
104                "id_plugin"     => "bigint(21) NOT NULL"
105        );
106
107        $spip_depots_plugins_key = array(
108                "PRIMARY KEY"   => "id_depot, id_plugin"
109        );
110
111        $tables_auxiliaires['spip_depots_plugins'] = 
112                array('field' => &$spip_depots_plugins, 'key' => &$spip_depots_plugins_key);
113
114        return $tables_auxiliaires;
115}
116
117
118function svp_declarer_tables_interfaces($interface) {
119        // Les tables
120        $interface['table_des_tables']['depots'] = 'depots';
121        $interface['table_des_tables']['plugins'] = 'plugins'; 
122        $interface['table_des_tables']['paquets'] = 'paquets'; 
123        $interface['table_des_tables']['depots_plugins'] = 'depots_plugins';   
124
125        // Les traitements
126        // - table spip_plugins
127        $interface['table_des_traitements']['SLOGAN']['plugins'] = _TRAITEMENT_RACCOURCIS;     
128        // - table spip_paquets
129        $interface['table_des_traitements']['DESCRIPTION']['paquets'] = _TRAITEMENT_RACCOURCIS; 
130       
131        // Les jointures
132        // -- Entre spip_depots et spip_plugins
133        $interface['tables_jointures']['spip_plugins'][] = 'depots_plugins';
134        $interface['tables_jointures']['spip_depots'][] = 'depots_plugins';
135        // -- Entre spip_paquets et spip_plugins
136
137        // Titre pour url des objets plugin et depot
138        $interface['table_titre']['depots'] = "titre, '' AS lang";
139        $interface['table_titre']['plugins'] = "nom, '' AS lang";
140
141        return $interface;
142}
143
144
145function svp_rechercher_liste_des_champs($tables) {
146        // On déclare les champs de recherche dans les tables plugins et paquets
147        // -- Table spip_plugins
148        $tables['plugin']['prefixe'] = 8;
149        $tables['plugin']['nom'] = 8;
150        $tables['plugin']['slogan'] = 4;
151        // -- Table spip_paquets
152        $tables['paquet']['description'] = 2;
153        $tables['paquet']['auteur'] = 1;
154
155        return $tables;
156}
157
158function svp_declarer_url_objets($objets){
159        // On déclare url d'objet plugin et depot
160        $objets[] = 'depot';
161        $objets[] = 'plugin';
162        return $objets;
163}
164
165?>
Note: See TracBrowser for help on using the repository browser.