[PLUGINS] ~maj globale
[lhc/web/www.git] / www / plugins / seo-dev / seo_administrations.php
1 <?php
2
3 // Sécurité
4 if (!defined('_ECRIRE_INC_VERSION')) {
5 return;
6 }
7
8 include_spip('inc/meta');
9 include_spip('base/abstract_sql');
10
11 // Installation et mise à jour
12 function seo_upgrade($nom_meta_version_base, $version_cible) {
13
14 $version_actuelle = '0.0';
15 if ((!isset($GLOBALS['meta'][$nom_meta_version_base]))
16 || (($version_actuelle = $GLOBALS['meta'][$nom_meta_version_base])!=$version_cible)
17 ) {
18 /* Installation normale */
19 if (version_compare($version_actuelle, '0.0', '=')) {
20 // Création des tables
21 include_spip('base/create');
22 creer_base();
23
24 /**
25 * La config de base active insert_head
26 * (les utilisateurs n'ont pas à modifier leurs squelettes et à penser à l'activer)
27 */
28 $config_base = array();
29 $config_base['insert_head']['activate'] = 'yes';
30 ecrire_meta('seo', serialize($config_base), 'non');
31
32 ecrire_meta($nom_meta_version_base, $version_actuelle = $version_cible, 'non');
33 }
34 /* Gestion des anciennes tables, la numérotation base était de 1.0 */
35 if (version_compare($version_actuelle, '1.0', '<=')) {
36 include_spip('base/create');
37
38 // On change le nom de la table initialement mal choisi
39 $prefixe = $GLOBALS['table_prefix'];
40 sql_query("RENAME TABLE seo_meta_tags TO $prefixe" . '_seo');
41 ecrire_meta($nom_meta_version_base, $version_actuelle = $version_cible, 'non');
42 }
43 if (version_compare($version_actuelle, '1.1.0', '<')) {
44 sql_alter('TABLE spip_seo DROP PRIMARY KEY');
45 sql_alter('TABLE spip_seo CHANGE type_object objet varchar(10) NOT NULL');
46 sql_alter('TABLE spip_seo CHANGE id_object id_objet int(11) NOT NULL');
47 sql_alter('TABLE spip_seo ADD PRIMARY KEY ( `id_objet` , `objet` , `meta_name` )');
48 ecrire_meta($nom_meta_version_base, $version_actuelle = $version_cible, 'non');
49 }
50 if (version_compare($version_actuelle, '1.1.1', '<')) {
51 if (defined('_SEO_FORCER_SQUELETTE')) {
52 ecrire_config('seo/forcer_squelette', 'yes');
53 }
54 ecrire_meta($nom_meta_version_base, $version_actuelle = $version_cible, 'non');
55 }
56 }
57 }
58
59 // Désinstallation
60 function seo_vider_tables($nom_meta_version_base) {
61
62 // On efface la table du plugin
63 sql_drop_table('spip_seo');
64
65 // On efface la méta de configuration
66 effacer_meta('seo');
67
68 // On efface la version entregistrée
69 effacer_meta($nom_meta_version_base);
70 }