Hi,
ich habe mal wieder ein Problem mit einer Klasse. Mein Ziel: Eine mehr-ebige Navigation, die aus einer XML-Datei ausgelesen und mit PHP in eine <ul> Liste geschrieben werden soll (Per CSS wird daraus ein Dropdownmenu angezeigt).
Mein Problem ist nun, dass in der Function LoadSubXML die If-Schleife "if ($subid == $myMenu->parent)" nicht interpretiert wird. Ich verstehe absolut nicht warum. Wenn ich das ganze in dieser Funktion ohne die Schleife ausführe, zeigt er mir alle Navigationselemente. Also die Funktion arbeitet grundsätzlich.
Anbei der Code:
Klasse:
Die XML-Datei:
Vielen Dank schonmal im Vorraus
ich habe mal wieder ein Problem mit einer Klasse. Mein Ziel: Eine mehr-ebige Navigation, die aus einer XML-Datei ausgelesen und mit PHP in eine <ul> Liste geschrieben werden soll (Per CSS wird daraus ein Dropdownmenu angezeigt).
Mein Problem ist nun, dass in der Function LoadSubXML die If-Schleife "if ($subid == $myMenu->parent)" nicht interpretiert wird. Ich verstehe absolut nicht warum. Wenn ich das ganze in dieser Funktion ohne die Schleife ausführe, zeigt er mir alle Navigationselemente. Also die Funktion arbeitet grundsätzlich.
Anbei der Code:
Klasse:
PHP:
class Navigation
{
var $anhang;
function Navigation($anh)
{
$this->anhang = $anh;;
}
private function LoadSubXML($subid,$file)
{
$objNav = simplexml_load_file($file);
foreach ($objNav->menu as $myMenu)
{
if ($subid == $myMenu->parent)
@$out .= "<li><a href=\"index.php".$this->anhang."&mod=".$myMenu->ref."\">".$myMenu->title."</a>";
}
if (isset($out))
return "<ul>".$out."</ul>";
}
private function LoadXML($file) //Hauptmenu laden
{
$objNav = simplexml_load_file($file);
foreach ($objNav->menu as $myMenu)
{
if ($myMenu->parent == 0)
{
@$out .= "<li><a href=\"index.php".$this->anhang."&mod=".$myMenu->ref."\">".$myMenu->title."</a>";
@$out .= $this->LoadSubXML($myMenu->id,$file);
}
}
return $out;
}
public function LoadNav($file) //Hauptmenu ausgeben
{
$nav = $this->LoadXML($file);
$pre = "<div class=\"menu\"><ul>";
$end = "</ul></div>";
return $pre.$nav.$end;
}
}
Die XML-Datei:
HTML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<navigation>
<menu>
<id>1</id>
<parent>0</parent>
<icon></icon>
<title>Schreibtisch</title>
<ref>deskt</ref>
</menu>
<menu>
<id>2</id>
<parent>0</parent>
<icon></icon>
<title>Navigation</title>
<ref>navigation</ref>
</menu>
<menu>
<id>3</id>
<parent>2</parent>
<icon></icon>
<title>Navigation 1-2</title>
<ref>navigation</ref>
</menu>
<menu>
<id>4</id>
<parent>2</parent>
<icon></icon>
<title>Navigation 2-2</title>
<ref>navigation</ref >
</menu>
<menu>
<id>5</id>
<parent>0</parent>
<icon></icon>
<title>Webseiten</title>
<ref>page</ref>
</menu>
</navigation>
Vielen Dank schonmal im Vorraus