[SPIP Zone] r3947 - /_plugins_/_ze_laboratoire_/plugins/exec/admin_plugin.php

Author: cedric@yterium.com
Date: Wed Jul 12 11:46:33 2006
New Revision: 3947

Log:
voila la racine est bien prise en compte aussi

Modified:
    _plugins_/_ze_laboratoire_/plugins/exec/admin_plugin.php

Modified: _plugins_/_ze_laboratoire_/plugins/exec/admin_plugin.php

--- _plugins_/_ze_laboratoire_/plugins/exec/admin_plugin.php (original)
+++ _plugins_/_ze_laboratoire_/plugins/exec/admin_plugin.php Wed Jul 12 11:46:33 2006
@@ -162,7 +162,9 @@
     $output .= fin_block();
     $output .= "</ul></li>\n";
   }
- $chemin = implode("/",$tcom)."/";
+ $chemin = "";
+ if (count($tcom))
+ $chemin .= implode("/",$tcom)."/";
   // ouvrir les repertoires jusqu'a la cible
   while($open = array_shift($ttarg)){
     $chemin .= $open . "/";
@@ -177,25 +179,36 @@
}

function affiche_arbre_plugins($liste_plugins,$liste_plugins_actifs){
+ $racine = basename(_DIR_PLUGINS);
   $init_dir = $current_dir = "";
   // liste des repertoires deplies : construit en remontant l'arbo de chaque plugin actif
   $deplie = array();
- foreach($liste_plugins_actifs as $plug){
- $dir = dirname($plug);$maxiter=100;
- while(strlen($dir) && $dir!='.' && $maxiter-->0){
+ foreach($liste_plugins_actifs as $key=>$plug){
+ $liste_plugins_actifs[$key] = "$racine/$plug";
+ $dir = dirname("$racine/$plug");$maxiter=100;
       $deplie[] = $dir;
+ while(strlen($dir) && $dir!='.' && $maxiter-->0){
       $dir = dirname($dir);
+ $deplie[] = $dir;
     }
   }
   
   // index repertoires --> plugin
   $dir_index=array();
   foreach($liste_plugins as $key=>$plug){
- $dir_index[dirname($plug)][] = $key;
+ $liste_plugins[$key] = "$racine/$plug";
+ $dir_index[dirname("$racine/$plug")][] = $key;
   }
   
   $visible = @in_array($current_dir,$deplie);
- while (count($liste_plugins)){
+ $maxiter=1000;
+ while (count($liste_plugins) && $maxiter--){
+ // le rep suivant
+ $dir = dirname(reset($liste_plugins));
+ $visible = @in_array($dir,$deplie);
+ if ($dir != $current_dir)
+ echo tree_open_close_dir($current_dir,$dir,$visible);
+
     // d'abord tous les plugins du rep courant
     if (isset($dir_index[$current_dir]))
       foreach($dir_index[$current_dir] as $key){
@@ -203,15 +216,10 @@
         $actif = @in_array($plug,$liste_plugins_actifs);
         $id = substr(md5($plug),0,16);
         echo "<li>";
- echo ligne_plug($plug, $actif, $id);
+ echo ligne_plug(substr($plug,strlen($racine)+1), $actif, $id);
         echo "</li>\n";
         unset($liste_plugins[$key]);
       }
- // le rep suivant
- $dir = dirname(reset($liste_plugins));
- $visible = @in_array($dir,$deplie);
- if ($dir != $current_dir)
- echo tree_open_close_dir($current_dir,$dir,$visible);
   }
   echo tree_open_close_dir($current_dir,$init_dir);
}