kundenlogin mit geschützer kategorie

Gesperrt
tappler
Beiträge: 14
Registriert: Sa 23. Jul 2005, 11:40
Kontaktdaten:

kundenlogin mit geschützer kategorie

Beitrag von tappler » Di 13. Sep 2005, 06:58

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.

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mi 14. Sep 2005, 10:30

frag doch einfach mal beim autor der website nach...
was da genau verwendet wurde kann man so schlecht sagen..
*** make your own tools (wishlist :: thx)

m2Designer
Beiträge: 41
Registriert: Mo 23. Aug 2004, 09:47
Kontaktdaten:

Beitrag von m2Designer » Mi 14. Sep 2005, 16:07

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>';

}
?>

tappler
Beiträge: 14
Registriert: Sa 23. Jul 2005, 11:40
Kontaktdaten:

Beitrag von tappler » Fr 16. Sep 2005, 19:37

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.

stxinden
Beiträge: 74
Registriert: Do 29. Jan 2004, 12:36
Wohnort: Aachen
Kontaktdaten:

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

Beitrag von stxinden » Mi 12. Okt 2005, 08:11

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
Stx

m2Designer
Beiträge: 41
Registriert: Mo 23. Aug 2004, 09:47
Kontaktdaten:

Beitrag von m2Designer » Mi 12. Okt 2005, 09:49

Hi, kannst du das Modul mal hier posten? :D

Gruß Matthias

stxinden
Beiträge: 74
Registriert: Do 29. Jan 2004, 12:36
Wohnort: Aachen
Kontaktdaten:

Beitrag von stxinden » Mi 12. Okt 2005, 09:54

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?
Stx

m2Designer
Beiträge: 41
Registriert: Mo 23. Aug 2004, 09:47
Kontaktdaten:

Beitrag von m2Designer » Mi 12. Okt 2005, 10:14

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
Zuletzt geändert von m2Designer am Mi 12. Okt 2005, 11:46, insgesamt 1-mal geändert.

stxinden
Beiträge: 74
Registriert: Do 29. Jan 2004, 12:36
Wohnort: Aachen
Kontaktdaten:

Funktioniert leider nicht

Beitrag von stxinden » Mi 12. Okt 2005, 10:40

Nun da muss ich leider enttäuschen es funktioniert leider nicht. Der zeigt mir jetzt gar keine Menüpunkte mehr an.

Gruß
Stefan
Stx

m2Designer
Beiträge: 41
Registriert: Mo 23. Aug 2004, 09:47
Kontaktdaten:

Beitrag von m2Designer » Mi 12. Okt 2005, 11:49

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 :?

stxinden
Beiträge: 74
Registriert: Do 29. Jan 2004, 12:36
Wohnort: Aachen
Kontaktdaten:

Ich glaube da haben wir schon das Problem

Beitrag von stxinden » Mi 12. Okt 2005, 12:06

Also ich glaube, dass sich die beiden Module grundlegend voneinander unterscheiden. Daher wird wohl auch das Problem kommen.
Stx

m2Designer
Beiträge: 41
Registriert: Mo 23. Aug 2004, 09:47
Kontaktdaten:

Beitrag von m2Designer » Mi 12. Okt 2005, 12:15

Das Original (3Ebenen) unterscheidet sich eigentlich kaum von dem 4 Ebenen Modul. Weiss jemand sonst hier Rat? :wink:

Gesperrt