--- /dev/null
+<?php\r
+\r
+// Sécurité\r
+if (!defined("_ECRIRE_INC_VERSION")) return;\r
+\r
+include_spip('inc/meta');\r
+\r
+// Installation et mise à jour\r
+function aveline_upgrade($nom_meta_version_base, $version_cible){\r
+ $version_actuelle = '0.0';\r
+ \r
+ // Historiquement, la version 0.2.X correspondent au garde noisettes (< 1.0.0)\r
+ if (isset($GLOBALS['meta']['gn_base_version'])) {\r
+ $version_actuelle = $GLOBALS['meta']['gn_base_version'];\r
+ effacer_meta('gn_base_version');\r
+ }\r
+ \r
+ if (\r
+ (!isset($GLOBALS['meta'][$nom_meta_version_base]))\r
+ || (($version_actuelle = $GLOBALS['meta'][$nom_meta_version_base]) != $version_cible)\r
+ ){\r
+ if (isset($GLOBALS['table_des_tables']['noisettes'])) {\r
+ // On calcule le tableau des noisettes\r
+ include_spip('base/abstract_sql');\r
+ $noisettes = sql_allfetsel('*','spip_noisettes','1');\r
+\r
+ if( sizeof($noisettes)>0) {\r
+ // On remet au propre les parametres\r
+ foreach ($noisettes as $cle => $noisette)\r
+ $noisettes[$cle]['parametres'] = unserialize($noisette['parametres']);\r
+ \r
+ // On applique les mises à jour\r
+ $noisettes = aveline_maj_noisettes($noisettes,$version_actuelle);\r
+ \r
+ // Il faut serializer les paramètres avant mise en base\r
+ foreach ($noisettes as $cle => $noisette)\r
+ $noisettes[$cle]['parametres'] = serialize($noisette['parametres']);\r
+ \r
+ // On update la base\r
+ sql_replace_multi('spip_noisettes',$noisettes);\r
+ }\r
+ }\r
+ ecrire_meta($nom_meta_version_base, $version_actuelle=$version_cible, 'non');\r
+ }\r
+\r
+}\r
+\r
+// Désinstallation\r
+function aveline_vider_tables($nom_meta_version_base){\r
+ // On efface la version enregistrée\r
+ effacer_meta($nom_meta_version_base);\r
+}\r
+\r
+// Mise à jour des noisettes\r
+\r
+function aveline_maj_noisettes($noisettes, $version_actuelle) {\r
+ if (version_compare($current_version,'0.1','>') && version_compare($current_version,'0.3.0','<')){\r
+ foreach ($noisettes as $cle => $noisette)\r
+ $noisettes[$cle]['parametres'] = str_replace('gn_public:','avelinepublic:',$noisettes[$cle]['parametres']);\r
+ }\r
+ if (version_compare($current_version,'0.3.2','<')){\r
+ foreach ($noisettes as $cle => $noisette) {\r
+ if(in_array($noisette['noisette'],array(\r
+ 'auteur-articles',\r
+ 'liste_articles',\r
+ 'mot-articles',\r
+ 'page-recherche-articles',\r
+ 'liste_breves',\r
+ 'mot-breves',\r
+ 'page-recherche-breves',\r
+ 'liste_auteurs',\r
+ 'page-recherche-auteurs',\r
+ 'rubrique-sous_rubriques',\r
+ 'rubriques_secteur_langue',\r
+ 'rubriques_racine',\r
+ 'page-recherche-rubriques',\r
+ 'liste_forums',\r
+ 'mot-forums',\r
+ 'selecteur_archives'\r
+ ))){\r
+ foreach($noisette['parametres'] as $param => $valeur) {\r
+ if ($param == 'tri' and $valeur == 'nb_articles')\r
+ $noisettes[$cle]['parametres'][$param] = 'compteur_articles';\r
+ if ($param == 'senstri' and intval($valeur) == 0)\r
+ $noisettes[$cle]['parametres'][$param] = '';\r
+ if ($param == 'senstri' and intval($valeur) == 1)\r
+ $noisettes[$cle]['parametres'][$param] = 'inverse';\r
+ if ($param == 'tri' and $valeur == 'nbre_commentaires')\r
+ $noisettes[$cle]['parametres'][$param] = 'compteur_forum';\r
+ if ($param == 'tri' and $valeur == 'note')\r
+ $noisettes[$cle]['parametres'][$param] = 'moyenne';\r
+ if ($param == 'liste_articles') {\r
+ $noisettes[$cle]['parametres']['branche'] = $noisettes[$cle]['parametres'][$param];\r
+ unset($noisettes[$cle]['parametres'][$param]);\r
+ }\r
+ if ($param == 'exclure_article_en_cours') {\r
+ $noisettes[$cle]['parametres']['exclure_objet_en_cours'] = $noisettes[$cle]['parametres'][$param];\r
+ unset($noisettes[$cle]['parametres'][$param]);\r
+ }\r
+ if ($param == 'pas_selecteur_archives' and $valeur == 'annee_mois')\r
+ $noisettes[$cle]['parametres'][$param] = 'mois';\r
+ if ($param == 'liste_breves') {\r
+ $noisettes[$cle]['parametres']['branche'] = $noisettes[$cle]['parametres'][$param];\r
+ unset($noisettes[$cle]['parametres'][$param]);\r
+ }\r
+ if ($param == 'exclure_breve_en_cours') {\r
+ $noisettes[$cle]['parametres']['exclure_objet_en_cours'] = $noisettes[$cle]['parametres'][$param];\r
+ unset($noisettes[$cle]['parametres'][$param]);\r
+ }\r
+ }\r
+ }\r
+ if(in_array($noisette['noisette'],array('page-recherche-articles','page-recherche-auteurs','page-recherche-rubriques','page-recherche-breves'))){\r
+ $noisettes[$cle]['parametres']['tri'] = 'points';\r
+ $noisettes[$cle]['parametres']['senstri'] = 'inverse';\r
+ }\r
+ if(in_array($noisette['noisette'],array(\r
+ 'liste_documents',\r
+ 'article-documents',\r
+ 'rubrique-documents',\r
+ 'page-recherche-documents'\r
+ ))){\r
+ foreach($noisette['parametres'] as $param => $valeur) {\r
+ if ($param == 'senstri' and intval($valeur) == 0)\r
+ $noisettes[$cle]['parametres'][$param] = '';\r
+ if ($param == 'senstri' and intval($valeur) == 1)\r
+ $noisettes[$cle]['parametres'][$param] = 'inverse';\r
+ }\r
+ }\r
+ }\r
+ }\r
+ if (version_compare($current_version,'0.3.3','<')){\r
+ foreach ($noisettes as $cle => $noisette) {\r
+ if(in_array($noisette['noisette'],array(\r
+ 'liste_documents',\r
+ 'article-documents',\r
+ 'rubrique-documents',\r
+ 'page-recherche-documents'\r
+ ))){\r
+ foreach($noisette['parametres'] as $param => $valeur) {\r
+ if ($param == 'tri' and $valeur == 'multi titre')\r
+ $noisettes[$cle]['parametres'][$param] = 'titre';\r
+ }\r
+ }\r
+ }\r
+ }\r
+ if (version_compare($current_version,'0.3.4','<')){\r
+ foreach ($noisettes as $cle => $noisette) {\r
+ if(in_array($noisette['noisette'],array(\r
+ 'auteur-articles',\r
+ 'liste_articles',\r
+ 'mot-articles',\r
+ 'page-recherche-articles',\r
+ 'liste_breves',\r
+ 'mot-breves',\r
+ 'page-recherche-breves',\r
+ 'liste_auteurs',\r
+ 'page-recherche-auteurs',\r
+ 'rubrique-sous_rubriques',\r
+ 'rubriques_secteur_langue',\r
+ 'rubriques_racine',\r
+ 'page-recherche-rubriques',\r
+ 'liste_forums',\r
+ 'mot-forums',\r
+ 'selecteur_archives'\r
+ ))){\r
+ foreach($noisette['parametres'] as $param => $valeur) {\r
+ if ($param == 'tri' and $valeur == 'num titre')\r
+ $noisettes[$cle]['parametres'][$param] = 'titre';\r
+ }\r
+ }\r
+ }\r
+ }\r
+ if (version_compare($current_version,'0.3.5','<')){\r
+ foreach ($noisettes as $cle => $noisette) {\r
+ if(in_array($noisette['noisette'],array(\r
+ 'liste_sites',\r
+ 'mot-sites',\r
+ 'page-recherche-sites',\r
+ 'liste_syndic_articles',\r
+ 'site-syndic_articles',\r
+ 'page-recherche-syndic_articles'\r
+ ))){\r
+ foreach($noisette['parametres'] as $param => $valeur) {\r
+ if ($param == 'liste_sites') {\r
+ $noisettes[$cle]['parametres']['branche'] = $noisettes[$cle]['parametres'][$param];\r
+ unset($noisettes[$cle]['parametres'][$param]);\r
+ }\r
+ if ($param == 'exclure_site_en_cours') {\r
+ $noisettes[$cle]['parametres']['exclure_objet_en_cours'] = $noisettes[$cle]['parametres'][$param];\r
+ unset($noisettes[$cle]['parametres'][$param]);\r
+ }\r
+ if ($param == 'liste_syndic_articles') {\r
+ $noisettes[$cle]['parametres']['branche'] = $noisettes[$cle]['parametres'][$param];\r
+ unset($noisettes[$cle]['parametres'][$param]);\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ if (version_compare($current_version,'0.3.6','<')){\r
+ foreach ($noisettes as $cle => $noisette)\r
+ $noisettes[$cle]['parametres'] = str_replace('aveline_public:','avelinepublic:',$noisettes[$cle]['parametres']);\r
+ }\r
+ if (version_compare($current_version,'0.3.7')==0){\r
+ // Réparation d'une boulette qui ne concerne que la version 0.3.7\r
+ foreach ($noisettes as $cle => $noisette) {\r
+ $noisettes[$cle]['parametres'] = str_replace('avelinepublic:colon2','::',$noisettes[$cle]['parametres']);\r
+ $noisettes[$cle]['parametres'] = str_replace('avelinepublic:gt','>',$noisettes[$cle]['parametres']);\r
+ }\r
+ }\r
+ if (version_compare($current_version,'0.3.8','<')){\r
+ foreach ($noisettes as $cle => $noisette) {\r
+ foreach($noisette['parametres'] as $param => $valeur) {\r
+ if (in_array($param,array(\r
+ 'texte_devant_mots_cles',\r
+ 'liste_texte_devant_mots_cles',\r
+ 'texte_devant_rubrique',\r
+ 'liste_texte_devant_rubrique',\r
+ 'texte_devant_article',\r
+ 'liste_texte_devant_article'\r
+ ))) {\r
+ if ($valeur=='::')\r
+ $noisettes[$cle]['parametres'][$param] = 'avelinepublic:colon2';\r
+ if ($valeur=='>')\r
+ $noisettes[$cle]['parametres'][$param] = 'avelinepublic:gt';\r
+ }\r
+ }\r
+ }\r
+ }\r
+ return $noisettes;\r
+}\r
+\r
+?>\r