Désactivation intempestive de Plugins #3383

Closed
opened 8 years ago by miros · 2 comments
miros commented 8 years ago

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";
}

?>

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"; } ?>
Owner

Version cible mise à 3.1

**Version cible mise à 3.1**
Owner

Non reproductible
Statut changé à Fermé

Non reproductible **Statut changé à Fermé**
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.