Seite 1 von 1

kundenlogin mit geschützer kategorie

Verfasst: Di 13. Sep 2005, 06:58
von tappler
hallo leute,

ich hab mich bereits durch die foren gewühlt, aber noch immer keine richtige antwort gefunden.

ich möchte eine kategorie "downloads" anlegen, welche nur für eingeloggte kunden zugänglich bzw. oder auch sichtbar ist.

ich habe ein tolles beispiel gefunden (interner bereich) auf der Contenido-Testseite unter:
http://www.jubec.de/44/cms/front_content.php?idcat=30

Diese Site ist toll, aber leider kein Hinweis auf die verwendeten Module.

Vielleicht kann mir jemand helfen?

Brauche ich eine spezielles Modul für diesen zweck oder kann ich dieses "internen Bereich" mit dem Standardlogin und dem Backendfunktionen von 4.4.5 realisieren?

Schöne Grüße
h.t.

Verfasst: Mi 14. Sep 2005, 10:30
von emergence
frag doch einfach mal beim autor der website nach...
was da genau verwendet wurde kann man so schlecht sagen..

Verfasst: Mi 14. Sep 2005, 16:07
von m2Designer
Ich kann mir im etwa denken wie dieses Login realisiert wurde:

1. Als Login - > Simple Login Modul 8)
2. Und das Modul Navigation so verändert das bei der Erstellung des Menüpunktes eine Abfrage kommt, ob der entsprechende User Zugriffsrecht auf die jeweilige Kategorie hat. Die Kategorie musst du lediglich im Backend unter Content->Kategorie schützen.

Die entsprechende Abfrage:

if ($db->f("public") == 1 || $perm->have_perm_area_action_item("str","front_allow", $db->f("idcat")) || $perm->have_perm())
{


Hier ein Beispiel anhand der Servicenavigation aus Contenido:

Code: Alles auswählen

<?php

include_once($cfg["path"]["contenido"].$cfg["path"]["includes"]."functions.con.php");

$catStart = "CMS_VALUE[0]";

if ($catStart != "") {
  $catIds = conDeeperCategoriesArray($catStart);

  echo '<center><table cellpadding="2" cellspacing="2" border="0" width="200">';
  
  if ( is_array($catIds) ) {

    foreach($catIds as $key=>$val) {
      // Ersten Eintrag ueberspringen, weil das der Menupunkt selbst ist
      // und nicht angezeigt werden soll.
      if ($key != 0) {

        $sql = "SELECT CAT.idcat AS idcat, name FROM ".
               $cfg["tab"]["cat"]." AS CAT, ".
               $cfg["tab"]["cat_lang"]." AS CATLANG 
               WHERE CAT.idcat = ".$val."
               AND CAT.idcat = CATLANG.idcat
               AND CATLANG.idlang = '$lang'
               AND CATLANG.visible = '1'";

        $db->query($sql);

        $db2 = new DB_Contenido;
        
        if ($db->f("public") == 1 || $perm->have_perm_area_action_item("str","front_allow", $db->f("idcat")) || $perm->have_perm())

        while ( $db->next_record() ) {
        
           $target = "_self";
          
          /* Check for redirect and new window flag */
          $sql = "SELECT idart FROM ".$cfg["tab"]["cat_art"]." WHERE idcat='". $db->f("idcat")."' AND is_start = '1'";
          $db2->query($sql);
          if ($db2->next_record())
          {
                $cidart = $db2->f("idart");
                $sql = "SELECT external_redirect FROM ".$cfg["tab"]["art_lang"]." WHERE idart = '$cidart' AND idlang='$lang'";
                $db2->query($sql);
                if ($db2->next_record())
                {
                    $target = ( $db2->f("external_redirect") == 0 ) ? '_self' : '_blank';
                }
          }
          echo '<tr><td height="21" style="border: 0px; border:1px; border-color: ##CCCCFF; border-style: dashed; background-color: #FFFFFF; padding-left:7px; padding-right:7px;">
          <center><a style="text-decoration:none; font-style: italic; font-weight: bold; color: #000000" target="'.$target.'" href="front_content.php?idcat='.$db->f("idcat").'">'.$db->f("name").'</a></center></td></tr>';
        } // end while
      } // if
    }  // end foreach
  } // end if (is_array)

  echo '</tr></table></center>';

}
?>

Verfasst: Fr 16. Sep 2005, 19:37
von tappler
hallo,

danke für eure antworten.

>> frag doch einfach mal beim autor der website nach...

hab ich versucht, leider keine antwort . . .

ich werde mal den tipp von m2Designer nachgehen.

gruss h.t.

Hmm, wo baue ich die Abfrage in der Hauptnavi ein?

Verfasst: Mi 12. Okt 2005, 08:11
von stxinden
Hallo m2designer,

der Ansatz funktioniert. Leider ist es bei mir so, dass zwar in der Hauptnavigation alle Menüpunkte der 1. Ebene angezeigt werden, jedoch die zweite Ebene nicht. Erst nach Login. Dies geschieht obwohl nur eine Kategorie geschützt ist.

Verstehe ich nicht.

Gruß
stx

Verfasst: Mi 12. Okt 2005, 09:49
von m2Designer
Hi, kannst du das Modul mal hier posten? :D

Gruß Matthias

Verfasst: Mi 12. Okt 2005, 09:54
von stxinden
Also ich habe hier nur mal das Output geposted, da wahrscheinlich ja auch nur dieses von Bedeutung ist:

Code: Alles auswählen

<?php 

/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname   :     Navigation 1.1 
* Author      :     Jan Lengowski 
* Copyright   :     Contenido - four for business 
* Created     :     15-05-2003 
* Modified    :     26-05-2003 
* Modified    :     25-06-2004 - Andreas Jänschke (4. Ebene eingefügt) 
************************************************/ 

if ( !is_object($db2) ) { 
    $db2 = new DB_Contenido; 
} 

/** 
 * Check if a category is child 
 * of another category 
 * 
 * @return boolean true/false 
 * @author Jan Lengowski <Jan.Lengowski@4fb.de> 
 * @copyright four for business AG 2003 
 */ 
if (!function_exists("catIsChildOf")) 
{ 
    function catIsChildOf($id, $idparent) { 
    
        global $cfg, $client, $lang; 
    
        $db = new DB_Contenido; 
    
        $parent = $id; 
    
        while ( $parent != 0 ) { 
    
            $sql = "SELECT 
                        a.parentid 
                    FROM 
                        ".$cfg["tab"]["cat"]." AS a, 
                        ".$cfg["tab"]["cat_lang"]." AS b 
                    WHERE 
                        a.idclient  = '".$client."' AND 
                        b.idlang    = '".$lang."' AND 
                        a.idcat     = b.idcat AND 
                        a.idcat   = '".$parent."'"; 
    
            $db->query($sql); 
            $db->next_record(); 
    
            $parent = $db->f("parentid"); 
    
            if ($parent == $idparent) { 
                return true; 
            } 
    
        } 
    
        return false; 
    
    } 
} 

if ( catIsChildOf($idcat, "CMS_VALUE[0]") ) { 
    $sel_idcat = $idcat; 
} else { 
    $sel_idcat = "CMS_VALUE[0]"; 
} 

/* Include Template Class */ 
include_once($cfg["path"]["contenido"] . 'classes/class.template.php'); 

/** 
 * Array storing alle the 
 * navigation data 
 */ 
$navitems = array(); 


/* Template Instance */ 
$tpl = new Template; 

/** 
 * Recursive function for creating 
 * the navigation array 
 * @param Int $idcat Category id 
 */ 
function nav($idcat) { 

        global $navitems, $client, $lang, $cfg; 

        $db  = new DB_Contenido; 
        $db2 = new DB_Contenido; 

        $sql = "SELECT parentid FROM ".$cfg["tab"]["cat"]." WHERE idcat = '$idcat'"; 

        $db->query($sql); 
        $db->next_record(); 

        $parentid = $db->f("parentid"); 

        if ( $parentid == 0 ) { 

           if ( $idcat != "CMS_VALUE[0]" ){ 

                $navitems = array(); 
              
                $sql = "SELECT 
                            A.idcat, 
                            C.name 
                        FROM 
                            ".$cfg["tab"]["cat_tree"]." AS A, 
                            ".$cfg["tab"]["cat"]." AS B, 
                            ".$cfg["tab"]["cat_lang"]." AS C 
                        WHERE 
                            A.idcat     = B.idcat   AND 
                            B.idcat     = C.idcat   AND 
                            B.idclient  = '$client' AND 
                            C.idlang    = '$lang'   AND 
                            C.visible   = '1'       AND 
                            B.parentid  = 'CMS_VALUE[0]' 
                        ORDER 
                            BY A.idtree"; 

                      $db->query($sql); 

                      while ($db->next_record()) { 

                            /* Check for external redirects... */ 
                            $sql = "SELECT 
                                        a.external_redirect AS ext 
                                    FROM 
                                        ".$cfg["tab"]["art_lang"]." AS a, 
                                        ".$cfg["tab"]["cat_art"]." AS b, 
                                        ".$cfg["tab"]["cat"]." AS c 
                                    WHERE 
                                        b.idcat     = '".$db->f("idcat")."' AND 
                                        b.is_start  = '1' AND 
                                        c.idclient  = '".$client."' AND 
                                        c.idcat     = b.idcat AND 
                                        a.idart     = b.idart AND 
                                        a.idlang    = '".$lang."'"; 

                            $db2->query($sql); 
                            $db2->next_record(); 

                            $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank'; 

                            $navitems[$db->f("idcat")] = array("idcat"      => $db->f("idcat"), 
                                                                "name"      => $db->f("name"), 
                                                                "target"    => $target); 
                      } 

           } 
            
           return true; 
        } 

        $sql = "SELECT 
                    A.idcat, 
                    C.name 
                FROM 
                    ".$cfg["tab"]["cat_tree"]." AS A, 
                    ".$cfg["tab"]["cat"]." AS B, 
                    ".$cfg["tab"]["cat_lang"]." AS C 
                WHERE 
                    A.idcat     = B.idcat   AND 
                    B.idcat     = C.idcat   AND 
                    B.idclient  = '$client' AND 
                    C.idlang    = '$lang'   AND 
                    C.visible   = '1'       AND 
                    B.parentid  = '$parentid' 
                ORDER BY 
                    A.idtree"; 

        $db->query($sql); 

        while ($db->next_record()) { 

                /* Check for external redirects... */ 
                $sql = "SELECT 
                            a.external_redirect AS ext 
                        FROM 
                            ".$cfg["tab"]["art_lang"]." AS a, 
                            ".$cfg["tab"]["cat_art"]." AS b, 
                            ".$cfg["tab"]["cat"]." AS c 
                        WHERE 
                            b.idcat     = '".$db->f("idcat")."' AND 
                            b.is_start  = '1' AND 
                            c.idclient  = '".$client."' AND 
                            c.idcat     = b.idcat AND 
                            a.idart     = b.idart AND 
                            a.idlang    = '".$lang."'"; 

                $db2->query($sql); 
                $db2->next_record(); 

                $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank'; 
                
                $tmp_nav[$db->f("idcat")] = array("idcat"   => $db->f("idcat"), 
                                                  "name"    => $db->f("name"), 
                                                  "target"  => $target); 
        } 

        $tmp_nav[$idcat]["sub"] = $navitems; 
        $navitems = $tmp_nav; 

        /* Function call */ 
        nav($parentid); 

}  // end function 

$sql = "SELECT 
            A.idcat, 
            C.name 
        FROM 
            ".$cfg["tab"]["cat_tree"]." AS A, 
            ".$cfg["tab"]["cat"]." AS B, 
            ".$cfg["tab"]["cat_lang"]." AS C 
        WHERE 
            A.idcat     = B.idcat   AND 
            B.idcat     = C.idcat   AND 
            B.idclient  = '$client' AND 
            C.idlang    = '$lang'   AND 
            C.visible   = '1'       AND 
            B.parentid  = '$sel_idcat' 
        ORDER BY 
            A.idtree"; 

$db->query($sql); 

while ( $db->next_record() ) { 

        /* Check for external redirects... */ 
        $sql = "SELECT 
                    a.external_redirect AS ext 
                FROM 
                    ".$cfg["tab"]["art_lang"]." AS a, 
                    ".$cfg["tab"]["cat_art"]." AS b, 
                    ".$cfg["tab"]["cat"]." AS c 
                WHERE 
                    b.idcat     = '".$db->f("idcat")."' AND 
                    b.is_start  = '1' AND 
                    c.idclient  = '".$client."' AND 
                    c.idcat     = b.idcat AND 
                    a.idart     = b.idart AND 
                    a.idlang    = '".$lang."'"; 

        $db2->query($sql); 
        $db2->next_record(); 

        $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank'; 

        $navitems[$db->f("idcat")] = array("idcat"  => $db->f("idcat"), 
                                           "name"   => $db->f("name"), 
                                           "target" => $target); 
} 
/* Create Navigation Array */ 
nav($sel_idcat); 

/* Start Output buffer */ 
ob_start(); 

echo '<table cellspacing="0" cellpadding="0" border="0">'; 

foreach ($navitems as $key => $data) { 

    /* 1. Navigations Ebene */ 
    $tpl->reset(); 
    $tpl->set('d', 'NAME',  $data['name']); 
    $tpl->set('d', 'TARGET', $data['target']); 
    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'])); 
    $tpl->next(); 

    if ($idcat == $data['idcat'] || is_array($data['sub'])) { 
        $tpl->generate('templates/navfirst_on.html'); 
    } else { 
        $tpl->generate('templates/navfirst_off.html'); 
    } 

    if (is_array($data['sub'])) { 

        foreach ($data['sub'] as $key => $data) { 

            /* 2. Navigations Ebene */ 
            $tpl->reset(); 
            $tpl->set('d', 'NAME',  $data['name']); 
            $tpl->set('d', 'TARGET', $data['target']); 
            $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'])); 
            $tpl->next(); 

            if ($idcat == $data['idcat'] || is_array($data['sub'])) { 
                $tpl->generate('templates/navsecond_on.html'); 
            } else { 
                $tpl->generate('templates/navsecond_off.html'); 
            } 

            if (is_array($data['sub'])) { 

                foreach ($data['sub'] as $key => $data) { 

                    /* 3. Navigations Ebene */ 
                    $tpl->reset(); 
                    $tpl->set('d', 'NAME',  $data['name']); 
                    $tpl->set('d', 'TARGET', $data['target']); 
                    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'])); 
                    $tpl->next(); 

                    if ($idcat == $data['idcat']) { 
                        $tpl->generate('templates/navthird_on.html'); 
                    } else { 
                        $tpl->generate('templates/navthird_off.html'); 
                    } 

                  if (is_array($data['sub'])) { 
        
                      foreach ($data['sub'] as $key => $data) { 
        
                          /* 4. Navigations Ebene */ 
                          $tpl->reset(); 
                          $tpl->set('d', 'NAME', $data['name']); 
                          $tpl->set('d', 'TARGET', $data['target']); 
                          $tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat'])); 
                          $tpl->next(); 
        
                          if ($idcat == $data['idcat']) { 
                              $tpl->generate('templates/navfourth_on.html'); 
                          } else { 
                              $tpl->generate('templates/navfourth_off.html'); 
                          } 
        
                  } // end foreach 
                  } // end if 

            } // end foreach 
            } // end if 

      } // end foreach 

    } // end if 
} // end foreach 

echo '</table>'; 

/* Read out buffer */ 
$html = ob_get_contents(); 

/* Clean buffer */ 
ob_end_clean(); 

/* Output buffer-contents */ 
echo $html; 

?> 
Wo muss das jetzt genau rein?

Verfasst: Mi 12. Okt 2005, 10:14
von m2Designer
Spontan würd ich sagen, es müsste so aussehen:

Code: Alles auswählen

<?php 

/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname   :     Navigation 1.1 
* Author      :     Jan Lengowski 
* Copyright   :     Contenido - four for business 
* Created     :     15-05-2003 
* Modified    :     26-05-2003 
* Modified    :     25-06-2004 - Andreas Jänschke (4. Ebene eingefügt) 
************************************************/ 

if ( !is_object($db2) ) { 
    $db2 = new DB_Contenido; 
} 

/** 
 * Check if a category is child 
 * of another category 
 * 
 * @return boolean true/false 
 * @author Jan Lengowski <Jan.Lengowski@4fb.de> 
 * @copyright four for business AG 2003 
 */ 
if (!function_exists("catIsChildOf")) 
{ 
    function catIsChildOf($id, $idparent) { 
    
        global $cfg, $client, $lang; 
    
        $db = new DB_Contenido; 
    
        $parent = $id; 
    
        while ( $parent != 0 ) { 
    
            $sql = "SELECT 
                        a.parentid 
                    FROM 
                        ".$cfg["tab"]["cat"]." AS a, 
                        ".$cfg["tab"]["cat_lang"]." AS b 
                    WHERE 
                        a.idclient  = '".$client."' AND 
                        b.idlang    = '".$lang."' AND 
                        a.idcat     = b.idcat AND 
                        a.idcat   = '".$parent."'"; 
    
            $db->query($sql); 
            $db->next_record(); 
    
            $parent = $db->f("parentid"); 
    
            if ($parent == $idparent) { 
                return true; 
            } 
    
        } 
    
        return false; 
    
    } 
} 

if ( catIsChildOf($idcat, "CMS_VALUE[0]") ) { 
    $sel_idcat = $idcat; 
} else { 
    $sel_idcat = "CMS_VALUE[0]"; 
} 

/* Include Template Class */ 
include_once($cfg["path"]["contenido"] . 'classes/class.template.php'); 

/** 
 * Array storing alle the 
 * navigation data 
 */ 
$navitems = array(); 


/* Template Instance */ 
$tpl = new Template; 

/** 
 * Recursive function for creating 
 * the navigation array 
 * @param Int $idcat Category id 
 */ 
function nav($idcat) { 

        global $navitems, $client, $lang, $cfg; 

        $db  = new DB_Contenido; 
        $db2 = new DB_Contenido; 

        $sql = "SELECT parentid FROM ".$cfg["tab"]["cat"]." WHERE idcat = '$idcat'"; 

        $db->query($sql); 
        $db->next_record(); 

        $parentid = $db->f("parentid"); 

        if ( $parentid == 0 ) { 

           if ( $idcat != "CMS_VALUE[0]" ){ 

                $navitems = array(); 
              
                $sql = "SELECT 
                            A.idcat, 
                            C.name 
                        FROM 
                            ".$cfg["tab"]["cat_tree"]." AS A, 
                            ".$cfg["tab"]["cat"]." AS B, 
                            ".$cfg["tab"]["cat_lang"]." AS C 
                        WHERE 
                            A.idcat     = B.idcat   AND 
                            B.idcat     = C.idcat   AND 
                            B.idclient  = '$client' AND 
                            C.idlang    = '$lang'   AND 
                            C.visible   = '1'       AND 
                            B.parentid  = 'CMS_VALUE[0]' 
                        ORDER 
                            BY A.idtree"; 

                      $db->query($sql); 

                      while ($db->next_record()) { 

                            /* Check for external redirects... */ 
                            $sql = "SELECT 
                                        a.external_redirect AS ext 
                                    FROM 
                                        ".$cfg["tab"]["art_lang"]." AS a, 
                                        ".$cfg["tab"]["cat_art"]." AS b, 
                                        ".$cfg["tab"]["cat"]." AS c 
                                    WHERE 
                                        b.idcat     = '".$db->f("idcat")."' AND 
                                        b.is_start  = '1' AND 
                                        c.idclient  = '".$client."' AND 
                                        c.idcat     = b.idcat AND 
                                        a.idart     = b.idart AND 
                                        a.idlang    = '".$lang."'"; 

                            $db2->query($sql); 
                            $db2->next_record(); 

                            $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
							if ($db->f("public") == 1 || $perm->have_perm_area_action_item("str","front_allow", $db->f("idcat")) || $perm->have_perm()) 
							

                            $navitems[$db->f("idcat")] = array("idcat"      => $db->f("idcat"), 
                                                                "name"      => $db->f("name"), 
                                                                "target"    => $target); 
                      } 

           } 
            
           return true; 
        } 

        $sql = "SELECT 
                    A.idcat, 
                    C.name 
                FROM 
                    ".$cfg["tab"]["cat_tree"]." AS A, 
                    ".$cfg["tab"]["cat"]." AS B, 
                    ".$cfg["tab"]["cat_lang"]." AS C 
                WHERE 
                    A.idcat     = B.idcat   AND 
                    B.idcat     = C.idcat   AND 
                    B.idclient  = '$client' AND 
                    C.idlang    = '$lang'   AND 
                    C.visible   = '1'       AND 
                    B.parentid  = '$parentid' 
                ORDER BY 
                    A.idtree"; 

        $db->query($sql); 

        while ($db->next_record()) { 

                /* Check for external redirects... */ 
                $sql = "SELECT 
                            a.external_redirect AS ext 
                        FROM 
                            ".$cfg["tab"]["art_lang"]." AS a, 
                            ".$cfg["tab"]["cat_art"]." AS b, 
                            ".$cfg["tab"]["cat"]." AS c 
                        WHERE 
                            b.idcat     = '".$db->f("idcat")."' AND 
                            b.is_start  = '1' AND 
                            c.idclient  = '".$client."' AND 
                            c.idcat     = b.idcat AND 
                            a.idart     = b.idart AND 
                            a.idlang    = '".$lang."'"; 

                $db2->query($sql); 
                $db2->next_record(); 

                $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank'; 
				if ($db->f("public") == 1 || $perm->have_perm_area_action_item("str","front_allow", $db->f("idcat")) || $perm->have_perm()) 
				
                
                $tmp_nav[$db->f("idcat")] = array("idcat"   => $db->f("idcat"), 
                                                  "name"    => $db->f("name"), 
                                                  "target"  => $target); 
        } 

        $tmp_nav[$idcat]["sub"] = $navitems; 
        $navitems = $tmp_nav; 

        /* Function call */ 
        nav($parentid); 

}  // end function 

$sql = "SELECT 
            A.idcat, 
            C.name 
        FROM 
            ".$cfg["tab"]["cat_tree"]." AS A, 
            ".$cfg["tab"]["cat"]." AS B, 
            ".$cfg["tab"]["cat_lang"]." AS C 
        WHERE 
            A.idcat     = B.idcat   AND 
            B.idcat     = C.idcat   AND 
            B.idclient  = '$client' AND 
            C.idlang    = '$lang'   AND 
            C.visible   = '1'       AND 
            B.parentid  = '$sel_idcat' 
        ORDER BY 
            A.idtree"; 

$db->query($sql); 

while ( $db->next_record() ) { 

        /* Check for external redirects... */ 
        $sql = "SELECT 
                    a.external_redirect AS ext 
                FROM 
                    ".$cfg["tab"]["art_lang"]." AS a, 
                    ".$cfg["tab"]["cat_art"]." AS b, 
                    ".$cfg["tab"]["cat"]." AS c 
                WHERE 
                    b.idcat     = '".$db->f("idcat")."' AND 
                    b.is_start  = '1' AND 
                    c.idclient  = '".$client."' AND 
                    c.idcat     = b.idcat AND 
                    a.idart     = b.idart AND 
                    a.idlang    = '".$lang."'"; 

        $db2->query($sql); 
        $db2->next_record(); 

        $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
        if ($db->f("public") == 1 || $perm->have_perm_area_action_item("str","front_allow", $db->f("idcat")) || $perm->have_perm()) 
		 

        $navitems[$db->f("idcat")] = array("idcat"  => $db->f("idcat"), 
                                           "name"   => $db->f("name"), 
                                           "target" => $target); 
} 
/* Create Navigation Array */ 
nav($sel_idcat); 

/* Start Output buffer */ 
ob_start(); 

echo '<table cellspacing="0" cellpadding="0" border="0">'; 

foreach ($navitems as $key => $data) { 

    /* 1. Navigations Ebene */ 
    $tpl->reset(); 
    $tpl->set('d', 'NAME',  $data['name']); 
    $tpl->set('d', 'TARGET', $data['target']); 
    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'])); 
    $tpl->next(); 

    if ($idcat == $data['idcat'] || is_array($data['sub'])) { 
        $tpl->generate('templates/navfirst_on.html'); 
    } else { 
        $tpl->generate('templates/navfirst_off.html'); 
    } 

    if (is_array($data['sub'])) { 

        foreach ($data['sub'] as $key => $data) { 

            /* 2. Navigations Ebene */ 
            $tpl->reset(); 
            $tpl->set('d', 'NAME',  $data['name']); 
            $tpl->set('d', 'TARGET', $data['target']); 
            $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'])); 
            $tpl->next(); 

            if ($idcat == $data['idcat'] || is_array($data['sub'])) { 
                $tpl->generate('templates/navsecond_on.html'); 
            } else { 
                $tpl->generate('templates/navsecond_off.html'); 
            } 

            if (is_array($data['sub'])) { 

                foreach ($data['sub'] as $key => $data) { 

                    /* 3. Navigations Ebene */ 
                    $tpl->reset(); 
                    $tpl->set('d', 'NAME',  $data['name']); 
                    $tpl->set('d', 'TARGET', $data['target']); 
                    $tpl->set('d', 'HREF',  $sess->url('front_content.php?idcat='.$data['idcat'])); 
                    $tpl->next(); 

                    if ($idcat == $data['idcat']) { 
                        $tpl->generate('templates/navthird_on.html'); 
                    } else { 
                        $tpl->generate('templates/navthird_off.html'); 
                    } 

                  if (is_array($data['sub'])) { 
        
                      foreach ($data['sub'] as $key => $data) { 
        
                          /* 4. Navigations Ebene */ 
                          $tpl->reset(); 
                          $tpl->set('d', 'NAME', $data['name']); 
                          $tpl->set('d', 'TARGET', $data['target']); 
                          $tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat'])); 
                          $tpl->next(); 
        
                          if ($idcat == $data['idcat']) { 
                              $tpl->generate('templates/navfourth_on.html'); 
                          } else { 
                              $tpl->generate('templates/navfourth_off.html'); 
                          } 
        
                  } // end foreach 
                  } // end if 

            } // end foreach 
            } // end if 

      } // end foreach 

    } // end if 
} // end foreach 

echo '</table>'; 

/* Read out buffer */ 
$html = ob_get_contents(); 

/* Clean buffer */ 
ob_end_clean(); 

/* Output buffer-contents */ 
echo $html; 

?> 
Da ich selber aber noch im PHP Lernstadium bin kann ich keine Garantie geben :(

Gruß Matthias

Funktioniert leider nicht

Verfasst: Mi 12. Okt 2005, 10:40
von stxinden
Nun da muss ich leider enttäuschen es funktioniert leider nicht. Der zeigt mir jetzt gar keine Menüpunkte mehr an.

Gruß
Stefan

Verfasst: Mi 12. Okt 2005, 11:49
von m2Designer
Bis auf die Tatsache, daß sich in meinem Post ein Paar Klammern zuviel eingeschlichen hatten, versteh ich das leider auch nicht. Ich habe die Veränderung bei dem 3 Ebenenen Modul benutzt und es hat einwandfrei funktioniert :?

Ich glaube da haben wir schon das Problem

Verfasst: Mi 12. Okt 2005, 12:06
von stxinden
Also ich glaube, dass sich die beiden Module grundlegend voneinander unterscheiden. Daher wird wohl auch das Problem kommen.

Verfasst: Mi 12. Okt 2005, 12:15
von m2Designer
Das Original (3Ebenen) unterscheidet sich eigentlich kaum von dem 4 Ebenen Modul. Weiss jemand sonst hier Rat? :wink: