59 lines
1.9 KiB
PHP
59 lines
1.9 KiB
PHP
<?php
|
|
|
|
/***************************************************************************\
|
|
* SPIP, Systeme de publication pour l'internet *
|
|
* *
|
|
* Copyright (c) 2001-2019 *
|
|
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
|
|
* *
|
|
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
|
|
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
|
|
\***************************************************************************/
|
|
|
|
/**
|
|
* Gestion de l'action desinstaller_plugin
|
|
*
|
|
* @package SPIP\Core\Plugins
|
|
*/
|
|
|
|
if (!defined('_ECRIRE_INC_VERSION')) {
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* Action de désinstallation d'un plugin
|
|
*
|
|
* L'argument attendu est le préfixe du plugin à désinstaller.
|
|
*
|
|
* @uses plugins_installer_dist()
|
|
*
|
|
* @global array visiteur_session
|
|
* @return void
|
|
*/
|
|
function action_desinstaller_plugin_dist() {
|
|
|
|
$securiser_action = charger_fonction('securiser_action', 'inc');
|
|
$arg = $securiser_action();
|
|
list($dir_plugins, $plugin) = explode("::", $arg);
|
|
$dir_type = "_DIR_PLUGINS";
|
|
if (defined('_DIR_PLUGINS_SUPPL') and $dir_plugins == _DIR_PLUGINS_SUPPL) {
|
|
$dir_type = "_DIR_PLUGINS_SUPPL";
|
|
}
|
|
$installer_plugins = charger_fonction('installer', 'plugins');
|
|
$infos = $installer_plugins($plugin, 'uninstall', $dir_type);
|
|
if ($infos and !$infos['install_test'][0]) {
|
|
include_spip('inc/plugin');
|
|
ecrire_plugin_actifs(array($plugin), false, 'enleve');
|
|
$erreur = '';
|
|
} else {
|
|
$erreur = 'erreur_plugin_desinstalation_echouee';
|
|
}
|
|
if ($redirect = _request('redirect')) {
|
|
include_spip('inc/headers');
|
|
if ($erreur) {
|
|
$redirect = parametre_url($redirect, 'erreur', $erreur);
|
|
}
|
|
$redirect = str_replace('&', '&', $redirect);
|
|
redirige_par_entete($redirect);
|
|
}
|
|
}
|