Skip to content
Extraits de code Groupes Projets
blocks_administrations.php 1,97 Kio
<?php
/**
 * Fichier gérant l'installation et désinstallation du plugin Blocks
 *
 * @plugin     Blocks
 * @copyright  2023
 * @author     nicod_
 * @licence    GNU/GPL
 * @package    SPIP\Blocks\Installation
 */

if (!defined('_ECRIRE_INC_VERSION')) {
	return;
}

/**
 * Fonction d'installation et de mise à jour du plugin Blocks.
 *
 * @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 blocks_upgrade($nom_meta_base_version, $version_cible) {
	$maj = [];

	$maj['create'] = [
		['maj_tables', ['spip_blocs', 'spip_blocs_types']],
		['blocks_installe_config'],
	];

	include_spip('base/upgrade');
	maj_plugin($nom_meta_base_version, $version_cible, $maj);
}

/**
 * Fonction de désinstallation du plugin Blocks.
 *
 * @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 blocks_vider_tables($nom_meta_base_version) {

	sql_drop_table('spip_blocs');
	sql_drop_table('spip_blocs_types');

	# Nettoyer les liens courants (le génie optimiser_base_disparus se chargera de nettoyer toutes les tables de liens)
	sql_delete('spip_documents_liens', sql_in('objet', ['bloc', 'blocs_type']));
	sql_delete('spip_mots_liens', sql_in('objet', ['bloc', 'blocs_type']));
	sql_delete('spip_auteurs_liens', sql_in('objet', ['bloc', 'blocs_type']));
	# Nettoyer les versionnages et forums
	sql_delete('spip_versions', sql_in('objet', ['bloc', 'blocs_type']));
	sql_delete('spip_versions_fragments', sql_in('objet', ['bloc', 'blocs_type']));
	sql_delete('spip_forum', sql_in('objet', ['bloc', 'blocs_type']));

	effacer_meta($nom_meta_base_version);
}

function blocks_installe_config() {
	ecrire_config('blocks/objets',
		[
			0 => 'spip_articles',
			2 => 'spip_rubriques',
		],
	);
}