[PLUGINS] ~maj globale
[lhc/web/www.git] / www / plugins / seo-dev / seo_administrations.php
diff --git a/www/plugins/seo-dev/seo_administrations.php b/www/plugins/seo-dev/seo_administrations.php
new file mode 100644 (file)
index 0000000..9851f98
--- /dev/null
@@ -0,0 +1,70 @@
+<?php
+
+// Sécurité
+if (!defined('_ECRIRE_INC_VERSION')) {
+       return;
+}
+
+include_spip('inc/meta');
+include_spip('base/abstract_sql');
+
+// Installation et mise à jour
+function seo_upgrade($nom_meta_version_base, $version_cible) {
+
+       $version_actuelle = '0.0';
+       if ((!isset($GLOBALS['meta'][$nom_meta_version_base]))
+               || (($version_actuelle = $GLOBALS['meta'][$nom_meta_version_base])!=$version_cible)
+       ) {
+               /* Installation normale */
+               if (version_compare($version_actuelle, '0.0', '=')) {
+                       // Création des tables
+                       include_spip('base/create');
+                       creer_base();
+
+                       /**
+                        * La config de base active insert_head
+                        * (les utilisateurs n'ont pas à modifier leurs squelettes et à penser à l'activer)
+                        */
+                       $config_base = array();
+                       $config_base['insert_head']['activate'] = 'yes';
+                       ecrire_meta('seo', serialize($config_base), 'non');
+
+                       ecrire_meta($nom_meta_version_base, $version_actuelle = $version_cible, 'non');
+               }
+               /* Gestion des anciennes tables, la numérotation base était de 1.0 */
+               if (version_compare($version_actuelle, '1.0', '<=')) {
+                       include_spip('base/create');
+
+                       // On change le nom de la table initialement mal choisi
+                       $prefixe = $GLOBALS['table_prefix'];
+                       sql_query("RENAME TABLE seo_meta_tags TO $prefixe" . '_seo');
+                       ecrire_meta($nom_meta_version_base, $version_actuelle = $version_cible, 'non');
+               }
+               if (version_compare($version_actuelle, '1.1.0', '<')) {
+                       sql_alter('TABLE spip_seo DROP PRIMARY KEY');
+                       sql_alter('TABLE spip_seo CHANGE type_object objet varchar(10) NOT NULL');
+                       sql_alter('TABLE spip_seo CHANGE id_object id_objet int(11) NOT NULL');
+                       sql_alter('TABLE spip_seo ADD PRIMARY KEY ( `id_objet` , `objet` , `meta_name` )');
+                       ecrire_meta($nom_meta_version_base, $version_actuelle = $version_cible, 'non');
+               }
+               if (version_compare($version_actuelle, '1.1.1', '<')) {
+                       if (defined('_SEO_FORCER_SQUELETTE')) {
+                               ecrire_config('seo/forcer_squelette', 'yes');
+                       }
+                       ecrire_meta($nom_meta_version_base, $version_actuelle = $version_cible, 'non');
+               }
+       }
+}
+
+// Désinstallation
+function seo_vider_tables($nom_meta_version_base) {
+
+       // On efface la table du plugin
+       sql_drop_table('spip_seo');
+
+       // On efface la méta de configuration
+       effacer_meta('seo');
+
+       // On efface la version entregistrée
+       effacer_meta($nom_meta_version_base);
+}