File "tri_par_rubrique_administrations.php"
Full path: /home/argothem/www/organecyberpresse/plugins/auto/tri_par_rubrique/v1.7.3/tri_par_rubrique_administrations.php
File size: 4.15 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Fichier gérant l'installation et désinstallation du plugin Tri des articles par rubrique
*
* @plugin Tri des articles par rubrique
* @copyright 2019
* @author nicod_
* @licence GNU/GPL
* @package SPIP\Tri_par_rubrique\Installation
*/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Declaration des champs dans la table spip_rubriques
*
* @param array $tables_principales
*
* @return array
*/
function tri_par_rubrique_declarer_tables_principales($tables_principales) {
$tables_principales['spip_rubriques']['field']['trirub_articles'] = 'varchar(20) DEFAULT "date" NOT NULL DEFAULT ""';
$tables_principales['spip_rubriques']['field']['trirub_articles_inverse'] = 'tinyint(1) DEFAULT 1 NOT NULL DEFAULT 0';
return $tables_principales;
}
/**
* Declaration des champs éditables et versionnables de la table spip_rubriques
*
* @param array $tables
*
* @return array
*/
function tri_par_rubrique_declarer_tables_objets_sql($tables) {
$tables['spip_rubriques']['champs_editables'][] = 'trirub_articles';
$tables['spip_rubriques']['champs_editables'][] = 'trirub_articles_inverse';
$tables['spip_rubriques']['champs_versionnes'][] = 'trirub_articles';
$tables['spip_rubriques']['champs_versionnes'][] = 'trirub_articles_inverse';
return $tables;
}
/**
* Fonction d'installation et de mise à jour du plugin Tri des articles par rubrique.
*
* @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)
*
**/
function tri_par_rubrique_upgrade($nom_meta_base_version, $version_cible) {
$maj = [];
// Configuration par défaut à la première activation du plugin
$defaut_config = [
'trirub_articles' => 'num titre',
'trirub_articles_inverse' => 0,
];
$maj['create'] = [['maj_tables', ['spip_rubriques']], ['ecrire_config', 'tri_par_rubrique', $defaut_config]];
// On ajoute la configuration par défaut du plugin
$maj['2.0.0'] = [['maj200_tri_par_rubrique', $defaut_config]];
// On modifie les valeurs par défaut des champs
$maj['2.1.0'] = [['maj210_tri_par_rubrique', $defaut_config]];
include_spip('base/upgrade');
maj_plugin($nom_meta_base_version, $version_cible, $maj);
}
/**
* Fonction de désinstallation du plugin Tri des articles par rubrique.
*
* @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
*
**/
function tri_par_rubrique_vider_tables($nom_meta_base_version) {
include_spip('inc/meta');
include_spip('base/abstract_sql');
sql_alter('TABLE spip_rubriques DROP trirub_articles');
sql_alter('TABLE spip_rubriques DROP trirub_articles_inverse');
effacer_config('tri_par_rubrique');
effacer_meta($nom_meta_base_version);
}
/**
* Migration du schéma 1.0.0 au 2.0.0.
*
* On ajoute la configuration par défaut du plugin si une configuration n'existe pas déjà.
*
* @param array $defaut_config Configuration par défaut du plugin.
*/
function maj200_tri_par_rubrique($defaut_config) {
// On initialise la configuration ajoutée avec celle par défaut
include_spip('inc/config');
$config = lire_config('tri_par_rubrique', []);
// Mise à jour de la configuration par défaut si il n'y a pas de configuration existante et suppression de la
// variable tri global devenue inutile.
if (!isset($config['trirub_articles'])) {
$config['trirub_articles'] = $defaut_config['trirub_articles'];
}
if (!isset($config['trirub_articles_inverse'])) {
$config['trirub_articles_inverse'] = $defaut_config['trirub_articles_inverse'];
}
if (isset($config['appliquer_tri_global'])) {
unset($config['appliquer_tri_global']);
}
ecrire_config('tri_par_rubrique', $config);
}
/**
* Migration du schéma 2.0.0 au 2.1.0.
*
* On modifie les valeurs par défaut des champs (null)
*/
function maj210_tri_par_rubrique() {
sql_alter('TABLE spip_rubriques CHANGE trirub_articles trirub_articles varchar(20) NOT NULL DEFAULT ""');
sql_alter('TABLE spip_rubriques CHANGE trirub_articles_inverse trirub_articles_inverse tinyint(1) NOT NULL DEFAULT 0');
}