[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / aveline / base / aveline_installation.php
1 <?php
2
3 // Sécurité
4 if (!defined("_ECRIRE_INC_VERSION")) return;
5
6 include_spip('inc/meta');
7
8 // Installation et mise à jour
9 function aveline_upgrade($nom_meta_version_base, $version_cible){
10 $version_actuelle = '0.0';
11
12 // Historiquement, la version 0.2.X correspondent au garde noisettes (< 1.0.0)
13 if (isset($GLOBALS['meta']['gn_base_version'])) {
14 $version_actuelle = $GLOBALS['meta']['gn_base_version'];
15 effacer_meta('gn_base_version');
16 }
17
18 if (
19 (!isset($GLOBALS['meta'][$nom_meta_version_base]))
20 || (($version_actuelle = $GLOBALS['meta'][$nom_meta_version_base]) != $version_cible)
21 ){
22 if (isset($GLOBALS['table_des_tables']['noisettes'])) {
23 // On calcule le tableau des noisettes
24 include_spip('base/abstract_sql');
25 $noisettes = sql_allfetsel('*','spip_noisettes','1');
26
27 if( sizeof($noisettes)>0) {
28 // On remet au propre les parametres
29 foreach ($noisettes as $cle => $noisette)
30 $noisettes[$cle]['parametres'] = unserialize($noisette['parametres']);
31
32 // On applique les mises à jour
33 $noisettes = aveline_maj_noisettes($noisettes,$version_actuelle);
34
35 // Il faut serializer les paramètres avant mise en base
36 foreach ($noisettes as $cle => $noisette)
37 $noisettes[$cle]['parametres'] = serialize($noisette['parametres']);
38
39 // On update la base
40 sql_replace_multi('spip_noisettes',$noisettes);
41 }
42 }
43 ecrire_meta($nom_meta_version_base, $version_actuelle=$version_cible, 'non');
44 }
45
46 }
47
48 // Désinstallation
49 function aveline_vider_tables($nom_meta_version_base){
50 // On efface la version enregistrée
51 effacer_meta($nom_meta_version_base);
52 }
53
54 // Mise à jour des noisettes
55
56 function aveline_maj_noisettes($noisettes, $version_actuelle) {
57 if (version_compare($current_version,'0.1','>') && version_compare($current_version,'0.3.0','<')){
58 foreach ($noisettes as $cle => $noisette)
59 $noisettes[$cle]['parametres'] = str_replace('gn_public:','avelinepublic:',$noisettes[$cle]['parametres']);
60 }
61 if (version_compare($current_version,'0.3.2','<')){
62 foreach ($noisettes as $cle => $noisette) {
63 if(in_array($noisette['noisette'],array(
64 'auteur-articles',
65 'liste_articles',
66 'mot-articles',
67 'page-recherche-articles',
68 'liste_breves',
69 'mot-breves',
70 'page-recherche-breves',
71 'liste_auteurs',
72 'page-recherche-auteurs',
73 'rubrique-sous_rubriques',
74 'rubriques_secteur_langue',
75 'rubriques_racine',
76 'page-recherche-rubriques',
77 'liste_forums',
78 'mot-forums',
79 'selecteur_archives'
80 ))){
81 foreach($noisette['parametres'] as $param => $valeur) {
82 if ($param == 'tri' and $valeur == 'nb_articles')
83 $noisettes[$cle]['parametres'][$param] = 'compteur_articles';
84 if ($param == 'senstri' and intval($valeur) == 0)
85 $noisettes[$cle]['parametres'][$param] = '';
86 if ($param == 'senstri' and intval($valeur) == 1)
87 $noisettes[$cle]['parametres'][$param] = 'inverse';
88 if ($param == 'tri' and $valeur == 'nbre_commentaires')
89 $noisettes[$cle]['parametres'][$param] = 'compteur_forum';
90 if ($param == 'tri' and $valeur == 'note')
91 $noisettes[$cle]['parametres'][$param] = 'moyenne';
92 if ($param == 'liste_articles') {
93 $noisettes[$cle]['parametres']['branche'] = $noisettes[$cle]['parametres'][$param];
94 unset($noisettes[$cle]['parametres'][$param]);
95 }
96 if ($param == 'exclure_article_en_cours') {
97 $noisettes[$cle]['parametres']['exclure_objet_en_cours'] = $noisettes[$cle]['parametres'][$param];
98 unset($noisettes[$cle]['parametres'][$param]);
99 }
100 if ($param == 'pas_selecteur_archives' and $valeur == 'annee_mois')
101 $noisettes[$cle]['parametres'][$param] = 'mois';
102 if ($param == 'liste_breves') {
103 $noisettes[$cle]['parametres']['branche'] = $noisettes[$cle]['parametres'][$param];
104 unset($noisettes[$cle]['parametres'][$param]);
105 }
106 if ($param == 'exclure_breve_en_cours') {
107 $noisettes[$cle]['parametres']['exclure_objet_en_cours'] = $noisettes[$cle]['parametres'][$param];
108 unset($noisettes[$cle]['parametres'][$param]);
109 }
110 }
111 }
112 if(in_array($noisette['noisette'],array('page-recherche-articles','page-recherche-auteurs','page-recherche-rubriques','page-recherche-breves'))){
113 $noisettes[$cle]['parametres']['tri'] = 'points';
114 $noisettes[$cle]['parametres']['senstri'] = 'inverse';
115 }
116 if(in_array($noisette['noisette'],array(
117 'liste_documents',
118 'article-documents',
119 'rubrique-documents',
120 'page-recherche-documents'
121 ))){
122 foreach($noisette['parametres'] as $param => $valeur) {
123 if ($param == 'senstri' and intval($valeur) == 0)
124 $noisettes[$cle]['parametres'][$param] = '';
125 if ($param == 'senstri' and intval($valeur) == 1)
126 $noisettes[$cle]['parametres'][$param] = 'inverse';
127 }
128 }
129 }
130 }
131 if (version_compare($current_version,'0.3.3','<')){
132 foreach ($noisettes as $cle => $noisette) {
133 if(in_array($noisette['noisette'],array(
134 'liste_documents',
135 'article-documents',
136 'rubrique-documents',
137 'page-recherche-documents'
138 ))){
139 foreach($noisette['parametres'] as $param => $valeur) {
140 if ($param == 'tri' and $valeur == 'multi titre')
141 $noisettes[$cle]['parametres'][$param] = 'titre';
142 }
143 }
144 }
145 }
146 if (version_compare($current_version,'0.3.4','<')){
147 foreach ($noisettes as $cle => $noisette) {
148 if(in_array($noisette['noisette'],array(
149 'auteur-articles',
150 'liste_articles',
151 'mot-articles',
152 'page-recherche-articles',
153 'liste_breves',
154 'mot-breves',
155 'page-recherche-breves',
156 'liste_auteurs',
157 'page-recherche-auteurs',
158 'rubrique-sous_rubriques',
159 'rubriques_secteur_langue',
160 'rubriques_racine',
161 'page-recherche-rubriques',
162 'liste_forums',
163 'mot-forums',
164 'selecteur_archives'
165 ))){
166 foreach($noisette['parametres'] as $param => $valeur) {
167 if ($param == 'tri' and $valeur == 'num titre')
168 $noisettes[$cle]['parametres'][$param] = 'titre';
169 }
170 }
171 }
172 }
173 if (version_compare($current_version,'0.3.5','<')){
174 foreach ($noisettes as $cle => $noisette) {
175 if(in_array($noisette['noisette'],array(
176 'liste_sites',
177 'mot-sites',
178 'page-recherche-sites',
179 'liste_syndic_articles',
180 'site-syndic_articles',
181 'page-recherche-syndic_articles'
182 ))){
183 foreach($noisette['parametres'] as $param => $valeur) {
184 if ($param == 'liste_sites') {
185 $noisettes[$cle]['parametres']['branche'] = $noisettes[$cle]['parametres'][$param];
186 unset($noisettes[$cle]['parametres'][$param]);
187 }
188 if ($param == 'exclure_site_en_cours') {
189 $noisettes[$cle]['parametres']['exclure_objet_en_cours'] = $noisettes[$cle]['parametres'][$param];
190 unset($noisettes[$cle]['parametres'][$param]);
191 }
192 if ($param == 'liste_syndic_articles') {
193 $noisettes[$cle]['parametres']['branche'] = $noisettes[$cle]['parametres'][$param];
194 unset($noisettes[$cle]['parametres'][$param]);
195 }
196 }
197 }
198 }
199 }
200 if (version_compare($current_version,'0.3.6','<')){
201 foreach ($noisettes as $cle => $noisette)
202 $noisettes[$cle]['parametres'] = str_replace('aveline_public:','avelinepublic:',$noisettes[$cle]['parametres']);
203 }
204 if (version_compare($current_version,'0.3.7')==0){
205 // Réparation d'une boulette qui ne concerne que la version 0.3.7
206 foreach ($noisettes as $cle => $noisette) {
207 $noisettes[$cle]['parametres'] = str_replace('avelinepublic:colon2','::',$noisettes[$cle]['parametres']);
208 $noisettes[$cle]['parametres'] = str_replace('avelinepublic:gt','>',$noisettes[$cle]['parametres']);
209 }
210 }
211 if (version_compare($current_version,'0.3.8','<')){
212 foreach ($noisettes as $cle => $noisette) {
213 foreach($noisette['parametres'] as $param => $valeur) {
214 if (in_array($param,array(
215 'texte_devant_mots_cles',
216 'liste_texte_devant_mots_cles',
217 'texte_devant_rubrique',
218 'liste_texte_devant_rubrique',
219 'texte_devant_article',
220 'liste_texte_devant_article'
221 ))) {
222 if ($valeur=='::')
223 $noisettes[$cle]['parametres'][$param] = 'avelinepublic:colon2';
224 if ($valeur=='>')
225 $noisettes[$cle]['parametres'][$param] = 'avelinepublic:gt';
226 }
227 }
228 }
229 }
230 return $noisettes;
231 }
232
233 ?>