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.

86 lines
2.4 KiB

<?php
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Fonction d'installation et de mise à jour du plugin Duplicator.
*
* @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 dans ce plugin (déclaré dans paquet.xml)
* @return void
**/
function duplicator_upgrade($nom_meta_base_version, $version_cible) {
$maj = array();
// Rien à faire à l'installation
$maj['create'] = array();
// Pour les anciens qui migrent, on déplace la config
$maj['1.0.0'] = array(
array('duplicator_maj_1_0_0'),
);
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);
}
/**
* Fonction de désinstallation du plugin Chapitres.
*
* @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 duplicator_vider_tables($nom_meta_base_version) {
// Effacer la config
effacer_meta('duplicator');
effacer_meta($nom_meta_base_version);
}
/**
* On déplace la config tant que faire se peut
*/
function duplicator_maj_1_0_0() {
include_spip('inc/config');
$config = lire_config('duplicator/config');
$nouvelle_config = array();
// Config des objets
if (isset($config['duplic_rubrique']) and $config['duplic_rubrique'] == 'oui') {
$nouvelle_config['objets'][] = 'spip_rubriques';
}
if (isset($config['duplic_article']) and $config['duplic_article'] == 'oui') {
$nouvelle_config['objets'][] = 'spip_articles';
}
// Config des champs
if (isset($config['rub_champs']) and $champs = $config['rub_champs']) {
$champs = explode(',', $champs);
$champs = array_map('trim', $champs);
$nouvelle_config['rubrique']['champs'] = $champs;
}
if (isset($config['art_champs']) and $champs = $config['art_champs']) {
$champs = explode(',', $champs);
$champs = array_map('trim', $champs);
$nouvelle_config['article']['champs'] = $champs;
}
// Config des autorisations : non on prend par défaut plutôt, qui n'existait pas avant, donc ça on ne le migre pas
// Config du statut
if (isset($config['duplic_article_etat_pub']) and $config['duplic_article_etat_pub'] == 'oui') {
$nouvelle_config['article']['statut'] = '';
}
else {
$nouvelle_config['article']['statut'] = 'prepa';
}
// Et on enregistre
ecrire_config('duplicator', $nouvelle_config);
}