Seite 1 von 1

Menüaufbau, wie machen?

Verfasst: Mo 17. Aug 2020, 10:52
von Faar
Ich hab da so einen speziellen Menüwunsch, der mir etwas Kopfzerbrechen macht.
Wie mit contenido lösen?

Code: Alles auswählen

<!-- Hauptmenü -->
<div><div>
<div><div>
<ul class="main-menu">
<li>
<button>Menüpunkt1 level1</button>
</li>
</ul>
</div></div>
</div></div>
<!-- Dropdown untermenü -->
<div>
<nav>
<ul><li>
::marker
<ul><li>
::marker
<a href="#"><span>Submenüpunkt1 level2</span></a>
</li></ul>
</li></ul>
</nav>
</div>
Das Hauptmenü sind Buttons, die per Javascript das Submenü-Dropdown öffnen. Menüpunkt 1 wird per Javascript gefüllt, er existiert daher im Seitenquelltext nicht. Beim Klick darauf öffnet sich ein Dropdown, das vermutlich auch mittels Javascript gefüllt wird und dummerweise ein Design hat, das auf diese Div und Nav und zusätzliche ul-li-Verschachtelung aufbaut, aus reinen Design-Gründen.
Der Button für den Level1 ist kein Anker, es ist quasi eine Kategorie aber ohne Inhalt. Es soll lediglich zum Dropdown öffnen da sein.
Mit Logik und Semantik hat das nichts mehr zu tun.
Nun, wenn ich das navigation_main Modul nehme, liest es mir mit kleinen Änderungen im Template den ganzen Baum aus, also passend für Dropdown-Menüs.
Nur halt eben so:

Code: Alles auswählen

<ul>
<li><a href >Menü1</a>
<ul>
<li><a href >Submenü1</a>
</li>
</ul>
</li>
</ul>
Klassisches Dropdown funktioniert damit bestens, nur eben nicht obiges "Menü Konstrukt.
Beim Klick auf Menüpunkt1 soll das Dropdown öffnen und stehen blweiben mit einem Marker, der auf optisch auf den Menüpunkt 1 zeigt.
Es ist noch um einiges komplizierter als ich es hier erklären kann, vieles positioniert und responsiv auch noch.
Es handelt sich vermutlich beim Original um ein Headless-CMS, mit Bootstrap.
Aber kann man sowas mit Contenido nachvollziehen ohne exorbitalen Aufwand?
Oder habe ich mich verrannt?

Re: Menüaufbau, wie machen?

Verfasst: Mo 17. Aug 2020, 15:07
von bodil
Beim Klick darauf öffnet sich ein Dropdown, das vermutlich auch mittels Javascript gefüllt wird.
Spannend. Das soll per Ajax passieren? Dann musst du die Daten ja auch irgendwie bereitstellen.
Klingt insgesamt so, als würdest du dir die Daten am besten direkt aus der Datenbank holen. Das ist aber eigentlich auch kein Hexenwerk.
Und: es zu schaffen, auf Ajax zu verzichten (und die erforderlichen Daten doch schon vom PHP auf die Seite schreiben zu lassen) würde die Sache vermutlich vereinfachen ...?

Re: Menüaufbau, wie machen?

Verfasst: Mo 17. Aug 2020, 15:59
von Faar
Nicht Ajax, nur mit Javascript wird es im Original gemacht.
Und ja, es sieht stark nach einem Headless-CMS aus.
Direkt aus der Datenbank hole ich die Daten ja sowieso, mittels Modul.
Aber die Art der Bereitstellung ist komplett anders.
Dort sind die Daten wohl in Script-Variablen gespeichert und bei mir kommen sie bereits als HTML im Browser an.
So genau weiß ich es noch nicht, da sich das HTML der gescripteten Seite schwer vom HTML des Seitenquelltextes unterscheidet.
Die Entwicklertools zeigen mir an, was das Script gemacht hat, der Quelltext, wie es vor dem Script ist.

Am Ende muss es Buttons als Hauptmenü des ersten Levels geben und das Untermenü klassisch aber getrennt.
Diese Trennung bekomme ich so nicht einfach hin, weil im PHP müsste ich genau die erste Ebene der Kategorien anzeigen lassen, dann hätte ich den ersten Teil mit den Buttons.
Das Submenü bekäme ich über ein Modul, das erst ab Level 2 das Menü anzeigt.
Wie bekomme ich den Zusammenhang, wenn ich Button 1 anklicke, dass sich dann Submenü 2 öffnet?
Wohl auch nur mit Javascript.

Re: Menüaufbau, wie machen?

Verfasst: Mo 17. Aug 2020, 19:47
von bodil
Wie werden dem Javascript die Daten zur Verfügung gestellt? Da müssen auf der Seite doch (gefüllte) Variablen zur Verfügung gestellt werden. Und die kannst du doch auch nachbauen, wenn du die Daten eh per SQL aus der Datenbank holst?
Und auf Button A Klicken um Div B sichtbar zu machen - das klingt schon auch sehr nach einer Anwendung für JS ...