From 24fd3e0f15c00f9048fc2b5ad2be287f50eb2824 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mart=C3=ADn=20Marrese?= Date: Fri, 25 Jul 2003 21:19:51 +0000 Subject: [PATCH] Se agrega un toString() (porque fue gratis experimentando con una mejor presentacion de toArray()). Se arreglan los ejemplos. --- lib/MECON/HTML/Arbol.php | 30 ++++++++++++++++++++++++++++++ test/HTML/arbol.php | 7 +++++-- test/HTML/arboldb.php | 3 ++- 3 files changed, 37 insertions(+), 3 deletions(-) diff --git a/lib/MECON/HTML/Arbol.php b/lib/MECON/HTML/Arbol.php index 5ba8f0a..d86c49e 100644 --- a/lib/MECON/HTML/Arbol.php +++ b/lib/MECON/HTML/Arbol.php @@ -156,6 +156,36 @@ 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. * diff --git a/test/HTML/arbol.php b/test/HTML/arbol.php index 6c9c9b9..b0fc229 100644 --- a/test/HTML/arbol.php +++ b/test/HTML/arbol.php @@ -48,7 +48,7 @@ $dat = array( // Datos {{{ 'link' => 'blabla', 'id' => 9, 'sub' => array(//sub2 {{{ - 5 => array( + array( 'titulo' => 'Nivel4', 'link' => 'blabla', 'id' => 8, @@ -100,12 +100,15 @@ foreach ($arbol->toArray(true) as $id => $val) { echo ''; } echo ''; -$arbol->setActivado(16); +$arbol->setActivo(16); echo $arbol->toHTML(); echo ''; +echo "
Raiz\n";
+echo $arbol->toString();
+echo '
'; ?> diff --git a/test/HTML/arboldb.php b/test/HTML/arboldb.php index 30e7e02..66d72f5 100644 --- a/test/HTML/arboldb.php +++ b/test/HTML/arboldb.php @@ -36,6 +36,7 @@ $dbdata = array( 'db' => &$db, 'tabla' => 'grupo_secciones', 'id' => 'grupo', + 'id_activo' => '7', 'nombre' => 'nombre', 'id_padre' => 'grupo_padre', ); @@ -53,7 +54,7 @@ foreach ($arbol->toArray(true) as $id => $val) { echo ''; } echo ''; -var_dump($arbol->setActivado(34)); +var_dump($arbol->setActivo(34)); echo $arbol->toHTML(); echo '