Ich setze eine zweigeteilte, horizontale Navigation ein, bei der alle Kategorien der ersten und zweiten Ebene angezeigt werden - unabhängig davon, ob sie geschützt sind oder nicht. So will ich es eigentlich haben. Allerdings würde ich zusätzlich gerne solche Kategorien "highlighten", die geschützt sind und wiederum anders "highlighten", wenn sie geschützt sind, der User aber eingeloggt ist. Eine ähnliche Funktion bietet bereits die Standardnavigation. Allerdings steige ich nicht so recht durch die SQL-Abfragen. Was muss ich am unten stehenden Code (das ist ein Auszug) abändern, um die gewünschten Dinge einarbeiten zu können? Welche Abfragen muss ich machen?
Code: Alles auswählen
// submenu erstellen
// jetzt ist der startpunkt zum menü-generieren die parent-kategorie
$tht_catSub = $tht_activ_cat;
if ($tht_catSub != "") {
$catIds = thomas_DeeperCategoriesArray($tht_catSub);
if ( is_array($catIds) ) {
foreach($catIds as $key=>$val) {
$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;
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';
}
}
// link erzeugen
if ($idcat == $db->f("idcat")) {
echo '<li><a class="aktuell" href="front_content.php?idcat='.$db->f("idcat").'">'.$db->f("name").'</a></li> ';
} else {
echo '<li><a href="front_content.php?idcat='.$db->f("idcat").'">'.$db->f("name").'</a></li> ';
}
// ende link erzeugen
} // end while
} // end foreach
} // end if (is_array)
}
// das ende der tabelle ausgeben.
jcf