Einzelnen Beitrag anzeigen
Ungelesen 25.06.12, 18:57   #8
urga
Mitglied
 
Benutzerbild von urga
 
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
urga ist noch neu hier! | 0 Respekt Punkte
Standard

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
__________________
entropie erfordert keine wartung
urga ist offline   Mit Zitat antworten