Hallo Aussenwelt,
weiss gar nicht ob ich im richtigen Forumszweig bin - folgendes Problem: Habe eine Zusatznavigation, die bei Auswahl eines Links in der Hauptnavigation erscheint (funktioniert) Diese Navigation wird bei Mouseover andersfarbig hinterlegt (hab ich über ein Array und idcat in einem Modul hingewurschtelt). Nun meine Frage: Setze ich überhaupt richtig im Modul an oder muss ich an einer anderen Stelle ansetzen, da bei Click auf den Link der geänderte Zellhintergrund erhalten bleiben soll!
Vielen Dank im Voraus
macsaver
Code der Ausgabe des Moduls:
<?php
include_once($cfg["path"]["contenido"].$cfg["path"]["includes"]."functions.con.php");
$catStart = "CMS_VALUE[0]";
if ($catStart != "") {
$catIds = conDeeperCategoriesArray($catStart);
echo '<table cellpadding="0" cellspacing="0" border="0">';
// echo '<tr><img src="images/spacer.gif" width="10" height="10"></tr>';
/* Create Frame Color Array */
$color = array(1 => "'#DEC185'", 2 => "'#A9C8E7'", 3 => "'#C49F78'", 4 => "'#9BA2BC'", 5 => "'#B48782'", 6 => "'#DEC185'", 7 => "'#A9C8E7'", 8 => "'#C49F78'", 9 => "'#9BA2BC'", 10 => "'#B48782'");
$bg_color = "bgColor='#516476'";
/* Create IDcat Color Array
foreach($catIds as $key=>$val) {
$cell_color=
}
*/
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'";
$db->query($sql);
$cell_color = $color[$key];
while ( $db->next_record() ) {
echo '<td class="hilfsnavi" height="30" style="padding-left:20px;" onMouseOver="bgColor='.$cell_color.'" onMouseOut='.$bg_color.'>
<a href="front_content.php?idcat='.$db->f("idcat").'">'.$db->f("name").'</a>
<tr><td height="1" style="padding-left:0px; padding-right:0px;"><img src="images/linie_waag_206.gif" width="206" height="1"></td></tr></td>';
} // end while
} // if
} // end foreach
} // end if (is_array)
echo '</table>';
}
?>[/b]
MouseOver Navigation
-
- Beiträge: 6
- Registriert: Di 5. Aug 2003, 11:47
- Kontaktdaten:
-
- Beiträge: 6284
- Registriert: Do 15. Mai 2003, 18:32
- Wohnort: Da findet ihr mich nie!
- Kontaktdaten:
naja, wenn du klickst, dann wird die seite neu geladen. du kannst ja einfach im aufbau der navi prüfen, ob die aktuelle idcat mit der aus der DB übereinstimmt, und dann einfach den hintergrund anders setzen.
dein JS wird ja bei jedem seitenaufruf neu initialisiert, ergo auch keine markierung mehr vorhanden,
dein JS wird ja bei jedem seitenaufruf neu initialisiert, ergo auch keine markierung mehr vorhanden,
-
- Beiträge: 6
- Registriert: Di 5. Aug 2003, 11:47
- Kontaktdaten:
So weit umgesetzt und funktioniert - aber jetzt ergibt sich ein neues Problem das nicht über idcat gelöst werden kann.
Habe bei manchen Punkten im Hauptmenü ein Zusatmenü - kein Submenu - nun soll die farbige Hinterlegung im Hauptmenu erhalten bleiben. Da sich meine idcat ändert, wenn ich den nächsten Link anklicke geht somit auch wieder meine Zellhinterlegung flöten
Any Idea?
Habe bei manchen Punkten im Hauptmenü ein Zusatmenü - kein Submenu - nun soll die farbige Hinterlegung im Hauptmenu erhalten bleiben. Da sich meine idcat ändert, wenn ich den nächsten Link anklicke geht somit auch wieder meine Zellhinterlegung flöten

Any Idea?
Setze folgendes am Anfang deines Moduls ein:
Anschliessend kannst du mit $ebene auf die Idcat bestimmter Navigationsebenen zugreifen, $ebene[0] wäre etwa die Idcat des Baumes der Hauptnavigation (Normalerweise 2), mit $ebene[1] könntest du dann üperprüfen, welche idcat in z.B. der Hautpnavigation aktiviert wird, usw...
Code: Alles auswählen
// Liest von der aktuellen Kategorie die übergeordneten Ebenen ein
$ebene=array();
$cat=$idcat;
do {
$query='SELECT parentid,idcat FROM '.$cfg["tab"]["cat"].' WHERE idcat='.$cat.';';
$db->query($query);
$db->next_record();
$cat=$db->f('parentid');
$ebene[]=(int)$db->f('idcat');
} while ($cat!=0);
$ebene=array_reverse($ebene);
// END