Kom ihåg mig?
Home Menu

Menu


Multilevel meny

Ämnesverktyg Visningsalternativ
Oläst 2009-01-11, 16:16 #1
Firekicker Firekicker är inte uppkopplad
Medlem
 
Reg.datum: Mar 2003
Inlägg: 86
Firekicker Firekicker är inte uppkopplad
Medlem
 
Reg.datum: Mar 2003
Inlägg: 86
Hej!

Jag har problem med en meny som jag har försökt göra med hjälp av en tutorial.
Jag vill att någon hjälper mig att få den att fungera samt gör så att den fungerar som en multi level (räcker med mainmenu->submenu).

se Sidan http://www.adeniasystems.se/test/home/index.php
samt
http://www.adeniasystems.se/test/home/index2.php <- jag vill att menyn skall vara en multilevel meny - om jag för musen över start skall en lista med undermenyerna visa s där och vara klickbara. jag har en kod för multilevel menyn som kan behöva justeras. Den fungerar med vanlig html kod <ul>[*] så min förhoppning är att php skal lfungera ihop med den.

Budget 500 kr (exkl. moms) helst på Faktura minst 20 dagar.
JBN Media (800409-7641) är en enskild firma med f-skatt med bra ratingvärde. Någon som kan fixa det ?

Kod:
$sql = "SELECT id, label, link_url, parent_id FROM dyn_menu ORDER BY parent_id, id ASC"; 
$items = mysql_query($sql);
while ($obj = mysql_fetch_object($items)) {
  if ($obj->parent_id == 0) {
    $parent_menu[$obj->id]['label'] = $obj->label;
    $parent_menu[$obj->id]['link'] = $obj->link_url;
  } else {
    $sub_menu[$obj->id]['parent'] = $obj->parent_id;
    $sub_menu[$obj->id]['label'] = $obj->label;
    $sub_menu[$obj->id]['link'] = $obj->link_url;
    $parent_menu[$obj->parent_id]['count']++;
  }
}
mysql_free_result($items);

function dyn_menu($parent_array, $sub_array, $qs_val = "menu", $main_id = "nav", $sub_id = "subnav", $extra_style = "foldout") {
  $menu = "<ul id=\"".$main_id."\">\n";
  foreach ($parent_array as $pkey => $pval) {
    if (!empty($pval['count'])) {
      $menu .= " <li><a class=\"".$extra_style."\" href=\"".$pval['link']."?".$qs_val."=".$pkey."\">".$pval['label']."</a></li>\n";
    } else {
      $menu .= " <li><a href=\"".$pval['link']."\">".$pval['label']."</a></li>\n"; 
    }
    if (!empty($_REQUEST[$qs_val])) {
      $menu .= "<ul id=\"".$sub_id."\">\n";
      foreach ($sub_array as $sval) {
        if ($pkey == $_REQUEST[$qs_val] && $pkey == $sval['parent']) {
          $menu .= "<li><a href=\"".rebuild_link($sval['link'], $qs_val, $sval['parent'])."\">".$sval['label']."</a></li>\n";
        }
      }
      $menu .= "</ul>\n";
    }
  }
  $menu .= "</ul>\n";
  return $menu;
}

foreach ($parent_array as $pkey => $pval) {
  if (!empty($pval['count'])) {
    $menu .= " <li><a class=\"".$extra_style."\" href=\"".$pval['link']."?".$qs_val."=".$pkey."\">".$pval['label']."</a></li>\n";
  } else {
    $menu .= " <li><a href=\"".$pval['link']."\">".$pval['label']."</a></li>\n"; 
  }}

if (!empty($_REQUEST[$qs_val])) {
  $menu .= "<ul id=\"".$sub_id."\">\n";
  foreach ($sub_array as $sval) {
    if ($pkey == $_REQUEST[$qs_val] && $pkey == $sval['parent']) {
      $menu .= "<li><a href=\"".rebuild_link($sval['link'], $qs_val, $sval['parent'])."\">".$sval['label']."</a></li>\n";
    }
  }
  $menu .= "</ul>\n";
  }


function rebuild_link($link, $parent_var, $parent_val) {
  $link_parts = explode("?", $link);
  $base_var = "?".$parent_var."=".$parent_val;
  if (!empty($link_parts[1])) {
    $link_parts[1] = str_replace("&amp;", "##", $link_parts[1]);
    $parts = explode("##", $link_parts[1]);
    $newParts = array();
    foreach ($parts as $val) {
      $val_parts = explode("=", $val);
      if ($val_parts[0] != $parent_var) {
        array_push($newParts, $val);
      }
    }
    if (count($newParts) != 0) {
      $qs = "&amp;".implode("&amp;", $newParts);
    } 
    return $link_parts[0].$base_var.$qs;
  } else {
    return $link_parts[0].$base_var;
  }
} 

echo dyn_menu($parent_menu, $sub_menu, "menu", "nav", "subnav");
Firekicker är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-01-11, 23:24 #2
Firekicker Firekicker är inte uppkopplad
Medlem
 
Reg.datum: Mar 2003
Inlägg: 86
Firekicker Firekicker är inte uppkopplad
Medlem
 
Reg.datum: Mar 2003
Inlägg: 86
tillsatt - fixat =)
Firekicker är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 15:05.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017