Till: Nested Sets Forum

Hola!

Ich programmiere derzeit ein simples Forum mit Baumstrucktur(Nested Sets).

Ich kriege nur leider keine vernümpfige Ausgabe mit <li> zu stande:
http://root.sxsystems.net/projects/sxForum/nestedsets/test.php

Problem: Das öffen und schließen von Punkten und Unterpunkten (<ul>, <li>)

Kennt jemand ein Forum oder eine Code in welchem mein Problem schon gelöst wurde?

Grüße, Till

  1. Hallo Till,

    Kennt jemand ein Forum oder eine Code in welchem mein Problem schon gelöst wurde?

    in dem entsprechenden Feature Artikel  von Henryk Plötz werden die Bäume mit Listen dargestellt. Besonders zu beachten die Funktion "zeichneBaum()".

    Gruß, Andreas

    --
    SELFFORUM - hier werden Sie geholfen,
    auch in Fragen zu richtiges Deutsch
    1. 你好 Andreas,

      Kennt jemand ein Forum oder eine Code in welchem mein Problem schon
      gelöst wurde?

      in dem entsprechenden Feature Artikel
      von Henryk Plötz werden die Bäume mit Listen dargestellt. Besonders zu
      beachten die Funktion "zeichneBaum()".

      Ja, aber Henryk hat nicht mit Nested Sets gearbeitet :)

      再见,
       CK

      --
      Kommt ein Vektor zur Drogenberatung: "Hilfe, ich bin linear abhaengig!"
      http://wwwtech.de/
      1. Hallo Christian,

        Ja, aber Henryk hat nicht mit Nested Sets gearbeitet :)

        aber, wenn ich es richtig verstanden habe, war das Problem die sortierte Ausgabe, nicht die Datenhaltung. Die Übertragung dahin, daß die Funktion zeichneBaum() die Daten in der richtigen Form bekommt, muß der OP natürlich noch leisten. Aber er will ja auch selbst programmieren :-)

        再见,

        chinesisch, japanisch, timbuktu?

        Gruß, Andreas

        --
        SELFFORUM - hier werden Sie geholfen,
        auch in Fragen zu richtiges Deutsch
      2. Hallo Christian!

        Meine Momentane Lösung erscheint mir so unprofessionell und blöd :D
        Deswegen suche ich eine Software welche dies schon "perfekt" gelöst hat.

        <?php

        mysql_connect('localhost', 'root');
         mysql_select_db('forum');

        $query = "SELECT n.*, round((n.rgt-n.lft-1)/2,0) AS childs, count(*)+(n.lft>1) AS level, ((min(p.rgt)-n.rgt-(n.lft>1))/2) > 0 AS lower, (((n.lft-max(p.lft)>1))) AS upper FROM forum n, forum p WHERE n.lft BETWEEN p.lft AND p.rgt AND (p.parent = n.parent) AND (p.id != n.id OR n.lft = 1) GROUP BY n.parent, n.id ORDER BY n.parent, n.lft";
         $result = mysql_query($query);

        while ($row = mysql_fetch_assoc($result)) {
          $tree[] = $row;
         }

        echo '<ul>';

        foreach($tree as $id => $values) {

        echo '<li>'.$values['topic'];

        if ($values["level"] == 1)
           $parent = array();

        if ($values["level"] >= $last["level"])
           $parent[$last["level"]] = $last;

        if ($values['childs'] > 0) {
           echo '<ul>';
          } elseif ($values['lower'] == 0) {
           echo '</li></ul>';
           for ($i=2;$i<$values["level"];$i++) {
            if ($parent[$i]["lower"] == 0) {
             echo '</ul></li>';
            } else {
             echo '</li>';
            }
           }
          } else {
           echo '</li>';
          }

        if ($values['level'] == 2 && $values["lower"] == 0) {
           echo '</li>';
          }

        $last = $values;

        }

        echo '</ul>';

        ?>