Geteilte Navi soll ab zweite Ebene alle Ebenen anzeigen

Gesperrt
Freddy
Beiträge: 252
Registriert: Fr 6. Mai 2005, 21:01
Wohnort: Gummersbach
Kontaktdaten:

Geteilte Navi soll ab zweite Ebene alle Ebenen anzeigen

Beitrag von Freddy » Do 20. Jun 2013, 12:58

Hallo Zusammen,
benutze eine geteilte Navigation mit zwei Modulen. Das zweite Modul überprüft wo man sich befindet und zeigt die dazugehörige nächste Ebene an. Jetzt brauche ich eine Modul das ab der zeiten Ebene alle weiteren Ebenen anzeigt damit ich ein Pulldownmenü erzeugen kann. Kann mir jemand sagen was im Code verändert werden muss damit es alle weiteren Ebenen anzeigt?

Output:

Code: Alles auswählen

<?php

/* 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;

$sql = "SELECT
            A.idcat,
            C.name,
          C.public,
             C.idcatlang
        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,
                    a.idartlang AS idartlang
                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
                    c.idclient  = '".$client."' AND
                    c.idcat     = b.idcat AND
                    a.idart     = b.idart AND
                    a.idlang    = '".$lang."'";

        $db2->query($sql);
        #$db2->next_record();
      $flag = false;
      while ($db2->next_record()&&!$flag) {
           if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
           {
            $flag = true;
               $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
      
               $navitems[$db->f("idcat")] = array("idcat"  => $db->f("idcat"),
                                                  "name"   => $db->f("name"),
                                                  "public" => $db->f("public"),
                                            "idcatlang" => $db->f("idcatlang"),
                                                  "target" => $target);
           }
      }
}

/* Create Navigation Array */
if(($sel_idcat=='')||($sel_idcat=='0')){
    $cApiClient = new cApiClient($client);
    $sel_idcat = $cApiClient->getProperty('navigation', 'idcat_homepage');
}

nav($sel_idcat);

/* Start Navi Main */
if ( !function_exists("getCatnamesById") ) {

function getCatnamesById ( $idcat = 0, $idlang = 0 ) {
global $cfg;

$sql = "SELECT name FROM " . $cfg["tab"]["cat_lang"] . " WHERE idcat = " . $idcat . " AND idlang = " . $idlang;

$db = new DB_Contenido();
$db->query($sql);
$db->next_record();

return urldecode($db->f("name"));
}

}

if ( !function_exists("get_top_category")) {

function get_top_category( $int_current_idcat = 0, $int_target_level = 0 ) {
global $client, $cfg;

$db = new DB_Contenido();
$tmp_idcat = $int_current_idcat;

$sql = "SELECT level FROM " . $cfg["tab"]["cat_tree"] . " WHERE idcat = '" . $int_current_idcat . "'";
$db->query($sql);

if ($db->num_rows()> 0) {


$db->next_record();
$int_current_level = $db->f("level");

while ( $int_current_level != $int_target_level ) {

$sql = "SELECT c.parentid, ct.level FROM " . $cfg["tab"]["cat_tree"] . " ct LEFT JOIN " . $cfg["tab"]["cat"] . " c ON ct.idcat = c.parentid WHERE c.idcat = '" . $tmp_idcat . "'";
$db->query($sql);

if ( $db->num_rows() > 0) {
$db->next_record();
$int_current_level = $db->f("level");
$tmp_idcat = $db->f("parentid");
} else {
break;
}
}

}

return $tmp_idcat;
}
}


// kateoriename in bestimmten level bestimmen:
// (2. wert = level - 0 = hauptbaum, 1 = erste unterkategorie, ...
$oberste_kategorie = get_top_category ( $idcat, 1);



$str_params = "&changelang=" . $lang . "&client=" . $client;

if ( $cfg["mod_rewrite"]["use"] == 1 && !$contenido) {
if ( !class_exists("ModRewrite") ) {
cInclude("classes","class.modrewrite.php");
}
$make_link = '' . getCatnamesById ( $oberste_kategorie, $lang ) . '';
} else {
$make_link = '' . getCatnamesById ( $oberste_kategorie, $lang ) . '';
}




/* Start Output buffer */
ob_start();

       if (checkCatPermission($data['sub'], $data['idcatlang'], $data['public'])) {


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


   if (checkCatPermission($data['idcatlang'],$data['public'])) {
       /* 2. Navigation level */

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


           foreach ($data['sub'] as $key => $data) {
             if ($adiv == '1'){
             }else{
               echo "<h3 class=\"sidebar\">".$make_link."</h3>\n";$adiv = 1;
               echo "<div id=\"nav2\"><ul class=\"vlist\">\n";
             }

            if (checkCatPermission($data['idcatlang'],$data['public'])) {


                  $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/nav2-level1_active.html');
               }elseif(is_array($data['sub'])){
                    $tpl->generate('templates/nav2-level1_open.html');
                  } else {
                      $tpl->generate('templates/nav2-level1.html');
                  }

          /* 3. Navigation level */
                  if (is_array($data['sub'])) {
                      foreach ($data['sub'] as $key => $data) {
                     if (checkCatPermission($data['idcatlang'],$data['public'])) {
                             $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/nav2-level2_active.html');
                        }elseif(is_array($data['sub'])){
                             $tpl->generate('templates/nav2-level2_open.html');
                             } else {
                                 $tpl->generate('templates/nav2-level2.html');
                             }

                             /* 4. Navigation level */
                           if (is_array($data['sub'])) {
                               foreach ($data['sub'] as $key => $data) {
                              if (checkCatPermission($data['idcatlang'],$data['public'])) {
                                      $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/nav2-level3_active.html');
                                 }elseif(is_array($data['sub'])){
                                      $tpl->generate('templates/nav2-level3_open.html');
                                      } else {
                                          $tpl->generate('templates/nav2-level3.html');
                                      }

                                      /* 5. Navigation level */
                                    if (is_array($data['sub'])) {
                                        foreach ($data['sub'] as $key => $data) {
                                       if (checkCatPermission($data['idcatlang'],$data['public'])) {
                                               $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/nav2-level4_on.html');
                                               } else {
                                                   $tpl->generate('templates/nav2-level4_off.html');
                                               }
                                          } // end if
                                        } // end foreach
                                    } // end if
                                 } // end if
                               } // end foreach
                           } // end if
                        } // end if
                      } // end foreach
                  } // end if
               } // end if


           } // end foreach
             if ($adiv == '1'){echo "</ul></div><br /><br /><div class=\"clearo\"></div>\n";}
   } // end if  

} // end if

} // end foreach
} // end if

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

/* Clean buffer */
ob_end_clean();

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

Gesperrt