Désactivation intempestive de Plugins
Réinitialisation de $GLOBALS[’meta’][’plugin’] intempestive.
Rustine php intégrée au rafraichissement de la page d'accueil.
Architecture de type SPROXY ==> aliasing https sur SPROXY ==> serveur SPIP http.
Adresse IP de connexion au serveur SPIP unique.
Code source:
function deltree($dossier){
if((dir=opendir(
dossier))===false)
return;
while(name=readdir(
dir)){
if($name==='.' or $name==='..')
continue;
full_name=
dossier.'/'.$name;
if(is_dir($full_name))
deltree($full_name);
else unlink($full_name);
}
closedir($dir);
}
plugins_actifs= unserialize(
GLOBALS['meta']['plugin']);
//print_r(unserialize($GLOBALS['meta']['plugin']));
if(!isset($plugins_actifs['YAML'])){
// le plugin n'est pas actif
// on vide le dossier
deltree('./tmp/');
$modeDebug=false;
$activer=array("yaml","spip_bonux","ciautoriser","querypath","pb_selection","polyhier", "pages", "notation", "verifier", "saisies", "facteur", "formidable", "cextras", "motus", "exclure_sect", "pb_couleur_rubrique", "citrace", "cirr", "va");
//if (!is_dir('ecrire/') AND is_dir('../ecrire/')) chdir('../');
//chdir('ecrire/');
if (!defined('_DIR_RESTREINT_ABS')) define('_DIR_RESTREINT_ABS', '');
include_once _DIR_RESTREINT_ABS.'inc_version.php';
if($modeDebug==true) echo "<br>Plugins actifs : \n".implode(", ",array_map('strtolower',array_keys($plugins_actifs)))."<br>";
$activer = array_map('strtolower',$activer);
// enlever les plugins deja actifs (donc y compris les extensions)
foreach($activer as $k=>$prefixe){
$prefixeup = strtoupper($prefixe);
if (isset($plugins_actifs[$prefixeup])){
if($modeDebug==true) echo "<br>Plugin $prefixe deja actif\n";
unset($activer[$k]);
}
}
// chercher dans les plugins dispo
include_spip('inc/plugin');
$plugins = liste_plugin_files();
$get_infos = charger_fonction('get_infos','plugins');
$dirs_add = array();
foreach($plugins as $dir){
$infos = $get_infos($dir);
$prefix = strtolower($infos['prefix']);
if (in_array($prefix,$activer)){
$dirs_add[] = $dir;
if($modeDebug==true) echo "<br> ---> Activer plugin ".$prefix." (repertoire $dir)\n";
$activer = array_diff($activer, array($prefix));
if (!count($activer))
break;
}
}
if (count($dirs_add)){
ecrire_plugin_actifs($dirs_add,false,'ajoute');
$plugins_actifs = unserialize($GLOBALS['meta']['plugin']);
if($modeDebug==true) echo "<br><br>\nPlugins actifs : \n".implode(", ",array_map('strtolower',array_keys($plugins_actifs)));
}
// reload la page
//$actual_link = 'https://'."{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
//header('Location: '.$actual_link);
} else { // echo "plugins activés"; }
?>