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

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

Renommage des fichiers, rangement en attendant de passer sous SPIP 2.2 et d'utiliser la nouvelle API de lecture des fichiers xml.
Ajout des informations de traductions en base. Il ne reste plus qu'à les afficher et cette première version de SVP pourra être archivéé.

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