Voy a hacer un listado <ul> <li> ... y lo escribo con una funcion php, ¿ como escribo esta funcion para que me escriba un html correctamente tabulado, ... formateado ?
Código HTML:
...
<ul>
<?php echo $this->generaMenu(); ?>
</ul>
...
Código PHP:
private function generaMenu()
{
$categorias = $this->categorias->getCategorias('where fkidcategoria = 0');
if ( $categorias )
{
$this->generaMenuRecursivo($categorias);
}else{
throw new Exception('Error dibujando el menú de categorias y subcategorias');
}
}
private function generaMenuRecursivo($categorias)
{
foreach ($categorias as $categoria ){
echo "<li><a href=\"#\">$categoria[nombre_corto]</a>\n";
$categoriashijos = $this->categorias->getCategorias( 'where fkidcategoria = "'.$categoria['id'].'";');
if ( $categoriashijos )
{
echo "<ul>\n";
$this->generaMenuRecursivo( $categoriashijos );
echo "</ul>\n</li>\n";
}else{
echo "</li>\n";
}
}
}
Ya se que es un poco chapuza, pero bueno, me funciona. Creo que no es ni recursivo pero asi le he llamado.
Pero lo que no se es como imprimir el html, he probado con echo, con print, con printf pasandole el numero de tabulaciones en un parametro opcional, pero no se.
Mi duda principal, no solo en este ejemplo, es, ¿ como se escribe el html en php para que sarga correctamente formateado ( tabulado, saltos de linea, etc ) ? desde que funcion hasta que tipo de comillas utilizar, que combinacion ...
Gracias, un saludo, que grande es esta comunidad!