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

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

Enfin la page téléchargements est optimisée !!!
Le critère inconnu provenait d'une déclaration de jointure incorrecte entre paquets et plugins.

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