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

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

Pour tonton qui ne peut pas commiter depuis son palace : suppression du traitement particulier sur les thèmes maintenant que le préfixe est unique + ajout des statistiques d'utilisation des plugins (stats.spip.org) avec mise à jour automatique possible

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