[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins / menus_1 / menus_administrations.php
1 <?php
2
3 // Sécurité
4 if (!defined('_ECRIRE_INC_VERSION')) {
5 return;
6 }
7
8 include_spip('inc/meta');
9
10 // Installation et mise à jour
11 function menus_upgrade($nom_meta_version_base, $version_cible) {
12 $maj = array();
13
14 $maj['create'] = array(
15 array('creer_base'),
16 array(
17 'ecrire_config',
18 'menus/entrees_masquees',
19 array('rubriques', 'groupe_mots', 'mapage', 'deconnecter', 'secteurlangue')
20 )
21 );
22
23 $maj['0.5.0'] = array(
24 array('sql_alter', "TABLE spip_menus ADD COLUMN css tinytext DEFAULT '' NOT NULL")
25 );
26
27 $maj['0.5.1'] = array(
28 array(
29 'sql_updateq',
30 'spip_menus_entrees',
31 array(
32 'type_entree' => 'rubriques_completes'
33 ),
34 'type_entree = '.sql_quote('rubriques')
35 )
36 );
37 $maj['0.5.2'] = array(
38 array('menus_fusionne_critere_tri_inverse'),
39 );
40 $maj['0.5.3'] = array(
41 array('menus_fusionne_critere_tri_num_alpha'),
42 );
43
44 include_spip('base/upgrade');
45 maj_plugin($nom_meta_version_base, $version_cible, $maj);
46 }
47
48 function menus_fusionne_critere_tri_num_alpha() {
49
50 $res = sql_select('*', 'spip_menus_entrees', '', '', 'id_menus_entree');
51 while ($row = sql_fetch($res)) {
52 #var_dump($row);
53 $params = unserialize($row['parametres']);
54
55 $change = false;
56 if (isset($params['tri_num']) and isset($params['tri_alpha'])) {
57 $tri = '';
58 if (strlen($params['tri_num'])) {
59 $tri = 'num '.trim($params['tri_num']);
60 $tri = str_replace('num !', '!num ', $tri);
61 } else {
62 $tri = trim($params['tri_alpha']);
63 }
64 $params['tri'] = $tri;
65 unset($params['tri_num']);
66 unset($params['tri_alpha']);
67 $change = true;
68 }
69 if (isset($params['tri_num_articles']) and isset($params['tri_alpha_articles'])) {
70 $tri = '';
71 if (strlen($params['tri_num_articles'])) {
72 $tri = 'num '.trim($params['tri_num_articles']);
73 $tri = str_replace('num !', '!num ', $tri);
74 } else {
75 $tri = trim($params['tri_alpha_articles']);
76 }
77 $params['tri_articles'] = $tri;
78 unset($params['tri_num_articles']);
79 unset($params['tri_alpha_articles']);
80 $change = true;
81 }
82
83 if ($change) {
84 #var_dump($params);
85 $params = serialize($params);
86 sql_updateq(
87 'spip_menus_entrees',
88 array('parametres' => $params),
89 'id_menus_entree='.intval($row['id_menus_entree'])
90 );
91 }
92 }
93 }
94
95 function menus_fusionne_critere_tri_inverse() {
96
97 $res = sql_select('*', 'spip_menus_entrees', '', '', 'id_menus_entree');
98 while ($row = sql_fetch($res)) {
99 #var_dump($row);
100 $params = unserialize($row['parametres']);
101
102 $change = false;
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'];
107 $change = true;
108 unset($params['tri_num_inverse']);
109 }
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'];
114 $change = true;
115 unset($params['tri_alpha_inverse']);
116 }
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'];
121 $change = true;
122 unset($params['tri_num_articles_inverse']);
123 }
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'];
128 $change = true;
129 unset($params['tri_alpha_articles_inverse']);
130 }
131
132 if ($change) {
133 $params = serialize($params);
134 sql_updateq(
135 'spip_menus_entrees',
136 array('parametres' => $params),
137 'id_menus_entree='.intval($row['id_menus_entree'])
138 );
139 #var_dump($params);
140 }
141 }
142 }
143
144 // Désinstallation
145 function menus_vider_tables($nom_meta_version_base) {
146 include_spip('base/abstract_sql');
147
148 // On efface les tables du plugin
149 sql_drop_table('spip_menus');
150 sql_drop_table('spip_menus_entrees');
151
152 // On efface la version enregistrée
153 effacer_meta($nom_meta_version_base);
154 // On efface la config
155 effacer_meta('menus');
156 }