X-Git-Url: https://git.llucax.com/mecon/meconlib.git/blobdiff_plain/f1f35a24f897e9c800c3e281302a9538c5781aee..24fd3e0f15c00f9048fc2b5ad2be287f50eb2824:/lib/MECON/HTML/Arbol.php diff --git a/lib/MECON/HTML/Arbol.php b/lib/MECON/HTML/Arbol.php index 7037f0e..d86c49e 100644 --- a/lib/MECON/HTML/Arbol.php +++ b/lib/MECON/HTML/Arbol.php @@ -91,7 +91,7 @@ class HTML_Arbol extends HTML_Table } foreach ($dat as $e) { $titulo = $margen.$imagen.$e['titulo']; - if(isset($e['activado']) && $e['activado'] != 0) $class = 'menu_activo'; + if(isset($e['activo']) && $e['activo'] != 0) $class = 'menu_activo'; else $class = $classes[$n]; if(!is_null($e['link'])) { $link = $e['link']; @@ -140,7 +140,7 @@ class HTML_Arbol extends HTML_Table foreach ($dat as $e) { // Si no tiene ID o esta activo y se filtran los activos, se // continua con el proximo item. - if (!@$e['id'] or $filtrarActivos and @$e['activado']) { + if (!@$e['id'] or $filtrarActivos and @$e['activo']) { continue; } $array[$e['id']] = str_repeat('   ', $n) . $e['titulo']; @@ -156,16 +156,46 @@ class HTML_Arbol extends HTML_Table return $this->expandirArray($this->datos, 0, $filtrarActivos); } + function expandirString($dat, $n, $filtrarActivos) + { + $str = ''; + $tot = count($dat); + for ($i = 0; $i < $tot; $i++) { + $e = $dat[$i]; + // Si no tiene ID o esta activo y se filtran los activos, se + // continua con el proximo item. + if (!@$e['id'] or $filtrarActivos and @$e['activo']) { + continue; + } + $indent = str_repeat('| ', $n); + if ($i == ($tot - 1)) { + $indent .= '`- '; + } else { + $indent .= '|- '; + } + $str .= $indent . $e['titulo'] . "\n"; + if(@$e['sub']) { + $str .= $this->expandirString($e['sub'], $n + 1, $filtrarActivos); + } + } + return $str; + } + + function toString($filtrarActivos = true) + { + return $this->expandirString($this->datos, 0, $filtrarActivos); + } + /** * Activa un nodo del árbol. * * @param int $id Id del nodo a modificar. - * @param bool $activado Nuevo valor, true si está activado, false si no. + * @param bool $activo Nuevo valor, true si está activo, false si no. * * @return bool True si se pudo modificar. */ - function setActivado($id, $activado = 1) { - return $this->modificarNodo($this->datos, $id, 'activado', $activado); + function setActivo($id, $activo = 1) { + return $this->modificarNodo($this->datos, $id, 'activo', $activo); } /**