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');

}