#!/bin/perl ############################################################# # # # Justino Martinez, 1998 (justino@jet.es) # # # # Tree.cgi # # # ############################################################# # Este script puede copiarse y modificarse siempre y cuando # # no se borre ni modifique la cabecera ni este texto y se # # deje constancia clara del nombre y direccion de la persona# # que ha hecho las modificaciones y en que consisten estas. # # No obstante el autor no se hace responsable de usos # # malintencionados debido a modificaciones realizadas por # # otras personas. # ############################################################# # # # Funcion: # # # # Funciona en combinacion con lsremoto.cgi. Este genera # # el arbol de directorios y llama a lsremoto.cgi cuando # # se selecciona alguno de ellos. # # # ############################################################# # # # Instalacion # # # # 1.-Copiarlo en el mismo subdirectorio que LsRemoto.cgi # # # # 2.-Darle permisos 755 # # # # 3.-Cambiar la variable $root que debe indicar cual es # # el path hasta vuestro directorio raiz # # En Jet Internet debe ser $root="/home/./usuario"; # # donde usuario es vuestro nombre de usuario # # # # 4.-Si se ha cambiado el nombre al Perl lsremoto.cgi # # debe ponerse el nuevo nombre en la variable # # $remoto # # # ############################################################# ############################################################# # Cambiar estas variables si es necesario # ############################################################# # # Path de vuestro directorio raiz # $root = "/home/www/TR/cjav.org/ricosogorb/raiz"; # ----- Esta variable solo debe modificarse si habeis dado # ----- un nombre diferente a lsremoto.cgi # # Nombre del programa que gestiona la lectura de directorios # $remoto = "lsremoto.cgi"; ############################################################## ###### A partir de aqui no hay que cambiar nada ############## ############################################################## # Separador UNIX $separador ="/"; # Separador DOS $separador ="\\"; # La matriz @dire contendra los nombres de los subdirectorios # @dire=($root); # Empieza la pagina # print "Content-type: text/html \n\n"; print "\n"; print "\n"; print "Arbol de directorios\n"; print "\n"; print "

Árbol de directorios

"; print "
\n"; foreach $actual (@dire){ &leedir; } $n=0; foreach $que (@dire){ $dire[$n]=~ s/\// /g; $n++; } @dir =sort(@dire); $n=0; foreach $que (@dir){ $dir[$n]=~ s/ /\//g; $n++; } print ""; $todos=@dir-1; for ($n=0; $n<=$todos;$n++){ ($nada,$resto) = split($root,$dir[$n]); if ($resto eq "") { $resto="/"; } $que=$remoto . "?" . $resto; print "\n"; } print "
$resto
"; print "\n"; ############################################################# # # # Fin de programa # # # ############################################################# ############################################################# # # # Rutina que lee los directorios # # # ############################################################# sub leedir { # Pasamos al directorio actual y lo abrimos # if (!-e $actual){ print "Window-target: escondida\n"; print "Content-type: text/html \n\n"; print "\n"; exit; } chdir($actual); opendir(CURDIR, ".") || die("No puedo abrir el subdirectorio"); # lo leemos # @ficheros = readdir(CURDIR); # lo ordenamos por orden alfabetico # @ordenados = sort(@ficheros); # almacenamos los subdirectorios en la matriz @dire # foreach $file (@ordenados){ if (-d $file){ if (($file ne ".")&($file ne "..")){ $x=$actual . $separador . $file; push(@dire, $x); } } } close(CURDIR); }