Menü - links nicht aktiv

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Menü - links nicht aktiv

    Hallo und Guten Tag,

    hab mir das Menü von frische Zitronen genommen. Die Links werden aktiv, wenn man in der csv. Datei z.B aktuell.php schreibt, wenn man jedoch aktuell.php?lang=de schreibt, dann passiert das Aktiv werden nicht.
    PHP Code:
    <?php
    if(defined('E_STRICT') && function_exists('date_default_timezone_set')) {
      
    date_default_timezone_set("Europe/Berlin");
    }
    else 
    error_reporting(E_ALL);



    $s basename($_SERVER['SCRIPT_NAME']);
    //basename extrahiert den Namen einer Datei aus einem Pfad
    echo OMList($s);


    function 
    OMList($site) {
      
    $site str_replace('''',$site);



        switch(
    $_GET['lang']){
        case 
    "en":
    $menu 'en.csv';
      break;
        case 
    "it":
    $menu 'it.csv';
      break;
        case 
    "ru":
    $menu 'ru.csv';
      break;
    case 
    "th":
      
    $menu 'th.csv';
      break;
      }
        
    $cr chr(13).chr(10);
      
    $nav '<ul>'.$cr;
      
    $li 0$dat file($menu);


      for(
    $i=0$i<count($dat); $i++) {
        
    $x explode('|',trim($dat[$i]));
        if(
    $x[0]) {
          
    $link $x[0]; $s $x[1];
          
    $level 0;
          while (
    strpos($link,'-') === 0) {
            
    $level++; $link substr($link,1);
                    
          }        
          if(
    $level $li+2) {
            if(
    $level <= $li && $i>0) {
              
    $nav .= '</li>'.$cr;
            }
            if(
    $level $li) {
              
    $li++; $nav .= '<ul>'.$cr;
            }
            while (
    $level $li) {
              
    $li--; $nav .= str_repeat('  '$li+1).'</ul></li>'.$cr;
            }
            
    $nav .= str_repeat('  '$li+1);
            if(
    $s == $site) {
              
    $ul $li;
              
    $nav .= '<li id="active"><span>'.$link.'</span>';            
            }
            else {
              
    $nav .= '<li><a href="';
              
    $nav .= ''$s .'" title="'.$link.'">'.$link.'</a>';
            }
          }
        }
      }
      
    $nav .= '</li>'.$cr;
      while (
    $li) {
        
    $li--; $nav .= str_repeat('  '$li+1).'</ul></li>'.$cr;
      }
      
    $nav .= '</ul>'.$cr;
      return 
    $nav;
    }
    ?>
    Habt Ihr mir da eventuell Hilfe.
    vielen Dank im voraus.
    schischi
    Last edited by schischi; 14-07-2010, 11:35. Reason: fehler

  • #2
    Originally posted by schischi View Post
    Hallo und Guten Tag,

    hab mir das Menü von frische Zitronen genommen. Die Links werden aktiv, wenn man in der csv. Datei z.B aktuell.php schreibt, wenn man jedoch aktuell.php?lang=de schreibt, dann passiert das Aktiv werden nicht.
    Hallo,

    ich kenne das Script nicht, aber du hast dir eigentlich in deiner Frage schon selbst die Antwort gegeben warum das was schief laufen kann.

    Weil aktuell.php != aktuell.php?lang=de

    Das heist wenn da auf aktuell.php verglichen wird dann kann aktuell.php?lang=de nichts passieren, bzw. muss die Wahrheitsbedingung ja ins leere laufen. Das heist da muss du einen Codeteilschaffen der prüft ob in einem Vergleichstring aktuell.php enthalten ist. Dazu ist preg_match ganz gut geeignet.

    Gruß litter
    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
    http://www.lit-web.de

    Comment


    • #3
      Originally posted by litterauspirna View Post
      Das heist da muss du einen Codeteilschaffen der prüft ob in einem Vergleichstring aktuell.php enthalten ist. Dazu ist preg_match ganz gut geeignet.
      Nein, das ist die Spatzenkanone.
      Wirklich gut geeignet sind für sowas Stringfunktionen wie strpos.


      Allerdings weiß ich nicht, ob dieser Vergleich hier ausreicht.
      Wenn aktuell.php?lang=de und aktuell.php?lang=en eigene Links darstellen, die getrennt „aktiv“ dargestellt werden sollen, dann muss vermutlich der Querystring in den Vergleich einbezogen werden.

      Um dazu genaueres zu sagen, ist mir die Problembeschreibung aber zu unspezifisch ...


      Originally posted by schischi
      hab mir das Menü von frische Zitronen genommen.
      Klingt nach dem Namen einer politisch viel zu korrekten Punk-Band ...

      Bitte geh nicht davon aus, dass wir wissen, wo du dir welche Scripte hergeholt hast. Gib' also in solchen Fällen immer mindestens einen Link auf die Scriptquelle an.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Comment


      • #4
        @litterauspirna,
        genau, vergleichen muss man dies!
        bei einem deutschen Menü ist das kein Problem und dies wird im Script so getan:
        PHP Code:
        if($s == $site
        da ist es ja kein Problem, da seite aktuell.php == aktuell.php im menü ist.

        @wahsaga
        strpos, danke für den Tip!
        es sollte eigentlich nur verglichen werden ob aktuell.php?lang=de == aktuell.php?lang=de ist!

        entschuldigung für die Annahme, frische zitronen frische-zitronen.de | Webdesign | Dynamisches PHP-Men und kleine Webseitenvorlage
        da geht dies momtan nicht, daher diesen link Dynamisch verschachteltes PHP Menü - jukemedia

        Punkrockband !!

        Comment


        • #5
          weiss nicht ob dies die feine englische Art ist, dies zu lösen, lasse mich auch gerne zu etwas besserem belehren.

          hab mal so gelöst:
          PHP Code:
          switch($_GET['lang']){
              case 
          "en":
          $seite $site.'?lang=en';
            break;
              case 
          "it":
          $seite $site.'?lang=it';
            break;
              case 
          "ru":
          $seite $site.'?lang=ru';
            break;
          case 
          "th":
          $seite $site.'?lang=th';
            break;
            }  
             
              if(
          $s == $seite) { 

          Comment


          • #6
            Ohne default? Und wieso speicherst du die Sprachauswahl nicht einfach in einer Session? Dass macht die Konstruktion von Links an anderen Stellen deutlich einfacher.

            Comment


            • #7
              thanks @onemorenerd ,
              habs nun mit default geschrieben! Mit Session komm ich noch nicht klar, werd mich da noch schlau schauen.

              Comment

              Working...
              X