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