Hallo
Ich hab wieder mal ne Frage. Ich habe folgendes aufklappbares Menu. Wenn ich einen Link als ziehl angebe (index2.php?site=fotos) dann funkioniert es, es bleibt offen. Für meine gallerie benutze ich jedoch immer das selbe file und ändere bloss den Pfad für das verzeichnis, das ausgelesen werden soll. (index2.php?site=fotos&fotos=irgendwas).
Das Problem is nun das mein menu zwar die richtige stelle anzeigt jedoch automatisch zuklappt. D.h. wenn ich die nächste gallerie anschauen möchte muss ich wieder durch das ganz menu klicken. Hat jemand eine idee wie ich das ändern könnte? Hier mal der code. (hab das javasript einfach mal dazu kopiert)
Ich hab wieder mal ne Frage. Ich habe folgendes aufklappbares Menu. Wenn ich einen Link als ziehl angebe (index2.php?site=fotos) dann funkioniert es, es bleibt offen. Für meine gallerie benutze ich jedoch immer das selbe file und ändere bloss den Pfad für das verzeichnis, das ausgelesen werden soll. (index2.php?site=fotos&fotos=irgendwas).
Das Problem is nun das mein menu zwar die richtige stelle anzeigt jedoch automatisch zuklappt. D.h. wenn ich die nächste gallerie anschauen möchte muss ich wieder durch das ganz menu klicken. Hat jemand eine idee wie ich das ändern könnte? Hier mal der code. (hab das javasript einfach mal dazu kopiert)
PHP-Code:
<?php
// Javascript Teil
echo " function toggle(id) {\n";
echo " if(document.getElementById) {\n";
echo " var el = document.getElementById(id);\n";
echo " el.style.display = (el.style.display == 'none') ? 'block' : 'none';\n";
echo " }\n";
echo " }\n";
// Menu array
$fotos = array();
$fotos['Main'] = 'index2.php?site=fotos&fotos=1';
$fotos['menu1']['sub1']['pos1'] = 'index2.php?site=fotos&fotos=2';
$fotos['menu1']['sub1']['pos2'] = 'index2.php?site=fotos&fotos=3';
$fotos['menu1']['sub2']['pos1'] = 'index2.php?site=fotos&fotos=4';
$fotos['menu2']['sub1']['pos1'] = 'index2.php?site=fotos&fotos=5';
//Menu
function array_search_recursive($needle, $haystack) {
$pos = null;
$keys = array_keys($haystack);
while(!$pos && (list($garbage, $value)=each($keys))) {
if(is_scalar($haystack[$value])) {
if($haystack[$value] === $needle)
$pos[] = $value;
} elseif(is_array($haystack[$value])) {
if($pos = array_search_recursive($needle, $haystack[$value]))
array_unshift($pos, $value);
}
}
return $pos;
}
function draw_menu($fotos, $preserve, &$id) {
if($id == 0)
echo "<div id=\"$id\">\r\n<ul class=\"menu\">\r\n";
else
echo "<div id=\"$id\" style=\"display:none;\">\r\n<ul class=\"menu\">\r\n";
$id += 1;
foreach($fotos as $key=>$value) {
if(is_array($value)) {
if(@in_array($key, $preserve))
$toggle = $id;
echo "<li class=\"menu\"><a class=\"menu\" href=\"#\" onclick=\"toggle($id);\">$key</a>\r\n";
draw_menu($value, $preserve, $id);
} else {
echo "<li class=\"menufile\">";
if(@in_array($key, $preserve))
echo "<a class=\"menulive\" href=\"$value\">$key</a>";
else
echo "<a class=\"menu\" href=\"$value\">$key</a>";
echo "\r\n";
}
}
echo "[/list]\r\n</div>\r\n";
if(isset($toggle))
echo "<script language=\"javascript\">toggle($toggle);</script>\r\n";
}
$id = 0;
$base = basename($_SERVER['PHP_SELF']);
$self = isset($_SERVER['QUERY_STRING']) ? $base.'?'.$_SERVER['QUERY_STRING'] : $base;
$preserve = array_search_recursive($self, $fotos);
draw_menu($fotos, $preserve, $id);
?>
Kommentar