Hi Leute,
EDIT/ACHTUNG: Habs gerade erst gesehen, ich arbeite mit Joomla 1.5 - bin hier also völlig falsch - sorry.
habe nen Workaround gefunden, bin damit aber nicht Glücklich, weil er zum einen mit JavaScript arbeitet, zum anderen nicht Sinnvoll ins Template integriert ist - sondern ich in einer Core Datei was geändert habe.
Außerdem ist es explizit eine Lösung für meinen Aufbau der Menus und im Moment nur beispielhaft vom JavaScript her. Aber zum einen könnte Euch dieser Ansatz helfen, zum anderen hat vielleicht jemand eine Idee wie man diesen Ansatz vernünftig und ohne Javascript umsetzt.
Also in modules/mod_mainmenu/tmpl/default.php nach Zeile 46 eine Zeile eingefügt:
Code:
42 if ($node->attributes('class')) {
43 $node->addAttribute('class', $node->attributes('class').' active');
44 } else {
45 $node->addAttribute('class', 'active');
46 }
47 if(!isset($GLOBALS["myActivID"])){ $GLOBALS["myActivID"] = $node->attributes('id'); }
Es wird also beim ersten Menu, die ID des ersten als "activ" vermerkten Menus zwischengespeichert.
Dann in der index.php ganz am Ende, also da wo alles Ausgegeben wird, noch mein JavaScript mit der Zwischengespeicherten ID angehangen. In diesem Stark vereinfachten Beispiel einfach nur, wenn die Bereichs ID 4 ist neues Logo setzen:
Code:
echo JResponse::toString($mainframe->getCfg('gzip'));
echo '<script type="text/javascript">function setLogo() { if(4 == '.$GLOBALS["myActivID"].') { document.getElementById("myLogo").style.backgroundImage="url(/templates/ja_purity/images/logo_festhalle.jpg)"; }} </script>';
Ach ja, und dann natürlich im body-Tag vom Template noch das Script aufrufen: onLoad="setLogo();"
Gruß
Tops
Lesezeichen