3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2019 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
14 * Gestion de l'action desinstaller_plugin
16 * @package SPIP\Core\Plugins
19 if (!defined('_ECRIRE_INC_VERSION')) {
24 * Action de désinstallation d'un plugin
26 * L'argument attendu est le préfixe du plugin à désinstaller.
28 * @uses plugins_installer_dist()
30 * @global array visiteur_session
33 function action_desinstaller_plugin_dist() {
35 $securiser_action = charger_fonction('securiser_action', 'inc');
36 $arg = $securiser_action();
37 list($dir_plugins, $plugin) = explode("::", $arg);
38 $dir_type = "_DIR_PLUGINS";
39 if (defined('_DIR_PLUGINS_SUPPL') and $dir_plugins == _DIR_PLUGINS_SUPPL
) {
40 $dir_type = "_DIR_PLUGINS_SUPPL";
42 $installer_plugins = charger_fonction('installer', 'plugins');
43 $infos = $installer_plugins($plugin, 'uninstall', $dir_type);
44 if ($infos and !$infos['install_test'][0]) {
45 include_spip('inc/plugin');
46 ecrire_plugin_actifs(array($plugin), false, 'enleve');
49 $erreur = 'erreur_plugin_desinstalation_echouee';
51 if ($redirect = _request('redirect')) {
52 include_spip('inc/headers');
54 $redirect = parametre_url($redirect, 'erreur', $erreur);
56 $redirect = str_replace('&', '&', $redirect);
57 redirige_par_entete($redirect);