Mit getAllNodes(); von der NestedSet Klasse hole ich mir die Navigationseinträge aus der Datenbank. Das Ganze übergeben ich dann mit $smarty->assign("klaus", $treeItems2); an Smarty um es dort in einer Schleife mit {section....} innerhalb einer Select-Box anzeigen zu lassen.
Aus irgendwelchen Grund funktioniert die Ausgabe mit dem Array was ich von der NestedSet-Klasse zurück bekomme nicht. Wenn ich ein eigene Array nach genau dem Muster erstelle geht es allerdings.
Hört sich seltsam an, ist aber so ;-(.
Auslesen aus der Datenbank und Übergabe an Smarty:
Meine Smarty-Datei:
Array:
Aus irgendwelchen Grund funktioniert die Ausgabe mit dem Array was ich von der NestedSet-Klasse zurück bekomme nicht. Wenn ich ein eigene Array nach genau dem Muster erstelle geht es allerdings.
Hört sich seltsam an, ist aber so ;-(.
Auslesen aus der Datenbank und Übergabe an Smarty:
PHP-Code:
$dsn = 'mysql://xxx:xxx@localhost/xxxx';
$params = array(
'STRID' => 'id',
'ROOTID' => 'rootid',
'l' => 'l',
'r' => 'r',
'PARENT' => 'parent',
'STREH' => 'norder',
'LEVEL' => 'level',
'STRNA' => 'name'
);
$tables = array(
'node_table' => 'tb_nodes',
'lock_table' => 'tb_locks'
);
require_once('DB/NestedSet.php');
$nested = & DB_NestedSet::factory( 'DB', $dsn, $params);
if(PEAR::isError($nested)) {
echo $nested->getCode().": ".$nested->getMessage();
}
$treeItems2 = $nested->getAllNodes(13);
$smarty->assign("klaus", $treeItems2);
print_r($treeItems2);
$smarty->display('navigation_anlegen.html');
PHP-Code:
<select name="untermenue" size="1" class="select">
<option value="1">Root
{section name=test loop=$klaus2}
{$klaus2[test].name} -<br>
{/section}
</select>
PHP-Code:
Array
(
[13] => Array
(
[id] => 13
[rootid] => 13
[l] => 1
[r] => 16
[parent] => 0
[norder] => 1
[level] => 1
[name] => Testnavigation
)
[14] => Array
(
[id] => 14
[rootid] => 13
[l] => 2
[r] => 15
[parent] => 0
[norder] => 1
[level] => 2
[name] => Unternavigation
)
[15] => Array
(
[id] => 15
[rootid] => 13
[l] => 3
[r] => 4
[parent] => 0
[norder] => 1
[level] => 3
[name] => TESTMAC
)
)
Kommentar