Menü - links nicht aktiv

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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
    Zuletzt geändert von schischi; 14.07.2010, 12:35. Grund: fehler

  • #2
    Zitat von schischi Beitrag anzeigen
    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

    Kommentar


    • #3
      Zitat von litterauspirna Beitrag anzeigen
      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 ...


      Zitat von 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.

      Kommentar


      • #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 !!

        Kommentar


        • #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) { 

          Kommentar


          • #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.

            Kommentar


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

              Kommentar

              Lädt...
              X