4 * (c) 2007-2009 Cedric Morin
5 * Distribue sous licence GPL
9 if (!defined("_ECRIRE_INC_VERSION")) return;
15 * @param string $nom_meta_base_version
16 * @param string $version_cible
18 function compositions_upgrade($nom_meta_base_version,$version_cible){
19 include_spip('base/objets');
20 $tables_objets = array_keys(lister_tables_objets_sql());
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");
27 $maj['create'][] = array('sql_alter',"TABLE spip_rubriques ADD composition_branche_lock tinyint(1) DEFAULT 0 NOT NULL");
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");
34 $maj['0.5.0'][] = array('sql_alter',"TABLE spip_rubriques ADD composition_branche_lock tinyint(1) DEFAULT 0 NOT NULL");
36 include_spip('base/upgrade');
37 maj_plugin($nom_meta_base_version, $version_cible, $maj);
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)
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");
63 * @param string $nom_meta_base_version
65 function compositions_vider_tables($nom_meta_base_version) {
66 include_spip('inc/meta');
67 include_spip('base/abstract_sql');
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");
75 sql_alter("TABLE spip_rubriques DROP composition_branche_lock");
77 effacer_meta('compositions');
78 effacer_meta($nom_meta_base_version);