noch gar nicht
also mach ich's immer noch so wie beschrieben: über das ausblenden mit CSS
HTML-Code::first-child{...} :last-child{...}
Das ist für meinen Fall keine Option, aber es wäre schon toll wenn man individuelle und die Standardnavigation zusammenbringen könnte.
Würde ich mir das selber zusammenbauen würde ich eben die normale und die individuelle in ein eigenes Modul (eigener HTML Code)per inserttag setzen und das dann per JS ein - und ausblenden.
Vielleicht hat ja noch jemand 'ne Idee wie es hier gehen könnte ;-)
In diesem Fall wäre es wohl einfacher, das Script komplett manuell einzubinden. Dann hat man die volle Freiheit des Inhalts und die Konfiguration ist für jemanden mit ein wenig jQuery-Kenntnissen und der sehr guten Dokumentation auch nicht weiter schwierig.
du meinst, die navigation zusammen zu stecken mit inserttags oder individueller navigtion und dann das JS selbst im template einzubinden und anzupassen?
Ja genau. Ich erweitere die Core-Navigation in der Erweiterung mit allen Vor- und Nachteilen. Nachteil ist eben, daß man die verschiedenen Navigationsarten nicht mischen kann. Dem mmenu-Skript ist es egal was für URLs in seiner ul/li-Struktur abgelegt werden. Von daher ist es bei solch komplexeren Anwendungen wohl leichter die Erweiterung zu ignorieren und das Script manuell einzubinden. Man muß nur Sorge dafür tragen, daß im DOM die Navi-Struktur vorhanden ist und hinterlegt den Script-Aufruf bei document.ready im Layout ab.
alles klar, danke dir für die erläuterung !
viele grüße aus münster
Könnt Ihr mir da noch mal einen Tipp geben wie ich Navigation und individuelle Navugation zusammenbringe?
Ich habe das Script ohne die Erweiterung eingebunden wie Dirch meinte, aber ein eigener html-code Abschnitt mit inserttags mit denen die NaviModule eingebunden werden, diese dann in einem nav Bereich umschließen mit ID #menu funktioniert nicht.
Ist vermutlich doch etwas komplizierter - habt Ihr eine Idee wie das gehen kann?
Ich glaube das ist der Teil der wohl entscheidend ist - hab ich noch nicht ganz verstandenMan muß nur Sorge dafür tragen, daß im DOM die Navi-Struktur vorhanden ist und hinterlegt den Script-Aufruf bei document.ready im Layout ab.
Ich würde da folgendermaßen vorgehen (Contao 3.5):Voilá.
- Ein neues mod_mmenu Template erzeugen und umbenennen, zB mod_mmenu_custom
- Ein neues mod_navigation Template erzeugen und umbenennen, zB mod_navigation_custom
- Ein reguläres mmenu - Navigationsmenü Modul erzeugen, dort in den Einstellungen das Template mod_mmenu_custom auswählen
- Ein reguläres Individuelle Navigations Modul erzeugen (ID notieren), dort in den Einstellungen das Template mod_navigation_custom auswählen
- Das Template mod_navigation_custom bearbeiten und dort alles bis auf
entfernenPHP-Code:
<?= $this->items ?>
- Das Template mod_mmenu_custom bearbeiten und dort nach
zusätzlich folgendes einfügen:PHP-Code:
<?php echo $this->items; ?>
* natürlich mit der ID der Custom Navigation Moduls ersetzenPHP-Code:
{{insert_module::*}}
Geändert von Spooky (29.06.2015 um 14:45 Uhr)
Ah, klingt gut, wobei ich das bei Contao 3.2 einsetze, da geht das mit den mod_templates (Punkt 4) so nicht. Steh gerade auf'm Schlauch
Ja, da wird es komplizierter: http://de.contaowiki.org/Eigene_Temp...C3%B6glichkeit
So, es funktioniert prinzipiell, aber man sieht das menü nicht da es ausgeblendet ist. Das liegt daran das es Klassen mitbekommt die auch Untermenüs bekommen (mm-hidden)...
Das heißt es liegt jetzt in einem ul was ich aber nicht sichtbar bekomme - denn die tatsächlichen Unterpunkte des Menüs sollen ja unsichtbar bleiben.
@spooky hast Du noch eine Idee, evtl. muss man das doch anders einbinden anstatt unterhalb...PHP-Code:
<?php echo $this->items; ?>
Aber wie gesagt, das ist schon fast gut ;-) von daher schon mal vielen Dank für Deine Hilfe spooky.
Bevor die Frage nach einem Link kommt, ich teste lokal - sorry.
LG
Bennie
Link wäre hilfreich, denn ich habe das Problem nicht verstanden
Hm, also es gibt ja die Möglichkeit, wie bei einer normalen Navigation auch, Untermenüs anzuzeigen. Das Zusammenführen der beiden Navis (also Navigationsmenü und individuelles Navigationsmenü) führt dazu, dass sich die individuelle Navi ebenfalls im ausgeblendeten Zweig befindet bzw mit den Klassen ausgegeben wird die es unsichtbar machen.
Bei dem folgenden Code siehst Du ul id="mm-4" mit class="level_1" - das ist das per inserttag eingefügte Menü -
mm-0 ist das Hauptmenü - die anderen mm-1 bis mm-3 sind die jeweiligen Untermenüs .
Viielleich verstehst Du es jetzt
PHP-Code:
<nav id="mmenu" class="mod_mmenu block mm-menu mm-horizontal mm-slide mm-zoom-panels mm-light mm-offcanvas mm-top mm-front mm-hassearch mm-current mm-opened">
<div class="mm-search">
<a class="invisible" href="ueber-uns.html#skipNavigation109">Navigation überspringen</a>
<a id="skipNavigation109" class="invisible"> </a>
<ul id="mm-0" class="level_1 mm-list mm-panel mm-opened mm-current">
<ul id="mm-1" class="level_2 mm-list mm-panel mm-hidden">
<ul id="mm-2" class="level_2 mm-list mm-panel mm-hidden">
<ul id="mm-3" class="level_2 mm-list mm-panel mm-hidden">
<ul id="mm-4" class="level_1 mm-list mm-panel mm-hidden">
</nav>
Nein, leider immer noch nicht. Poste außerdem den tatsächlich Source Code, nicht den DOM nachdem das JavaScript aktiv war.
Du meinst jetzt aus der mod_mmenu_custom ?
Nein, den fertigen HTML Code. Im FireFox Rechtsklick - Seitenquelltext anzeigen. Dann den Teilsuchen und posten.PHP-Code:
<nav id="mmenu">...</nav>
Es kann sein dass ich mich irre und mmenu doch nicht so mit dem HTML Code umgeht, wie ich mir das dachte. Theoretisch solltest du folgende Struktur haben:PHP-Code:
<nav>
<ul class="level_1"> <!-- Navigation -->
…
</ul>
<ul class="level_1"> <!-- Custom Navigation -->
…
</ul>
</nav>
Ach so, können wir uns sparen - es ist genau wie Du schreibst, aber das JS macht dann das oben erwähnte daraus... da muss man dann wohl eher in dem js_mmenu template ansetzen..
Nein, es gibt doch eine Lösung dafür. Ist nur etwas aufwändiger und muss erst Zeit dazu finden, es hier zu beschreiben . Aber kurz gesagt: du musst einfach dafür sorgen, dass das HTML-Endergebnis so aussieht:PHP-Code:
<nav>
<ul>
<li></li>
…
</ul>
</nav>
Ah ja, das ist prinzipiell klar , aber das werde ich wohl nicht hinbekommen, du wirst wieder, wie so oft eine respektable Lösung posten, lieber spooky!
Du postest so viele Lösungen - Danke! Das Danke darf ich sicher auch mal im Namen aller hier aussprechen
Also, wir brauchen zu erst mal 3 verschiedene, individuelle Templates. Ein angepasstes mod_navigation Template und zwei angepasste nav_default Templates. Der Inhalt dieser Templates ist wie folgt:
mod_navigation_mmenu_customnav_mmenuPHP-Code:
<?= $this->items ?>
nav_mmenu_customPHP-Code:
<ul class="<?= $this->level ?>" role="<?= ($this->level == 'level_1') ? 'menubar' : 'menu' ?>">
<?php foreach ($this->items as $item): ?>
<?php if ($item['isActive']): ?>
<li class="<?= $item['class'] ?>"><span class="<?= $item['class'] ?>" role="menuitem"<?php if (!empty($item['subitems'])): ?> aria-haspopup="true"<?php endif; ?>><?= $item['link'] ?></span><?= $item['subitems'] ?></li>
<?php else: ?>
<li<?php if ($item['class']): ?> class="<?= $item['class'] ?>"<?php endif; ?>><a href="<?= $item['href'] ?>" title="<?= $item['pageTitle'] ?: $item['title'] ?>"<?php if ($item['class']): ?> class="<?= $item['class'] ?>"<?php endif; ?><?php if ($item['accesskey'] != ''): ?> accesskey="<?= $item['accesskey'] ?>"<?php endif; ?><?php if ($item['tabindex']): ?> tabindex="<?= $item['tabindex'] ?>"<?php endif; ?><?php if ($item['nofollow']): ?> rel="nofollow"<?php endif; ?><?= $item['target'] ?> role="menuitem"<?php if (!empty($item['subitems'])): ?> aria-haspopup="true"<?php endif; ?>><?= $item['link'] ?></a><?= $item['subitems'] ?></li>
<?php endif; ?>
<?php endforeach; ?>
<?php if ($this->level == 'level_1'): ?>
…
<?php endif; ?>
</ul>Dann erzeugen wir uns die entsprechenden Module: ein reguläres mmenu - Navigationsmenü und dann beliebige andere Navigationsmenüs (kein mmenu Modul jeweils). Dem mmenu - Navigationsmenü wird das nav_mmenu Template zugewiesen, den anderen Navigationsmenüs wird das nav_mmenu_custom und das mod_navigation_mmenu_custom Template zugewiesen.PHP-Code:
<?php if( $this->level != 'level_1' ): ?>
<ul class="<?= $this->level ?>" role="<?= ($this->level == 'level_1') ? 'menubar' : 'menu' ?>">
<?php endif; ?>
<?php foreach ($this->items as $item): ?>
<?php if ($item['isActive']): ?>
<li class="<?= $item['class'] ?>"><span class="<?= $item['class'] ?>" role="menuitem"<?php if (!empty($item['subitems'])): ?> aria-haspopup="true"<?php endif; ?>><?= $item['link'] ?></span><?= $item['subitems'] ?></li>
<?php else: ?>
<li<?php if ($item['class']): ?> class="<?= $item['class'] ?>"<?php endif; ?>><a href="<?= $item['href'] ?>" title="<?= $item['pageTitle'] ?: $item['title'] ?>"<?php if ($item['class']): ?> class="<?= $item['class'] ?>"<?php endif; ?><?php if ($item['accesskey'] != ''): ?> accesskey="<?= $item['accesskey'] ?>"<?php endif; ?><?php if ($item['tabindex']): ?> tabindex="<?= $item['tabindex'] ?>"<?php endif; ?><?php if ($item['nofollow']): ?> rel="nofollow"<?php endif; ?><?= $item['target'] ?> role="menuitem"<?php if (!empty($item['subitems'])): ?> aria-haspopup="true"<?php endif; ?>><?= $item['link'] ?></a><?= $item['subitems'] ?></li>
<?php endif; ?>
<?php endforeach; ?>
<?php if( $this->level != 'level_1' ): ?>
</ul>
<?php endif; ?>
Nach der Erstellung der Module editiert ihr nochmal das nav_mmenu Template und fügt hiereure weiteren Navigationsmodule ein, also zBPHP-Code:
<?php if ($this->level == 'level_1'): ?>
…
<?php endif; ?>Das heißt also: das reguläre mmenu - Navigationsmenü Modul gibt auch (per Inserttag) andere Navigationsmodule mit aus, während diese Navigationsmodule einerseits kein HTML rund um deren Navigationselemente ausgeben und andererseits auch für das erste Level kein <ul>…</ul> ausgeben.PHP-Code:
<?php if ($this->level == 'level_1'): ?>
{{insert_module::17}}
{{insert_module::18}}
<?php endif; ?>
Super! Hat auf Anhieb funktioniert
Vielleicht baut Dirch das mal mit ein, aber so geht es auch wunderbar.
LG
Bennie
hallo zusammen
gibt es eine einfache möglichkeit, im menü die unterpunkte gleich aufzuklappen? sprich, ich möchte die untermenüs auf einen blick ersichtlich haben und nicht erst per pfeil aufklappen.
danke und gruss
andi
Gruss Andi
danke für das feedback. nun weiss ich was sache ist
Gruss Andi
Hallo,
mich würde es interessieren ob es eine Möglichkeit gibt, das Menü bei mouseover über das "Menübild" einzublenden?
Irgendwie komm ich da nicht weiter oder stell mich recht an ;-)
Danke schon mal!
Tino
Hey!
Ich habe mal angefange mit meiner ersten "Mobile-first" - Seite.
Die Erweiterung gefällt mir sehr gut, allerdings schiebt sich das Menü etwas unsanft in die Seite. Und vor allem auch zurück. kann man da irgendwie was machen?
Es schiebt sich nur von ca. 70 - 100 % der Strecke sanft rein. ab 70% des Ausfahrens ist es dann plötzlich abrupt da bzw. beim Einfahren fährt es nur bis 70% ein und dann verschwindet es plötzlich.
Ich hoffe die Beschreibung ist okay :-)
hier der link:
http://www.labrador-vomhisselsberg.de
Geändert von yukay (22.08.2015 um 06:27 Uhr)
Spiel mal mit der Einstellung bzgl. des Hintergrunds herum und/oder lege das Menü mal auf die gleiche Ebene oder dahinter und nicht darüber.
Jou, danke, funzt!
Habe das Häkchen bei "Menü hineingleiten" weggemacht, schon gleitet es hinein
Hallo,
kann man das Menü so einstellen, das der leere Bereich unter dem letzten Menüpunkt nicht mehr so groß ist?
Ich setze die Navigation von oben kommenden ein und es wäre echt klasse wenn sie dann nicht mehr ganz so groß ist.
gruß
Ich habe die CSS Anweisungen mal auskommentiert, aber das Menü hat trotzdem den großen Abstand. Den Text, Hintergrund und Farbe kann ich ohne Probleme ändern. Nur die Anweisung die den Hintergrund so groß macht habe ich noch nichtgefunden. Naja, weitersuchen...
Hallo Emma,
vermutlich hast du immer die voreingestellen 80% Höhe.
Versuch mal, ob du das hiermit ändern kannst:
Es kann aber sein, dass dieser Wert immer durch das JS überschrieben wird.Code:.mm-menu.mm-front.mm-top, .mm-menu.mm-front.mm-bottom { height: 50%; }
Gruß, folkfreund
Das war es leider auch nicht. Ich denke mittlerweile auch, das die Lösung ehr im JS zu suchen ist. Nur da habe ich bislang keine Höhenangabe oder ähnliches gefunden. Wird nicht langweilig...
Noch eine Anmerkung:
Bei einem vertikalen Menü die Höhe zu begrenzen geht natürlich nur, wenn die Zahl der Menüeinträge bekannt, klein und unveränderlich ist - auch in den Unterebenen.
@folkfreund, dein Hinweiß mit den Klassen hat mich dann doch endlich auf den richtigen Weg gebracht:-)
In folgender Datei kann man das von mir gewünschte einstellen.
system -> modules -> dk_menu -> assets -> css -> extensions -> jquery.mmenu.positioning.css
Dort findet sich ganz unten:
.mm-menu.mm-front.mm-top, .mm-menu.mm-front.mm-bottom {
height: 80%;
min-height: 140px;
max-height: 880px; }
Ich habe jetzt ein wenig experimentiert und komme mit folgendem gut zurecht:
.mm-menu.mm-front.mm-top, .mm-menu.mm-front.mm-bottom {
height: 250px; (hier also von Prozent auf Pixel gewechselt)
min-height: 140px;
max-height: 880px; }
Das habe ich nun mit verschiedenen Endgeräten und Ausrichtungen probiert und es klappt gut.
Vielen Dank für den "Schubs" in die richtige Richtung
Super!
Jetzt aber trotzdem noch die Frage, warum sich die Einstellungen nicht durch eigenes CSS überschreiben lassen (das war meine ursprüngliche Idee).
Wenn du die von dir gefundene Datei editierst, dann ist das nicht updatesicher.
Ob du die Höhe besser in Prozent, Pixel oder em angibst, hängt wohl auch davon ab, wie die Menüeinträge gestyled sind. Eine Änderung der Schriftgröße sollte sich z.B. auch in der Anpassung der Menühöhe äußern. Ich würde also eher zu em tendieren.
Ich werde, nach einer kurzen Pause, weiter versuchen einige Dinge zu optimieren. Fürs erste bin ich zufrieden das es funktioniert.
Das Menü wird von mir ja individuell angepasst, deswegen ist die Frage nach ändern der Schriftgröße und Anzahl der Menüpunkte vorab geklärt.
Klasse, super Erweiterung, herzlichen Dank dafür und auch den Best-Support in den relevanten Threads, ebenso für die zügige Weiterentwicklung.
Die neueste Version installiert, unter Cto. 3.5, läuft alles bestens, keine Probleme.
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen