4 if (!defined('_ECRIRE_INC_VERSION')) {
8 include_spip('inc/meta');
10 // Installation et mise à jour
11 function menus_upgrade($nom_meta_version_base, $version_cible) {
14 $maj['create'] = array(
18 'menus/entrees_masquees',
19 array('rubriques', 'groupe_mots', 'mapage', 'deconnecter', 'secteurlangue')
23 $maj['0.5.0'] = array(
24 array('sql_alter', "TABLE spip_menus ADD COLUMN css tinytext DEFAULT '' NOT NULL")
27 $maj['0.5.1'] = array(
32 'type_entree' => 'rubriques_completes'
34 'type_entree = '.sql_quote('rubriques')
37 $maj['0.5.2'] = array(
38 array('menus_fusionne_critere_tri_inverse'),
40 $maj['0.5.3'] = array(
41 array('menus_fusionne_critere_tri_num_alpha'),
44 include_spip('base/upgrade');
45 maj_plugin($nom_meta_version_base, $version_cible, $maj);
48 function menus_fusionne_critere_tri_num_alpha() {
50 $res = sql_select('*', 'spip_menus_entrees', '', '', 'id_menus_entree');
51 while ($row = sql_fetch($res)) {
53 $params = unserialize($row['parametres']);
56 if (isset($params['tri_num']) and isset($params['tri_alpha'])) {
58 if (strlen($params['tri_num'])) {
59 $tri = 'num '.trim($params['tri_num']);
60 $tri = str_replace('num !', '!num ', $tri);
62 $tri = trim($params['tri_alpha']);
64 $params['tri'] = $tri;
65 unset($params['tri_num']);
66 unset($params['tri_alpha']);
69 if (isset($params['tri_num_articles']) and isset($params['tri_alpha_articles'])) {
71 if (strlen($params['tri_num_articles'])) {
72 $tri = 'num '.trim($params['tri_num_articles']);
73 $tri = str_replace('num !', '!num ', $tri);
75 $tri = trim($params['tri_alpha_articles']);
77 $params['tri_articles'] = $tri;
78 unset($params['tri_num_articles']);
79 unset($params['tri_alpha_articles']);
85 $params = serialize($params);
88 array('parametres' => $params),
89 'id_menus_entree='.intval($row['id_menus_entree'])
95 function menus_fusionne_critere_tri_inverse() {
97 $res = sql_select('*', 'spip_menus_entrees', '', '', 'id_menus_entree');
98 while ($row = sql_fetch($res)) {
100 $params = unserialize($row['parametres']);
103 if (isset($params['tri_num_inverse'])
104 and $params['tri_num_inverse']=='oui'
105 and strlen($params['tri_num'])) {
106 $params['tri_num'] = '!'.$params['tri_num'];
108 unset($params['tri_num_inverse']);
110 if (isset($params['tri_alpha_inverse'])
111 and $params['tri_alpha_inverse'] == 'oui'
112 and strlen($params['tri_alpha'])) {
113 $params['tri_alpha'] = '!'.$params['tri_alpha'];
115 unset($params['tri_alpha_inverse']);
117 if (isset($params['tri_num_articles_inverse'])
118 and $params['tri_num_articles_inverse']=='oui'
119 and strlen($params['tri_num_articles'])) {
120 $params['tri_num_articles'] = '!'.$params['tri_num_articles'];
122 unset($params['tri_num_articles_inverse']);
124 if (isset($params['tri_alpha_articles_inverse'])
125 and $params['tri_alpha_articles_inverse']=='oui'
126 and strlen($params['tri_alpha_articles'])) {
127 $params['tri_alpha_articles'] = '!'.$params['tri_alpha_articles'];
129 unset($params['tri_alpha_articles_inverse']);
133 $params = serialize($params);
135 'spip_menus_entrees',
136 array('parametres' => $params),
137 'id_menus_entree='.intval($row['id_menus_entree'])
145 function menus_vider_tables($nom_meta_version_base) {
146 include_spip('base/abstract_sql');
148 // On efface les tables du plugin
149 sql_drop_table('spip_menus');
150 sql_drop_table('spip_menus_entrees');
152 // On efface la version enregistrée
153 effacer_meta($nom_meta_version_base);
154 // On efface la config
155 effacer_meta('menus');