4 if (!defined("_ECRIRE_INC_VERSION")) return;
6 include_spip('inc/meta');
8 // Installation et mise à jour
9 function menus_upgrade($nom_meta_version_base, $version_cible){
12 $maj['create'] = array(
14 array('ecrire_config', 'menus/entrees_masquees', array('rubriques', 'groupe_mots', 'mapage', 'deconnecter', 'secteurlangue')),
17 $maj['0.5.0'] = array(
18 array('sql_alter', "TABLE spip_menus ADD COLUMN css tinytext DEFAULT '' NOT NULL"),
21 $maj['0.5.1'] = array(
22 array('sql_updateq', 'spip_menus_entrees', array('type_entree'=>'rubriques_completes'), 'type_entree = '.sql_quote('rubriques')),
24 $maj['0.5.2'] = array(
25 array('menus_fusionne_critere_tri_inverse'),
27 $maj['0.5.3'] = array(
28 array('menus_fusionne_critere_tri_num_alpha'),
31 include_spip('base/upgrade');
32 maj_plugin($nom_meta_version_base, $version_cible, $maj);
35 function menus_fusionne_critere_tri_num_alpha(){
37 $res = sql_select("*","spip_menus_entrees","","","id_menus_entree");
38 while ($row = sql_fetch($res)){
40 $params = unserialize($row['parametres']);
43 if (isset($params['tri_num']) AND isset($params['tri_alpha'])){
45 if (strlen($params['tri_num'])){
46 $tri = "num ".trim($params['tri_num']);
47 $tri = str_replace("num !","!num ",$tri);
50 $tri = trim($params['tri_alpha']);
52 $params['tri'] = $tri;
53 unset($params['tri_num']);
54 unset($params['tri_alpha']);
57 if (isset($params['tri_num_articles']) AND isset($params['tri_alpha_articles'])){
59 if (strlen($params['tri_num_articles'])){
60 $tri = "num ".trim($params['tri_num_articles']);
61 $tri = str_replace("num !","!num ",$tri);
64 $tri = trim($params['tri_alpha_articles']);
66 $params['tri_articles'] = $tri;
67 unset($params['tri_num_articles']);
68 unset($params['tri_alpha_articles']);
74 $params = serialize($params);
75 sql_updateq("spip_menus_entrees",array('parametres'=>$params),"id_menus_entree=".intval($row['id_menus_entree']));
81 function menus_fusionne_critere_tri_inverse(){
83 $res = sql_select("*","spip_menus_entrees","","","id_menus_entree");
84 while ($row = sql_fetch($res)){
86 $params = unserialize($row['parametres']);
89 if (isset($params['tri_num_inverse'])
90 AND $params['tri_num_inverse']=='oui'
91 AND strlen($params['tri_num'])){
92 $params['tri_num'] = "!".$params['tri_num'];
94 unset($params['tri_num_inverse']);
96 if (isset($params['tri_alpha_inverse'])
97 AND $params['tri_alpha_inverse']=='oui'
98 AND strlen($params['tri_alpha'])){
99 $params['tri_alpha'] = "!".$params['tri_alpha'];
101 unset($params['tri_alpha_inverse']);
103 if (isset($params['tri_num_articles_inverse'])
104 AND $params['tri_num_articles_inverse']=='oui'
105 AND strlen($params['tri_num_articles'])){
106 $params['tri_num_articles'] = "!".$params['tri_num_articles'];
108 unset($params['tri_num_articles_inverse']);
110 if (isset($params['tri_alpha_articles_inverse'])
111 AND $params['tri_alpha_articles_inverse']=='oui'
112 AND strlen($params['tri_alpha_articles'])){
113 $params['tri_alpha_articles'] = "!".$params['tri_alpha_articles'];
115 unset($params['tri_alpha_articles_inverse']);
119 $params = serialize($params);
120 sql_updateq("spip_menus_entrees",array('parametres'=>$params),"id_menus_entree=".intval($row['id_menus_entree']));
128 function menus_vider_tables($nom_meta_version_base){
129 include_spip('base/abstract_sql');
131 // On efface les tables du plugin
132 sql_drop_table('spip_menus');
133 sql_drop_table('spip_menus_entrees');
135 // On efface la version enregistrée
136 effacer_meta($nom_meta_version_base);
137 // On efface la config
138 effacer_meta('menus');