Acá lo prometido:
La función php es la siguiente:
Código PHP:
function arbol(&$conexion,$inicio,$pais,$idioma){
$str ='';
$aux=mysql_query("select s.codigo, s.padre, s.nombre from secciones s where padre ='".$inicio."' and idioma = '".$idioma."' and pais = '".$pais."' and estado =1",$conexion);
while($r=mysql_fetch_row($aux)){
$str .= "d.add(".$r[0].",".$r[1].",'".$r[2]."','secciones_modificar.php?padre=".$r[1]."','secciones_modificar.php?codigo=".$r[0]."','secciones_borrar.php?codigo=".$r[0]."');\n";
$str .=arbol($conexion,$r[0],$pais,$idioma);
}
mysql_free_result($aux);
return $str;
}
Luego, incluis la conexión a la db y llamas a la funcion:
Código PHP:
<script type="text/javascript">
d = new dTree('d');
d.add(0,-1,'Secciones');
<?php if(arbol($conexion,0,0,0)==''){#Esto nunca me gusto mucho?>
document.write(d);
<?php
echo 'document.write("<a href=paginaCreaSeccion.php>Nueva Seccion.</a><br> <br>");';
}else{
echo arbol($conexion,0,0,0);
?>
document.write(d);
<?php}?>
</script>
Ahora la db es la siguiente en mi caso:
Cita: CREATE TABLE `secciones` (
`codigo` int(10) unsigned NOT NULL auto_increment,
`nombre` varchar(255) default NULL,
`idioma` int(10) unsigned default '0',
`pais` int(10) unsigned default '0',
`padre` int(10) unsigned default '0',
`template` int(10) unsigned default '0',
`nav` tinyint(1) default '0',
`header` tinyint(1) default '0',
`footer` tinyint(1) default '0',
`popup` tinyint(1) default '0',
`contenido` tinyint(1) default '0',
`orden` int(10) default '0',
`estado` tinyint(1) default '1',
PRIMARY KEY (`codigo`)
) TYPE=MyISAM;
Obviamente, como verás, hay campos que son especificos de mi caso, y que no usaras, como template, idioma, país, header, etc...lo unico qu ete interesa es el codigo y el padre en si.
Luego, la función va llamando a un objeto en js, para el cual he usado el del sitio:
http://www.destroydrop.com/javascripts/tree/ y he adaptado a mis necesidades.
Este es una captura del resultado final:
http://estudiowas.com.ar/images/forosdelweb.gif
tambien podes usar otros tree como ser:
http://www.treemenu.net/treemenu/3fr_beenthere.html
Espero te sirva de algo esto.
PD: lastima que es algo que nunca pude terminar