[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / ecrire / plugins / afficher_repertoires.php
index af14268..d232e5c 100644 (file)
@@ -3,62 +3,68 @@
 /***************************************************************************\
  *  SPIP, Systeme de publication pour l'internet                           *
  *                                                                         *
- *  Copyright (c) 2001-2016                                                *
+ *  Copyright (c) 2001-2017                                                *
  *  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.   *
 \***************************************************************************/
 
-if (!defined('_ECRIRE_INC_VERSION')) return;
+if (!defined('_ECRIRE_INC_VERSION')) {
+       return;
+}
 
-// http://doc.spip.org/@affiche_arbre_plugins
-function plugins_afficher_repertoires_dist($url_page, $liste_plugins, $liste_plugins_actifs){
-       $ligne_plug = charger_fonction('afficher_plugin','plugins');
+// http://code.spip.net/@affiche_arbre_plugins
+function plugins_afficher_repertoires_dist($url_page, $liste_plugins, $liste_plugins_actifs) {
+       $ligne_plug = charger_fonction('afficher_plugin', 'plugins');
        $racine = basename(_DIR_PLUGINS);
        $init_dir = $current_dir = "";
        // liste des repertoires deplies : construit en remontant l'arbo de chaque plugin actif
        // des qu'un path est deja note deplie on s'arrete
-       $deplie = array($racine=>true);
-       $fast_liste_plugins_actifs=array();
-       foreach($liste_plugins_actifs as $key=>$plug){
+       $deplie = array($racine => true);
+       $fast_liste_plugins_actifs = array();
+       foreach ($liste_plugins_actifs as $key => $plug) {
                $chemin_plug = chemin_plug($racine, $plug);
-               $fast_liste_plugins_actifs[$chemin_plug]=true;
-               $dir = dirname($chemin_plug);$maxiter=100;
-               while(strlen($dir) && !isset($deplie[$dir]) && $dir!=$racine && $maxiter-->0){
+               $fast_liste_plugins_actifs[$chemin_plug] = true;
+               $dir = dirname($chemin_plug);
+               $maxiter = 100;
+               while (strlen($dir) && !isset($deplie[$dir]) && $dir != $racine && $maxiter-- > 0) {
                        $deplie[$dir] = true;
                        $dir = dirname($dir);
                }
        }
 
        // index repertoires --> plugin
-       $dir_index=array();
-       foreach($liste_plugins as $key=>$plug){
+       $dir_index = array();
+       foreach ($liste_plugins as $key => $plug) {
                $liste_plugins[$key] = chemin_plug($racine, $plug);
                $dir_index[dirname($liste_plugins[$key])][] = $key;
        }
 
        $visible = @isset($deplie[$current_dir]);
-       $maxiter=1000;
+       $maxiter = 1000;
 
        $res = '';
-       while (count($liste_plugins) && $maxiter--){
+       while (count($liste_plugins) && $maxiter--) {
                // le rep suivant
                $dir = dirname(reset($liste_plugins));
-               if ($dir != $current_dir)
-                       $res .= tree_open_close_dir($current_dir,$dir,$deplie);
+               if ($dir != $current_dir) {
+                       $res .= tree_open_close_dir($current_dir, $dir, $deplie);
+               }
 
                // d'abord tous les plugins du rep courant
-               if (isset($dir_index[$current_dir]))
-                       foreach($dir_index[$current_dir] as $key){
+               if (isset($dir_index[$current_dir])) {
+                       foreach ($dir_index[$current_dir] as $key) {
                                $plug = $liste_plugins[$key];
                                $actif = @isset($fast_liste_plugins_actifs[$plug]);
-                               $id = substr(md5($plug),0,16);
-                               $res .= $ligne_plug($url_page, str_replace(_DIR_PLUGINS, '', _DIR_RACINE.$plug), $actif, 'menu-entree') . "\n";
+                               $id = substr(md5($plug), 0, 16);
+                               $res .= $ligne_plug($url_page, str_replace(_DIR_PLUGINS, '', _DIR_RACINE . $plug), $actif,
+                                               'menu-entree') . "\n";
                                unset($liste_plugins[$key]);
                        }
+               }
        }
-       $res .= tree_open_close_dir($current_dir,$init_dir, true);
+       $res .= tree_open_close_dir($current_dir, $init_dir, true);
 
        return "<ul class='menu-liste plugins'>"
        . $res
@@ -68,44 +74,46 @@ function plugins_afficher_repertoires_dist($url_page, $liste_plugins, $liste_plu
 
 // vraiment n'importe quoi la gestion des chemins des plugins
 // une fonction pour aider...
-// http://doc.spip.org/@chemin_plug
+// http://code.spip.net/@chemin_plug
 function chemin_plug($racine, $plug) {
        return preg_replace(',[^/]+/\.\./,', '', "$racine/$plug");
 }
 
-// http://doc.spip.org/@tree_open_close_dir
-function tree_open_close_dir(&$current,$target,$deplie=array()){
-       if ($current == $target) return "";
-       $tcur = explode("/",$current);
-       $ttarg = explode("/",$target);
+// http://code.spip.net/@tree_open_close_dir
+function tree_open_close_dir(&$current, $target, $deplie = array()) {
+       if ($current == $target) {
+               return "";
+       }
+       $tcur = explode("/", $current);
+       $ttarg = explode("/", $target);
        $tcom = array();
        $output = "";
        // la partie commune
-       while (reset($tcur)==reset($ttarg)){
+       while (reset($tcur) == reset($ttarg)) {
                $tcom[] = array_shift($tcur);
                array_shift($ttarg);
        }
        // fermer les repertoires courant jusqu'au point de fork
-       while($close = array_pop($tcur)){
+       while ($close = array_pop($tcur)) {
                $output .= "</ul>\n";
                $output .= fin_block();
                $output .= "</li>\n";
        }
        $chemin = "";
-       if (count($tcom))
-               $chemin .= implode("/",$tcom)."/";
+       if (count($tcom)) {
+               $chemin .= implode("/", $tcom) . "/";
+       }
        // ouvrir les repertoires jusqu'a la cible
-       while($open = array_shift($ttarg)){
-               $visible = @isset($deplie[$chemin.$open]);
+       while ($open = array_shift($ttarg)) {
+               $visible = @isset($deplie[$chemin . $open]);
                $chemin .= $open . "/";
                $output .= "<li>";
-               $output .= bouton_block_depliable($chemin,$visible);
+               $output .= bouton_block_depliable($chemin, $visible);
                $output .= debut_block_depliable($visible);
 
                $output .= "<ul>\n";
        }
        $current = $target;
+
        return $output;
 }
-
-?>