[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / aveline / base / aveline_installation.php
diff --git a/www/plugins/auto/aveline/base/aveline_installation.php b/www/plugins/auto/aveline/base/aveline_installation.php
new file mode 100644 (file)
index 0000000..a8796f3
--- /dev/null
@@ -0,0 +1,233 @@
+<?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