'home', 'parentId' => 'root', 'title' => 'Home', 'tooltip' => 'zurück zum Anfang', 'order' => '1', 'value' => null);
$list[] = array('id' => 'links', 'parentId' => 'root', 'title' => 'Links', 'tooltip' => 'meine Links', 'order' => '2', 'value' => null);
$list[] = array('id' => 1, 'parentId' => 'links', 'title' => 'yaslaw´s tolle Seite', 'tooltip' => 'gehe zu los, ohne..','order' => '1', 'value' => 'http://yaslaw.info');
$list[] = array('id' => 45, 'parentId' => 'links', 'title' => 'tutorials', 'tooltip' => null, 'order' => '2', 'value' => 'http://www.tutorials.de');
$list[] = array('id' => 'foo', 'parentId' => 'home', 'title' => 'Foo', 'tooltip' => null, 'order' => null, 'value' => 'foo');
$list[] = array('id' => 'bar1', 'parentId' => 'foo', 'title' => 'bar 1', 'tooltip' => null, 'order' => null, 'value' => 'bar');
$list[] = array('id' => 'bar2', 'parentId' => 'foo', 'title' => 'bar 2', 'tooltip' => 'noch ein bar', 'order' => 2, 'value' => 'bar');
/**
* Beispiel für eine indiviudale Anwendung des Trees
* Eine Ableitung der Node-Class bei der die Sortierung und der Ausgabetext geändert ist
* @author C754943
*
*/
class AdjacencyTreeNodeByName extends AdjacencyTreeNode{
//Geänderter Text
protected function setText(){
$this->text = '• ' . str_repeat('→ ', $this->level) . $this->title;
}
//Sortierung innerhalb der Gruppen anhand der Parameter 'order' und 'title'
protected function setSortText($sortParent){
$this->sort = sprintf('%sZZZ%04d%s', $sortParent, $this->order, $this->title);
}
}
//Tree erstellen
$tree = new AdjacencyTree('AdjacencyTreeNodeByName', 'root');
$usedKeys = array_flip(array('id', 'parentId', 'title'));
foreach($list as $item){
$tree->createNode($item['id'], $item['parentId'], $item['title'], array_diff_key($item, $usedKeys));
}
//Tree berechnen
$tree->calcTree();
//und ausgeben
foreach($tree as $node){
echo sprintf('%s
', $node->value, $node->tooltip, $node->text);
}
?>