El árbol PHP con PEAR: código completo

Valoración del artículo:
Ahora mostramos el código completo del ejemplo de creación de una interfaz de árbol dinámica.
Publicado: 23/7/09
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.
En el Manual de Interfaz de árbol dinámico en PHP venimos explicando los pasos para la creación de un árbol de contenidos DHTML, que responde a las acciones del usuario para expandir y contraer sus ramas.

En el primer artículo explicamos las generalidades de esta propuesta del framework PHP PEAR para la creación de la interfaz de árbol . Por su parte, en el segundo artículo mostramos paso por paso el procedimiento para la creación del árbol utilizando este paquete de PEAR.

Ahora veremos el código completo de una página PHP, con la que hemos construido el árbol que hemos utilizado de ejemplo de uso de la librería. Antes de continuar, os sugiero ver el ejemplo en marcha en una página aparte, para que luego se pueda entender mejor el código.

<?php
error_reporting(0);

require_once('TreeMenu.php');

$icon = 'folder.gif';
$expandedIcon = 'folder-expanded.gif';

$menu = new HTML_TreeMenu();

$nodo1 = new HTML_TreeNode(array('text'=>'Directorio','link'=>'http://www.desarrolloweb.com/directorio', 'icon' => $icon, 'expandedIcon' => $expandedIcon));
$menu->addItem($nodo1);

$nodo1_1 = new HTML_TreeNode(array('text'=>'Programación','link'=>'http://www.desarrolloweb.com/directorio/programacion', 'icon' => $icon, 'expandedIcon' => $expandedIcon), array('ontoggle'=>'alert("Has cambiado la rama Programación");'));
$nodo1->addItem($nodo1_1);

$nodo1_1_1 = new HTML_TreeNode(array('text'=>'HTML','link'=>'http://www.desarrolloweb.com/directorio/programacion/html/', 'icon' => $icon, 'expandedIcon' => $expandedIcon));
$nodo1_1->addItem($nodo1_1_1);

$nodo1_1_2 = new HTML_TreeNode(array('text'=>'javascript','link'=>'http://www.desarrolloweb.com/directorio/programacion/javascript/', 'icon' => $icon, 'expandedIcon' => $expandedIcon));
$nodo1_1->addItem($nodo1_1_2);

$nodo1_1_3 = new HTML_TreeNode(array('text'=>'PHP','link'=>'http://www.desarrolloweb.com/directorio/programacion/php/', 'icon' => $icon, 'expandedIcon' => $expandedIcon), array('onexpand'=>'alert("Has expandido la rama PHP");', 'oncollapse'=>'alert("Has cerrado la rama PHP");'));
$nodo1_1->addItem($nodo1_1_3);

$nodo1_1_3_1 = new HTML_TreeNode(array('text'=>'Scripts PHP','link'=>'http://www.desarrolloweb.com/directorio/programacion/php/scripts_en_php/', 'icon' => $icon, 'expandedIcon' => $expandedIcon));
$nodo1_1_3->addItem($nodo1_1_3_1);

$nodo1_1_3_2 = new HTML_TreeNode(array('text'=>'Manuales PHP','link'=>'http://www.desarrolloweb.com/directorio/programacion/php/manuales_de_php/', 'icon' => $icon, 'expandedIcon' => $expandedIcon));
$nodo1_1_3->addItem($nodo1_1_3_2);


$nodo1_2 = new HTML_TreeNode(array('text'=>'Sistemas','link'=>'http://www.desarrolloweb.com/directorio/sistemas', 'icon' => $icon, 'expandedIcon' => $expandedIcon));
$nodo1->addItem($nodo1_2);

$nodo1_3 = new HTML_TreeNode(array('text'=>'Bases de datos','link'=>'http://www.desarrolloweb.com/directorio/bases_de_datos/', 'icon' => $icon, 'expandedIcon' => $expandedIcon));
$nodo1->addItem($nodo1_3);

//Crear la presentación del árbol
$treeMenu = new HTML_TreeMenu_DHTML($menu, array('images' => 'imagesAlt2', 'defaultClass' => 'treeMenuDefault'));

?>
<html>
<head>
<style type="text/css">
body {
font-family: Trebuchet MS,Helvetica,Verdana,Arial,sans-serif;;
font-size: 10pt;
}
.treeMenuDefault {
font-style: italic;
}
</style>
<script src="TreeMenu.js" language="JavaScript" type="text/javascript"></script>
</head>
<body>

<?$treeMenu->printMenu()?><br /><br />

</body>
</html>

Nota: Este archivo de ejemplo está preparado, por las rutas de los includes, para ser colocado en la misma carpeta donde se encuentra la librería TreeMenu.php y el archivo Javascript TreeMenu.js y con la estructura de carpetas que viene en el archivo de descarga del paquete HTML_TreeMenu.

Eso es todo. Esperamos que se pueda entender y poner en marcha sin problemas esta manera de crear una interfaz de árbol dinámico en páginas web con soporte a PHP.

Comentarios
Fueron enviados 4 comentarios al artículo
2 comentarios no revisados
2 comentarios revisados:
Paso variables
Por: Montse
23/7/09
El artículo está muy bien explicado y me ha ayudado mucho a entender el funcionamiento de Treemenu. Mi problema es que necesito rellenarlo de manera recursiva con datos extraidos desde una tabla MySql y el problema es que me crea el numero de nodos correctos pero siempre con el contenido del último registro de la tabla. Se te ocurre alguna manera de hacerlo? Gracias.
Recursividad
23/7/09
Hola!

Debes estar haciendo algo mal, que más bien me inclino que será relacionado con tu función recursiva, más que con el uso del árbol. Si indicas el código de tu función igual alguien puede comentarte algo.

Manuales relacionados
Categorias relacionadas
El autor
Últimas noticias
Alojados en el grupo