4 if (!defined("_ECRIRE_INC_VERSION")) return;
6 include_spip('inc/meta');
8 // Installation et mise à jour
9 function aveline_upgrade($nom_meta_version_base, $version_cible){
10 $version_actuelle = '0.0';
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');
19 (!isset($GLOBALS['meta'][$nom_meta_version_base]))
20 ||
(($version_actuelle = $GLOBALS['meta'][$nom_meta_version_base]) != $version_cible)
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');
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']);
32 // On applique les mises à jour
33 $noisettes = aveline_maj_noisettes($noisettes,$version_actuelle);
35 // Il faut serializer les paramètres avant mise en base
36 foreach ($noisettes as $cle => $noisette)
37 $noisettes[$cle]['parametres'] = serialize($noisette['parametres']);
40 sql_replace_multi('spip_noisettes',$noisettes);
43 ecrire_meta($nom_meta_version_base, $version_actuelle=$version_cible, 'non');
49 function aveline_vider_tables($nom_meta_version_base){
50 // On efface la version enregistrée
51 effacer_meta($nom_meta_version_base);
54 // Mise à jour des noisettes
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']);
61 if (version_compare($current_version,'0.3.2','<')){
62 foreach ($noisettes as $cle => $noisette) {
63 if(in_array($noisette['noisette'],array(
67 'page-recherche-articles',
70 'page-recherche-breves',
72 'page-recherche-auteurs',
73 'rubrique-sous_rubriques',
74 'rubriques_secteur_langue',
76 'page-recherche-rubriques',
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]);
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]);
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]);
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]);
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';
116 if(in_array($noisette['noisette'],array(
119 'rubrique-documents',
120 'page-recherche-documents'
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';
131 if (version_compare($current_version,'0.3.3','<')){
132 foreach ($noisettes as $cle => $noisette) {
133 if(in_array($noisette['noisette'],array(
136 'rubrique-documents',
137 'page-recherche-documents'
139 foreach($noisette['parametres'] as $param => $valeur) {
140 if ($param == 'tri' and $valeur == 'multi titre')
141 $noisettes[$cle]['parametres'][$param] = 'titre';
146 if (version_compare($current_version,'0.3.4','<')){
147 foreach ($noisettes as $cle => $noisette) {
148 if(in_array($noisette['noisette'],array(
152 'page-recherche-articles',
155 'page-recherche-breves',
157 'page-recherche-auteurs',
158 'rubrique-sous_rubriques',
159 'rubriques_secteur_langue',
161 'page-recherche-rubriques',
166 foreach($noisette['parametres'] as $param => $valeur) {
167 if ($param == 'tri' and $valeur == 'num titre')
168 $noisettes[$cle]['parametres'][$param] = 'titre';
173 if (version_compare($current_version,'0.3.5','<')){
174 foreach ($noisettes as $cle => $noisette) {
175 if(in_array($noisette['noisette'],array(
178 'page-recherche-sites',
179 'liste_syndic_articles',
180 'site-syndic_articles',
181 'page-recherche-syndic_articles'
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]);
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]);
192 if ($param == 'liste_syndic_articles') {
193 $noisettes[$cle]['parametres']['branche'] = $noisettes[$cle]['parametres'][$param];
194 unset($noisettes[$cle]['parametres'][$param]);
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']);
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']);
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'
223 $noisettes[$cle]['parametres'][$param] = 'avelinepublic:colon2';
225 $noisettes[$cle]['parametres'][$param] = 'avelinepublic:gt';