[PLUGINS] +set de base
[lhc/web/www.git] / www / plugins / compositions_v3 / compositions_administrations.php
1 <?php
2 /*
3 * Plugin Compositions
4 * (c) 2007-2009 Cedric Morin
5 * Distribue sous licence GPL
6 *
7 */
8
9 if (!defined("_ECRIRE_INC_VERSION")) return;
10
11
12 /**
13 * Upgrade des tables
14 *
15 * @param string $nom_meta_base_version
16 * @param string $version_cible
17 */
18 function compositions_upgrade($nom_meta_base_version,$version_cible){
19 include_spip('base/objets');
20 $tables_objets = array_keys(lister_tables_objets_sql());
21 $maj = array();
22 $maj['create'] = array();
23 foreach($tables_objets as $table){
24 $maj['create'][] = array('sql_alter',"TABLE $table ADD composition varchar(255) DEFAULT '' NOT NULL");
25 $maj['create'][] = array('sql_alter',"TABLE $table ADD composition_lock tinyint(1) DEFAULT 0 NOT NULL");
26 }
27 $maj['create'][] = array('sql_alter',"TABLE spip_rubriques ADD composition_branche_lock tinyint(1) DEFAULT 0 NOT NULL");
28
29 $maj['0.5.0'] = array();
30 foreach($tables_objets as $table){
31 $maj['0.5.0'][] = array('sql_alter',"TABLE $table ADD composition varchar(255) DEFAULT '' NOT NULL");
32 $maj['0.5.0'][] = array('sql_alter',"TABLE $table ADD composition_lock tinyint(1) DEFAULT 0 NOT NULL");
33 }
34 $maj['0.5.0'][] = array('sql_alter',"TABLE spip_rubriques ADD composition_branche_lock tinyint(1) DEFAULT 0 NOT NULL");
35
36 include_spip('base/upgrade');
37 maj_plugin($nom_meta_base_version, $version_cible, $maj);
38 }
39
40 /**
41 * Une fonction pour verifier que les champs sont bien sur tous les objets,
42 * appelee lors de la configuration
43 * (cas d'un nouvel objet ajoute apres l'install du plugin)
44 *
45 * @return void
46 */
47 function compositions_check_upgrade(){
48 include_spip('base/objets');
49 $tables_objets = array_keys(lister_tables_objets_sql());
50 $trouver_table = charger_fonction('trouver_table','base');
51 foreach($tables_objets as $table){
52 $desc = $trouver_table($table);
53 if (!isset($desc['field']['composition']))
54 sql_alter("TABLE $table ADD composition varchar(255) DEFAULT '' NOT NULL");
55 if (!isset($desc['field']['composition_lock']))
56 sql_alter("TABLE $table ADD composition_lock tinyint(1) DEFAULT 0 NOT NULL");
57 }
58 }
59
60 /**
61 * Desinstallation
62 *
63 * @param string $nom_meta_base_version
64 */
65 function compositions_vider_tables($nom_meta_base_version) {
66 include_spip('inc/meta');
67 include_spip('base/abstract_sql');
68
69 include_spip('base/objets');
70 $tables_objets = array_keys(lister_tables_objets_sql());
71 foreach($tables_objets as $table){
72 sql_alter("TABLE $table DROP composition");
73 sql_alter("TABLE $table DROP composition_lock");
74 }
75 sql_alter("TABLE spip_rubriques DROP composition_branche_lock");
76
77 effacer_meta('compositions');
78 effacer_meta($nom_meta_base_version);
79 }
80 ?>