Ho notato problemi nel tornare indietro da un livello n ad un livello molto meno profondo es.: 1,
infatti il salto di livello non avviene, e torna indietro solo di un bnomio UL LI
quindi ho inserito una ripetizione della chiusura del binomio[/list]tante volte quanto è la differenza del salto di livello:
Codice PHP:
$rows = ns_build_three(1);
$livello = -1;
foreach ($rows as $row) {
if ($livello < $row[0]) {
echo "<ul>\n";
} elseif ($livello > $row[0]) {
//calcolo il salto di livello e ripeto[/list]
$rpt_ul=($livello-$row[0]);
echo "- differenza livello {$rpt_ul}"; echo str_repeat('[/list]',$rpt_ul)."\n";
} elseif ($livello == $row[0]) {
echo "\n";
}
//debug {$row[2]}
echo "<li id=\"{$row[2]}\">".$row[1]." ".$row[0] ;
$livello = $row[0]; // imposto il vecchio livello per sapere come devo salire o scendere nell'albero
}
echo "";
while ($livello > 0) { // scendo i livelli della lista fino a chiuderla
echo "[/list]\n";
$livello = $livello - 1;
}
echo "[/list]";