Neuigkeiten:

moziloCMS verwendet Cookies. Wenn Sie auf unserer Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu Datenschutzerklärung
moziloCMS Layouts
moziloCMS Plugins

Hauptmenü

...den Hauptmenüpunkt nicht hervorheben?

Begonnen von Karsten Meyer, 20. August 2011, 21:14:04

« vorheriges - nächstes »

Karsten Meyer

Hallo allerseits,

ich habe eingestellt:
Inhaltsseiten, die genau wie die Kategorie heißen, im Detailmenü versteckt werden sollen: JA

Und in diesen Inhaltsseiten habe eine Art Einführung für die Unterseiten, evtl. auch mit Links dorthin.

Im CSS finde ich folgende Elemente:
a.menuactive und
a.submenuactive

Wenn ein Untermenü aufgerufen (=aktiv) wird, werden diese beiden Elemente "scharf".
Das sieht in meinem Fall ziemlich falsch aus, denn man kann ja immer nur an einer Stelle des Menüs sein.

Gibt es da irgendeinen "Workaround"?

Besten Dank für einen Tipp,
Karsten


PS: Wofür steht denn eigentlich a.detailmenu? Oder anders: Gibt es irgendwo eine Dokumentation zu den CSS-Elementen?

Karsten Meyer

#1
Ich habe einen Denkfehler in meiner Frage, aber das Problem wird dadurch nicht besser. Es ist nämlich egal, ob:

Inhaltsseiten, die genau wie die Kategorie heißen, im Detailmenü versteckt werden sollen

ausgewählt ist oder nicht - es müsste doch eigentlich in jedem Fall sehr merkwürdig aussehen, wenn gleich zwei Menüpunkte aktiv sind, oder?

Schönen Gruß,
Karsten

Rainer

#2
Ob es merkwürdig aussieht ist, denke ich, Geschmacksache. Aber es lässt sich ja via CSS ändern. Du müsstest dann nur die notierung für a.menuactive ntsprechend ändern, so das nur a.submenuactive aktiv/hervorgehoben wird.
moziloCMS über Facebook bekannt machen
•• moziloCMS auf GitHub
••• Nichts ist einfacher, als das, was uns fremd ist, zu verachten.
•••• Mein moziloCMS

Karsten Meyer

#3
Ja, danke, das habe ich jetzt natürlich so gemacht. Nur werden jetzt die Hauptmenüpunkte nicht mehr hervorgehoben, wenn ich auf der "Startseite" eines Hauptmenüpunkts bin...

Hier mal mein derzeitiges Arbeitsergebnis.

Schönen Gruß,
Karsten

_ric_

#4
Ob bzw. wie ein Punkt in deinem Hauptmenue hervorgehoben dargestellt wird kannst du in der style.css deines aktiven Templates im Punkt
#menubar .menuactive {
height: 22px;
background: url(../grafiken/bg_mm_act.jpg);
overflow: hidden;
color: #000000;
border-left: thin #699 solid;
border-top: thin #699 solid;
border-right: thin #cc9 solid;
border-bottom: thin #cc9 solid;
}
(beispielsweise so wie hier in einem meiner Templates) einstellen.
VG,
_ric_

Karsten Meyer

#5
Danke, _ric_, aber - wie bereits gesagt, wird das dann nie aktiv.

Da ich aber auch hinter den Hauptmenüpunkten (gleichnamige) Inhalte hängen habe, wäre es gut, wenn die genau dann aktiv sind, wenn dieser (gleichnamige) Inhalt aufgerufen wird.

Schönen Gruß,
Karsten

Rainer

#6
Also mir fällt ehrlich gesagt nichts dazu ein, wie ich einer Maschine (hier moziloCMS) sagen soll: bitte wenn du an Stelle A kommst verhalte dich normal und wenn du an die nächste Stelle A kommst verhalte dich nicht normal, denn an der nächsten Stelle A läuft's halt etwas anders.

So ein Verhalten kann ich nur erreichen wenn ich jeden Link im Menu einzeln eintrage. Das würde bedeuten: du musst das ganze Menu ausblenden, dann die Links selbst schreiben und in der template,html einsetzen. Für jeden Link der sich anders verhalten soll müsste dann eine eigene Class im CSS erstellt werden.

Aber vielleicht weis doch noch jemand eine moziloCMS-konforme Lösung für das Problem.
moziloCMS über Facebook bekannt machen
•• moziloCMS auf GitHub
••• Nichts ist einfacher, als das, was uns fremd ist, zu verachten.
•••• Mein moziloCMS

Karsten Meyer

#7
Danke, Rainer, aber an denke, dein Hinweis war eher rhetorischer Natur.
(Dann kann ich mir das CMS ja fast ganz sparen, böse gesagt ;-) )

Nochmal kurz mein Problem, hoffentlich etwas besser formuliert:

Das CSS-Element a.submenuactive tut, was es soll. Immer, wenn ein Untermenüpunkt (ein Inhalt) angezeigt wird, ist dieses Element aktiv.

Das CSS-Element a.menuactive ist mein Problem.
Ich möchte, dass es nur dann aktiv ist, wenn ein Hauptmenüpunkt aktiv ist, nicht aber, wenn ein Untermenüpunkt aktiv ist. Ein Hauptmenüpunkt ist genau dann aktiv, wenn der Name der aktuellen Inhaltsseite gleich dem Namen der Kategorie ist.
Für mich ist das ein völlig logischer Aufbau einer Website. Es kann immer nur 1 Seite aktiv sein - mal ist es eine Seite des Hauptmenüs, mal eine Seite des Untermenüs.
Mozilo geht eigentlich davon aus, dass es gar keine Inhalte für die Kategorien (das nenne ich: Hauptmenü) gibt. Da gibt es zwar diesen Trick, dass man Inhaltsseiten mit Namen als Inhalt der Kategorie erscheinen lassen kann, aber solche Tricks haben natürlich Grenzen.
Ein weiteres Problem hätte ich vermutlich, wenn in meinen Inhaltsseiten eine "Breadcrump" haben wollte - oder auch in der Sitemap.

Ich überlege, wo ich da eingreifen müsste, um wenigstens das Menü sauber aussehen zu lassen, aber da das ganze Menü vom CMS automatisch aufgebaut wird, sehe ich da als Anwender wenig Chancen...

Schönen Gruß,
Karsten

PS: Mag mir mal jemand die genaue Bedeutung der Begriffe
- Hauptmenü,
- Detailmenü,
- Submenü
erklären oder zeigen, wo das steht? - Danke!

stefanbe

#8
für dein Problem gibts die möglichkeit das mit einem Plugin zu realisiern siehe z.B das MENUES Plugin ist nicht was du suchst aber mit ein paar kleinen veränderungen anpassbar

als Breadcrump kanst du sowas machen im template "Wo bin ich {CATEGORY_NAME}/{PAGE_NAME}" wurde hier irgendwo auch schonn mal besprochen

gruss stefanbe

Karsten Meyer

#9
So, ich habe mal eben aus dem hintersten Winkel des Gehirnkastens ein paar Erinnerungen an PHP hervorgekramt, gesucht, was da wo passiert und das direkt in CatPageClass.php geändert:

   function get_CssActiv($cat,$page,$activtext = "active") {
        global $CAT_REQUEST;
        global $PAGE_REQUEST;
        global $EXT_LINK;
        $req_cat = $this->get_AsKeyName($CAT_REQUEST);
        $req_page = $this->get_AsKeyName($PAGE_REQUEST);
        $cat = $this->get_AsKeyName($cat);
        if($page !== false) {
           # global $PAGE_REQUEST;
           # $req_page = $this->get_AsKeyName($PAGE_REQUEST);
            $page = $this->get_AsKeyName($page);
            if($cat == $req_cat and $page == $req_page and $this->get_Type($cat,$page) != $EXT_LINK)
                return $activtext;
            return NULL;
        }
        if($cat == $req_cat and $req_cat == $req_page and $this->get_Type($cat,false) != $EXT_LINK)
            return $activtext;
        return NULL;
    }
Nachfolgend nochmal als normler Text, in rot, was ich geändert habe:

function get_CssActiv($cat,$page,$activtext = "active") {
        global $CAT_REQUEST;
       global $PAGE_REQUEST;
        global $EXT_LINK;
        $req_cat = $this->get_AsKeyName($CAT_REQUEST);
       $req_page = $this->get_AsKeyName($PAGE_REQUEST);
        $cat = $this->get_AsKeyName($cat);
        if($page !== false) {
           # global $PAGE_REQUEST;
           # $req_page = $this->get_AsKeyName($PAGE_REQUEST);
            $page = $this->get_AsKeyName($page);
            if($cat == $req_cat and $page == $req_page and $this->get_Type($cat,$page) != $EXT_LINK)
                return $activtext;
            return NULL;
        }
        if($cat == $req_cat and $req_cat == $req_page and $this->get_Type($cat,false) != $EXT_LINK)
            return $activtext;
        return NULL;
    }


Im oberen if werden die Seiten behandelt - damit war alles ok.
Um untersten, 3. if werden die Kategorien behandelt. Dort habe ich die Bedingung eingefügt, dass nur Seiten behandelt werden, die gleich wie die Kategorie heißen. Da die Variable der aktuellen Seite - $req_page - aber dort gar nicht gesetzt war, musste ich die Zuweisung aus dem oberen if herausholen.

Ich hoffe, es ist erlaubt, das hier zu berichten und danke dem Entwickler ganz, ganz herzlich für die immense Arbeit, die in MoziloCMS steckt - und dass wir das frei benutzen können.

Schönen Gruß,
Karsten

PS: Meiner Meinung nach gehört das richtig integriert, mit Festlegung in den Einstellungen - aber mir ist klar, dass der Aufwand dafür noch deutlich größer wäre.

Karsten Meyer

#10
Zitat von: "stefanbe"für dein Problem gibts die möglichkeit das mit einem Plugin zu realisiern siehe z.B das MENUES Plugin ist nicht was du suchst aber mit ein paar kleinen veränderungen anpassbar

als Breadcrump kanst du sowas machen im template "Wo bin ich {CATEGORY_NAME}/{PAGE_NAME}" wurde hier irgendwo auch schonn mal besprochen

gruss stefanbe

Danke, Stefan.
Ein Plugin wäre vermutlich möglich, aber (für mich jedenfalls) noch viel schwieriger als der kleine o.g. Patch.

Und zur Breadcrumb: Wenn ich {CATEGORY_NAME}/{PAGE_NAME} einsetze, passiert genau das, was ich befürchtete: Es wird auf meinen Seiten des Hauptmenüs 2x der gleiche Titel ausgegeben. Das sieht nicht gut aus. (Evtl. könnte man mit wenig PHP direkt an dieser Stelle den PAGE_NAME ausblenden - aber dazu muss erst mal wieder das Plugin-Archiv erreichbar sein - das PHP-Plugin habe ich noch nicht.

Schönen Gruß,
Karsten

Thorstn

#11
Zitat von: "Karsten Meyer"Es wird auf meinen Seiten des Hauptmenüs 2x der gleiche Titel ausgegeben.

Schau mal im Adminbereich Deines Mozilos: unter "Einstellungen" --> 2. Punkt ("Wählen Sie aus, welches der vorgegebenen Formate die Titelleiste des Browsers haben soll.") kannst Du einige Dinge einstellen.

Vielleicht hilft Dir das weiter.

Gruß,
Thorsten
www.mad-it.de - Wir lösen keine Probleme. Wir machen sie.
Webdesign aus Bochum