All pastes #165940 Raw Edit

Anonymous

public php v1 · immutable
·published 2006-09-10 11:13 UTC
rendered paste body
    public function getMenu($root=1) {        // linken und rechten wert von $root holen	    $result = $this->db->query("SELECT l, r FROM ".DB_PREFIX."menutree WHERE id='".$root."'");        $row = $this->db->fetchAssoc($result);                // wenn der knoten keine kinder hat, abbrechen        // vielleicht doch nicht null returnen und einfach weitermachen?!        if(($row['r']-$row['l']-1)/2 === 0) {return null;}                // stack für rechte werte initialisieren	    $right = array();        // alle nachfolger von $root holen	    $result = $this->db->query("SELECT id, parent, title, l, r, level FROM ".DB_PREFIX."menutree WHERE l BETWEEN ".$row['l']." AND ".$row['r']." ORDER BY l ASC");	    $output=null;        while ($row = $this->db->fetchAssoc($result)) {            // stack bearbeien, wenn er nicht leer ist	        if (count($right)>0) {                // schauen, ob wir nodes vom stack entfernen müssen	            while ($right[count($right)-1]<$row['r']) {                    array_pop($right);                               }            }            if ($row['level'] != 0) {                $output .= '<tr><td>';                $output .= str_repeat('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;',count($right)-1).$row['title']."<br />";                $output .= '</td>';                $output .= '<!--td>eins hoch | eins runter | eigenschaften | löschen</td-->';                $output .= '</tr>';                            }            	        // knoten auf den stack legen	        $right[] = $row['r'];        }          return '<table>'.$output.'</table>';          }