Funjoy
Erfahrenes Mitglied
Hallo,
Ich habe ein kleines Problem bei einer rekursiven Funktion, diese Funktion dient dazu mein Menü auszugeben. Weill ich mit der Template Klasse Smarty arbeite kann ich den return wert nicht als string zurückgeben sondern als ein array und da ist dann auch das Problem.
Hier erstmal der aufbau von meiner DB=> jag_menu: siehe Anhang !
So nun zu der Funktion:
So mein Problem ist das er mir nich alles ausgibt sondern nur ein teil!
Habe mal print_r() angewendet und da sieht es dann so aus:
Array ( [Homepage] => Array ( [2] => Server Regeln ) )
sollte aber so aussehen:
Array([Login] => Array([0] => modul/templates/login.html),[Homepage] => Array([1] => Startseite, [2] => Server Regeln))
Hoffe irgendwer sieht den fehler in meiner Funktion :suspekt:
MfG Funjoy
Ps: Ich habe auch schon anstatt static$box; global$box; versucht macht kein unterschied. Ich glaube mal ich setzt die Rekrusive Funktion Falsch.
Ich habe ein kleines Problem bei einer rekursiven Funktion, diese Funktion dient dazu mein Menü auszugeben. Weill ich mit der Template Klasse Smarty arbeite kann ich den return wert nicht als string zurückgeben sondern als ein array und da ist dann auch das Problem.
Hier erstmal der aufbau von meiner DB=> jag_menu: siehe Anhang !
So nun zu der Funktion:
PHP:
<?php
/* Menü Funktion
* >> Eine Rekrusive Funktion um das Menü auszugeben.
*/
function menu_ausgeben($ausrichtung,$zuordnung=0,$schluessel="") {
global $db,$mysql,$user_ist_angemeldet;
static $box;
$menuquery = $db->sql_normal_query("SELECT
menuid,ausrichtung,sortierung,zuordnung,titel,name,fertiges_modul,pfad_zum_modul,modul,rechte
FROM
".$mysql['prefix']."_menu
WHERE
ausrichtung='".$ausrichtung."' AND zuordnung='".$zuordnung."'
ORDER BY
zuordnung,sortierung ASC");
while($menu = $db->sql_fetch_object($menuquery)){
//> Boxen ausgeben.
if($menu->rechte != FALSE && $user_ist_angemeldet == TRUE) {
#> Wird später definiert
} else if($menu->rechte == FALSE) {
if($menu->titel == "ja" && $menu->fertiges_modul == "nein") {
$box = array($menu->name => "");
} elseif ($menu->titel == "ja" && $menu->fertiges_modul == "ja") {
$box = array($menu->name => array(0 => "../".$menu->pfad_zum_modul));
} elseif($menu->titel == "nein" && $schluessel !="") {
$box[$schluessel] = array($menu->modul => $menu->name);
}
menu_ausgeben($ausrichtung,$menu->menuid,$menu->name);
}
}
return $box;
}
?>
So mein Problem ist das er mir nich alles ausgibt sondern nur ein teil!
Habe mal print_r() angewendet und da sieht es dann so aus:
Array ( [Homepage] => Array ( [2] => Server Regeln ) )
sollte aber so aussehen:
Array([Login] => Array([0] => modul/templates/login.html),[Homepage] => Array([1] => Startseite, [2] => Server Regeln))
Hoffe irgendwer sieht den fehler in meiner Funktion :suspekt:
MfG Funjoy
Ps: Ich habe auch schon anstatt static$box; global$box; versucht macht kein unterschied. Ich glaube mal ich setzt die Rekrusive Funktion Falsch.