tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
202
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    xtramen01 xtramen01 ist offline Mitglied Brokat
    Registriert seit
    Mar 2008
    Beiträge
    292
    Hallo Leute,

    ich habe ein kleines Problem mit einer rekursiven Navigation.
    Eigentlich funktioniert diese genau so wie sie soll.

    Jetzt möchte ich aber in der ersten Ebene und nur in dieser, händisch einen Navigationspunkt hinzufügen der an unterster Stelle erscheinen soll.

    Leider wird mir dieser neue Navigationspunkt auch immer in jeder Ebene angezeigt die ich anklicke.

    Also so soll es aussehen:

    Code :
    1
    2
    3
    4
    
    Punkt 1
    Punkt 2
    Punkt 3
    Punkt X <--- händisch hinzugefügt

    Und so sieht es bei mir aus:

    Code :
    1
    2
    3
    4
    5
    6
    
    Punkt 1
    Punkt X <--- händisch hinzugefügt
    Punkt 2
    Punkt X <--- händisch hinzugefügt
    Punkt 3
    Punkt X <--- händisch hinzugefügt

    Hat jemand eine Idee was ich falsch mache?

    Hier mal der Code der an enstsprechender Stelle kommentiert ist:

    PHP-Code:
       function get_navigation($parent_id '0'$lcatID NULL){
      
        global 
    $languages_id;
        static 
    $ebene 0;
        
        
    $menu NULL;
        
    $wert NULL;
        
        isset(
    $_GET['c']) ? $cid $_GET['c'] : $cid NULL;
        
        
    $cat_auswahl explode(SEPERATOR,$cid);

        if (!empty(
    $cid)){$cat_auswahl explode(SEPERATOR,$cid);}

        
    $sql tep_db_query("select c.section_id, c.categories_id, cd.categories_name, c.parent_id from " TABLE_CATEGORIES " c, " TABLE_CATEGORIES_DESCRIPTION " cd where c.parent_id = '".$parent_id."' and c.categories_id = cd.categories_id and cd.language_id='" . (int)$languages_id ."'  and (c.section_id = '0' || c.section_id = '".$_SESSION['s']."') order by sort_order, cd.categories_name");
        
    $menge tep_db_num_rows($sql);     



        for (
    $lo=0;$lo<$menge;$lo++)
        {
             
    $row tep_db_fetch_array($sql);          

             if (
    $ebene 0)
             {
                 
    $_naviClass 'naviChild';
                 }else{
                 
    $_naviClass 'navi';
             }         

               

             if (
    $ebene >= 1){$wert $ebene 10 15 'px';}

                 
    $_href tep_href_link(FILENAME_DEFAULT'c='.$lcatID.$row['categories_id']);
                 
             if (
    in_array($row['categories_id'], $cat_auswahl)) {
             
                 
    $menu .= '<div id="'.$_naviClass.'"><a href="'.$_href.'" class="'.$_naviClass.'" style="padding-left:'.$wert.'"><b>'.$row['categories_name'].'</b></a></div>';
                 }else{
                 
    $menu .= '<div id="'.$_naviClass.'"><a href="'.$_href.'" class="'.$_naviClass.'" style="padding-left:'.$wert.'">'.$row['categories_name'].'</a></div>';             
              }   


            if (isset(
    $cat_auswahl[$ebene]) && $row['categories_id'] == $cat_auswahl[$ebene])
             {  
                 
    $catid $row['categories_id'];             
                 
    $ebene++;
                 
    $menu .=  get_navigation($catid,$lcatID."$catid".SEPERATOR);         
                 
    $ebene--;             

             }
                          
        }
             
        
    // Dies ist der neue manuelle Navigationspunkt welcher an unterster Stelle stehen sollte..... 
        
    $menu .= '<div id="'.$_naviClass.'"><a href="'.$_href.'" class="'.$_naviClass.'" style="padding-left:'.$wert.'">Punkt X</a></div>';             
             
        return 
    $menu;
        

    Freue mich auf einen Vorschlag.
    Gruss und Danke
    Geändert von xtramen01 (16.12.09 um 16:15 Uhr)
     

  2. #2
    BadMatt BadMatt ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Beiträge
    105
    Du willst das ja nur in der ersten Ebene haben und nicht bei jedem Funktionsaufruf ...
    D.h. du solletst prüfen ob du noch ind er ersten Ebene bist;

    PHP-Code:
    {...}
    if(
    $parent_id == 0)
    {
        
    $menu .= 'eigener eintrag';
    }

    return 
    $menu;

     

Ähnliche Themen

  1. Problem mit rekursiver Funktion
    Von visiondpc im Forum PHP
    Antworten: 4
    Letzter Beitrag: 09.09.07, 16:09
  2. Parameter wird gelöscht bei rekursiver Funktion
    Von tantebootsy im Forum Javascript & Ajax
    Antworten: 6
    Letzter Beitrag: 19.05.06, 11:32
  3. Probleme bei rekursiver Funktion für Menü
    Von Klopfdreh im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 10.01.06, 14:21
  4. Antworten: 2
    Letzter Beitrag: 25.04.03, 02:31
  5. Problem mit rekursiver Funktion in ABAP
    Von SirNeo im Forum Sonstige Sprachen
    Antworten: 2
    Letzter Beitrag: 17.01.02, 10:14