Naviation zeigt nur 1.Ebene an
Verfasst: Mi 6. Okt 2004, 16:31
Hallo,
schlag mich immer noch mit der Navigation herum. Ich habe eine modifizierte Hauptnavigation, die mehrmals in einem Template verwendet werden kann und bei der Auswahl <-- Kein --> auch keine Navi anzeigt. Dies funktioniert auch wunderbar.
Allerdings wird jetzt nicht mehr die 2. Navigationsebene angezeigt. Ich weiß nicht ob ich eventuell etwas gelöscht oder geändert habe (das glaube ich zwar nicht, aber man weiß nie!
)
Vielleicht kann mir jemand weiterhelfen, da ich nicht mehr weiter weiß!
Hier der Output
Danke für jegliche Hilfe
Gruß
schlag mich immer noch mit der Navigation herum. Ich habe eine modifizierte Hauptnavigation, die mehrmals in einem Template verwendet werden kann und bei der Auswahl <-- Kein --> auch keine Navi anzeigt. Dies funktioniert auch wunderbar.
Allerdings wird jetzt nicht mehr die 2. Navigationsebene angezeigt. Ich weiß nicht ob ich eventuell etwas gelöscht oder geändert habe (das glaube ich zwar nicht, aber man weiß nie!

Vielleicht kann mir jemand weiterhelfen, da ich nicht mehr weiter weiß!
Hier der Output
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
************************************************/
if ( !is_object($db2) ) {
$db2 = new DB_Contenido;
}
$catStart = "CMS_VALUE[9000]";
/**
* 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
*/
function catischildof_mod1($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_mod1($idcat, CMS_VALUE[9000]) ) {
$sel_idcat = $idcat;
} else {
$sel_idcat = CMS_VALUE[9000];
}
/* Include Template Class */
include_once($cfg["path"]["contenido"] . 'classes/class.template.php');
/**
* Array storing alle the
* navigation data
*/
$navitems_mod1 = array();
/* Template Instance */
$tpl_mod1 = new Template;
/**
* Recursive function for creating
* the navigation array
* @param Int $idcat Category id
*/
function nav_mod1($idcat) {
global $navitems_mod1, $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[9000] ){
$navitems_mod1 = 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[9000]'
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_mod1[$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_mod1;
$navitems_mod1 = $tmp_nav;
/* Function call */
nav_mod1($parentid);
} // end function
if ($catStart != 0 ) {
$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_mod1[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"target" => $target);
}
/* Create Navigation Array */
nav_mod1($sel_idcat);
/* Start Output buffer */
ob_start();
echo '<table cellspacing="0" cellpadding="0" border="0" valign="top">';
/* Eingefügt von TH: Überschrift für die Box */
echo '<tr>
<td width="15" height="21" style="background-image:url(images/background/box_left.gif);background-repeat:no-repeat;">
</td>
<td height="21" width="100" style="background-image:url(images/background/box_tile.gif)">';
if ($catStart != "") {
$catIds = conDeeperCategoriesArray($catStart);
$sql = "SELECT CAT.idcat AS idcat, name FROM ".
$cfg["tab"]["cat"]." AS CAT, ".
$cfg["tab"]["cat_lang"]." AS CATLANG
WHERE CAT.idcat = ".$catStart."
AND CAT.idcat = CATLANG.idcat
AND CATLANG.idlang = '$lang'
AND CATLANG.visible = '1'";
$db->query($sql);
$db->next_record();
$target = "_self";
echo '<a class="box" target="'.$target.'" href="front_content.php?idcat='.$db->f("idcat").'">'.$db->f("name").'</a></td>
<td width="15" height="21" align="right" style="background-image:url(images/background/box_right.gif);background-repeat:no-repeat;">
</td>
</tr>';
}
/* Ende der Änderung */
foreach ($navitems_mod1 as $key => $data) {
/* 1. Navigations Ebene */
$tpl_mod1->reset();
$tpl_mod1->set('d', 'NAME', $data['name']);
$tpl_mod1->set('d', 'TARGET', $data['target']);
$tpl_mod1->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat']));
$tpl_mod1->next();
if ($idcat == $data['idcat'] || is_array($data['sub'])) {
$tpl_mod1->generate('templates/navfirst_on.html');
} else {
$tpl_mod1->generate('templates/navfirst_off.html');
}
if (is_array($data['sub'])) {
foreach ($data['sub'] as $key => $data) {
/* 2. Navigations Ebene */
$tpl_mod1->reset();
$tpl_mod1->set('d', 'NAME', $data['name']);
$tpl_mod1->set('d', 'TARGET', $data['target']);
$tpl_mod1->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat']));
$tpl_mod1->next();
if ($idcat == $data['idcat'] || is_array($data['sub'])) {
$tpl_mod1->generate('templates/navsecond_on.html');
} else {
$tpl_mod1->generate('templates/navsecond_off.html');
}
if (is_array($data['sub'])) {
foreach ($data['sub'] as $key => $data) {
/* 3. Navigations Ebene */
$tpl_mod1->reset();
$tpl_mod1->set('d', 'NAME', $data['name']);
$tpl_mod1->set('d', 'TARGET', $data['target']);
$tpl_mod1->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat']));
$tpl_mod1->next();
if ($idcat == $data['idcat']) {
$tpl_mod1->generate('templates/navthird_on.html');
} else {
$tpl_mod1->generate('templates/navthird_off.html');
}
} // end foreach
} // end if
} // end foreach
} // end if
} // end foreach
echo '</table>';
/* Read out buffer */
$html_mod2 = ob_get_contents();
/* Clean buffer */
ob_end_clean();
/* Output buffer-contents */
echo $html_mod2;
}
?>
Gruß