You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

85 lines
2.4 KiB

<?php
/**
* Fichier gérant l'installation et la désinstallation du plugin
*
* @package SPIP\ISOCODE\ADMINISTRATION
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Fonction d'installation et de mise à jour du plugin.
* Le schéma du plugin est composé des tables `spip_iso639xxxx` et d'une configuration.
*
* @param string $nom_meta_base_version
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
* @param string $version_cible
* Version du schéma de données (déclaré dans paquet.xml)
*
* @return void
**/
function isocode_upgrade($nom_meta_base_version, $version_cible) {
$maj = array();
// Liste des tables créées par le plugin
include_spip('inc/isocode');
$tables = array();
foreach (isocode_lister_types_service() as $_type) {
foreach (isocode_lister_tables($_type) as $_table) {
$tables[] = "spip_${_table}";
}
}
$maj['create'] = array(
array(
'maj_tables',
$tables
),
);
$maj['2'] = array(
array(
'maj_tables',
array('spip_infrasubdivisions')
),
array('sql_alter', "TABLE spip_iso3166alternates CHANGE code_iso code_iso varchar(20) DEFAULT '' NOT NULL"),
array('sql_alter', "TABLE spip_iso3166alternates CHANGE code_alter code_alter varchar(20) DEFAULT '' NOT NULL"),
);
$maj['3'] = array(
array('sql_alter', 'TABLE spip_m49regions ADD COLUMN depth int DEFAULT 0 NOT NULL AFTER parent'),
array('sql_alter', 'TABLE spip_iso3166subdivisions ADD COLUMN depth int DEFAULT 0 NOT NULL AFTER parent'),
array('sql_alter', 'TABLE spip_infrasubdivisions ADD COLUMN depth int DEFAULT 0 NOT NULL AFTER parent'),
);
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);
}
/**
* Fonction de désinstallation du plugin.
*
* @param string $nom_meta_base_version
* Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP.
*
* @return void
**/
function isocode_vider_tables($nom_meta_base_version) {
// Supprimer les tables ISO créées par le plugin
include_spip('inc/isocode');
foreach (isocode_lister_types_service() as $_type) {
foreach (isocode_lister_tables($_type) as $_table) {
sql_drop_table("spip_${_table}");
}
}
// Effacer la meta de configuration et de stockage du plugin
effacer_meta('isocode');
// Effacer la meta du schéma de la base
effacer_meta($nom_meta_base_version);
}