![]() |
Documentación GVHIDRA 3.1.5
|
Métodos públicos | |
HTML_IgepArbol () | |
arbolFicheros ($path=".") | |
_recorreDirectorio ($path) | |
& | anyadeNodoHijo (&$node) |
& | creaNodoHijo ($texto, $enlace="#") |
arbolXML ($xml) | |
_XML2Arbol (&$nArbol, &$nodoXML) | |
_XML2Nodo (&$nodoXML) | |
printMenu ($tipo="arbol") | |
generaMenu ($tipo="arbol") |
HTML_IgepTreeMenu Class
Clase PHP para gestionar rboles dinmicos de expansin en PHP y javascript Para una correcta visualizacin se recomienda navegadores compatibles con la API DOM del W3C, es decir, IExplorer 5.5 o superior o navegadores de la familia Mozilla (Firefox, Mozilla...). Esta clase se basa en HTML_TreeMenu de Richard Heyes y Harald Radi de ella hereda todas las propiedades y extiende algunas de ellas para integrarse mejor en el proyecto IGEP
Definición en la línea 64 del archivo IgepTreeMenu.php.
_recorreDirectorio | ( | $ | path | ) |
Metodo privado para el recorrido recursivo de un directorio creando los nodos del arbol private
object | $node | El nodo a aadir, de la clase HTML_TreeNode object. |
string | $path | Cadena con la ruta al directorio base a explorar |
Definición en la línea 96 del archivo IgepTreeMenu.php.
{ if (!$dir = opendir($path)) { return false; } $files = array(); //Creamos un nodo $nodo = new HTML_IgepNodo ( array( //Vector de preferencias 'text' => basename($path), //Texto del nodo //'link' => basename($path), //Enlace 'icon' => "folder.gif", //Icno minimizado 'expandedIcon' => "folder-expanded.gif", //Icono Expandido 'expanded' => false //Si aparece expandido o no ), array( 'onclick' => "", ) );//Fin nodo while (($file = readdir($dir)) !== false)//Mientras queden ficheros en el directorio... { if ($file != '.' && $file != '..') //Si tratamos un fichero... { if (@is_dir("$path/$file")) { $addnode = &$this->_recorreDirectorio("$path/$file"); } else { $addnode = new HTML_IgepNodo ( array( //Vector de preferencias 'text' => $file, //Texto del nodo 'link' => $path."/".$file, //Enlace 'icon' => "file.gif", //Icno minimizado 'expandedIcon' => "folder-expanded.gif", //Icono Expandido 'expanded' => false //Si aparece expandido o no ) ); } $nodo->anyadeNodoHijo($addnode); } } closedir($dir); return $nodo; }//Fin _recorreDirectorio
_XML2Arbol | ( | &$ | nArbol, |
&$ | nodoXML | ||
) |
Funcion recursiva, a partir de una rama XML la recorre construyendo el rbol en PHP. private
object | $nodoArbol | Nodo del arbol PHP |
object | $nodoXML | DOMNode del PHP XML |
Definición en la línea 221 del archivo IgepTreeMenu.php.
{ $nodoHijoXML = null; $nodoArbolHijo = null; if ($nodoHijoXML = $nodoXML->firstChild)//Si tiene hijos... { while ($nodoHijoXML) { //Tratamos el NODO hijo $nodoArbolHijo = &$nArbol->anyadeNodoHijo(HTML_IgepArbol::_XML2Nodo($nodoHijoXML)); //Tratamos recursivamente el nodo HTML_IgepArbol::_XML2Arbol($nodoArbolHijo, $nodoHijoXML); //Avanzamos al sigueinte hijo $nodoHijoXML = $nodoHijoXML->nextSibling; } } }//Fin _XML2Arbol
_XML2Nodo | ( | &$ | nodoXML | ) |
Extrae la informacin del doto XML que debe aplicar al nodo del Arbol
private
object | $nodoArbol | Nodo del arbol PHP creado |
object | $nodoXML | DOMNode del PHP XML |
Definición en la línea 252 del archivo IgepTreeMenu.php.
{ //Obtenemos los atributos del XML $textoNodo = utf8_decode ($nodoXML->getAttribute("texto")); //Posible solucin al problema de los saltos de lnea, //o bien se "escapan" los saltos //o bien se transforma en entidades HTML //$textoNodo = str_replace("\n",'',$textoNodo); //$textoNodo = htmlentities($textoNodo); $seleccionado =null; //Obtenemos los atributos del XML $seleccionado = $nodoXML->getAttribute("seleccionado"); $desplegable = $nodoXML->getAttribute("desplegable"); $nodoId = $nodoXML->getAttribute("id"); $ramaSeleccion = $nodoXML->getAttribute('ramaSeleccion'); $enlaceNodo = $nodoXML->getAttribute("enlace"); if($enlaceNodo=="") $enlaceNodo = "#"; $iconoFichero ="file.gif";//Icono para los ficheros $expandido = false; //Si el nodo es desplegable por negocio, o tiene hijos... if($desplegable == '1') $iconoFichero =''; if ( ($seleccionado=='1') || ($nodoId=='1') || ($ramaSeleccion=='1') ) { $expandido = true; } if ($nodoXML->hasChildNodes()) $iconoFichero =""; //Construimos el nodo $nodoArbol = new HTML_IgepNodo ( array( //Vector de preferencias 'text' => $textoNodo, //Texto del nodo 'link' => $enlaceNodo, //Enlace 'icon' => $iconoFichero, //Icno minimizado 'expandedIcon' => "", //Icono Expandido 'expanded' => $expandido //Si aparece expandido o no ) ); if ( ($seleccionado !="no") && ($seleccionado !="false") && ($seleccionado != null) ) $nodoArbol->nodoSeleccionado = true; return $nodoArbol; }//Fin _XML2Nodo
& anyadeNodoHijo | ( | &$ | node | ) |
Aade un nodo al rbol, se sobrecarga el metodo addItem de TreeMenu para asociar la CSS de la guia de estilo al nodo aadido public
object | $node | El nodo a aadir, de la clase HTML_TreeNode object. |
Definición en la línea 151 del archivo IgepTreeMenu.php.
{ $claseCSS = "arbolIgep"; if ($node->nodoSeleccionado == true) $claseCSS .="seleccionado"; $node->cssClass = $claseCSS; $this->items[] = &$node; return $this->items[count($this->items) - 1]; }//Fin anyadeNodoHijo
arbolFicheros | ( | $ | path = "." | ) |
Construye un arbol recogiendo la informacin a partir del directorio de ficheros indicado en el argumento path
string | $path | Cadena con la ruta al directorio base a explorar |
Definición en la línea 82 del archivo IgepTreeMenu.php.
{ $this->addItem($this->_recorreDirectorio($path)); }//Fin arbolFicheros
arbolXML | ( | $ | xml | ) |
Construye un arbol a partir de la estructura XML pasada como argumento
string | $tipo | Indica si debe representarse como arbol o como un listBox |
Definición en la línea 196 del archivo IgepTreeMenu.php.
{ $docXML = DOMDocument::loadXML ( $xml, DOMXML_LOAD_PARSING + //0 DOMXML_LOAD_COMPLETE_ATTRS + //8 DOMXML_LOAD_SUBSTITUTE_ENTITIES + //4 DOMXML_LOAD_DONT_KEEP_BLANKS //16 ); //Raiz del documento XML $raizXML = &$docXML->documentElement; $this->_XML2Arbol($this, $raizXML); }//Fin arbolXML
& creaNodoHijo | ( | $ | texto, |
$ | enlace = "#" |
||
) |
Crea un nodo con el texto y el enlace que se pasan como parmetros y lo aade como hijo del nodo public
string | $texto | El texto del nodo a aadir |
string | $enlace | El enlace o link del nodo si es que null |
Definición en la línea 169 del archivo IgepTreeMenu.php.
{ if ($enlace!="#") //Si NO tiene enlace, no hay icono de fichero $icono ="file.gif"; else $icono =""; $node = new HTML_IgepNodo ( array ( //Vector de preferencias 'text' => $texto, //Texto del nodo 'link' => $enlace, //Enlace 'icon' => $icono, //Icno minimizado 'expandedIcon' => $icono, //Icono Expandido 'expanded' => false //Si aparece expandido o no ) ); $node->cssClass="arbolIgep"; $this->items[] = &$node; return $this->items[count($this->items) - 1]; }//Fin creaNodoHijo
generaMenu | ( | $ | tipo = "arbol" | ) |
Definición en la línea 331 del archivo IgepTreeMenu.php.
{ if ($tipo=="arbol") { $menuPresenta = new HTML_TreeMenu_DHTML($this, array('images' => IMG_PATH_CUSTOM.'arbol', 'isDynamic'=>true, 'linkTarget'=>'oculto' ,'defaultClass' => 'arbolIgep')); } else //if ($tipo=="lista") { $menuPresenta = new HTML_TreeMenu_Listbox($this, array('linkTarget' => 'oculto')); $menuPresenta->promoText = 'Seleccione...'; $menuPresenta->submitText = 'Ir'; } $codigo = $menuPresenta->toHTML(); return $codigo; }
HTML_IgepArbol | ( | ) |
Constructor
public
Definición en la línea 71 del archivo IgepTreeMenu.php.
{ parent::HTML_TreeMenu(); }//Fin HTML_IgepArbol
printMenu | ( | $ | tipo = "arbol" | ) |
Imprime el arbol en pantalla
string | $tipo | Indica si debe representarse como arbol o como un listBox |
Definición en la línea 315 del archivo IgepTreeMenu.php.
{ if ($tipo=="arbol") { $menuPresenta = new HTML_TreeMenu_DHTML($this, array('images' => IMG_PATH_CUSTOM.'arbol', 'isDynamic'=>true, 'defaultClass' => 'arbolIgep')); } else //if ($tipo=="lista") { $menuPresenta = new HTML_TreeMenu_Listbox($this, array('linkTarget' => '_self')); $menuPresenta->promoText = 'Seleccione...'; $menuPresenta->submitText = 'Ir'; } $menuPresenta->printMenu(); }// Fin Imprime el arbol