indent (einrückung) = -1
$root->ouput() -> $indent == -1, es wird nix ausgegeben wg. (if $this->id != 0) ...
für alle kinder von $root ist $indent == 0,
der deren kinder == 1
und deren == 2, ect.
du machst ja deine einrückungen über geschachtelte ul,
dann sähe output so aus (mit default $indent = 0)
PHP-Code:
public function output ($indent = 0) {
$spaces = str_repeat (' ' , $indent);
if ($this->id != 0) {
echo $spaces; // nur zur lesbarkeit des html-outputs
echo '<li>' . $this->name . "</li><br>\n";
}
$this->sort();
if ($this->children) {
echo "$spaces<ul>\n";
foreach ($this->children as $chld) {
$chld->output ($indent+1);
}
echo "$spaces</ul>\n";
}
}
mit meinen fake-kategorien erzeugt das:
Code:
# php x.php
<ul>
<li>a</li><br>
<ul>
<li>ab</li><br>
<li>aa</li><br>
<ul>
<li>aaa</li><br>
<ul>
<li>aaaa</li><br>
</ul>
</ul>
</ul>
<li>b</li><br>
<ul>
<li>ba</li><br>
</ul>
</ul>
auch empfehle ich dir ein besseres buch zur thematik, z.b.
http://www.addison-wesley.de/main/ma...roductid=83009