WebsiteBaker Support (2.13.x) > Hilfe & Support (deutsch)

Hilfe benötigt mit show_menu2

<< < (2/2)

sternchen8875:
na dann probieren wir es mal so (auch, wenn der CSS-Code oben unvollständig ist)

$iMenu = Nummer des Menüs
$iStart = Startlevel des Menüs. SM2_ROOT wäre Level 0. Möchtest du Mehrsprachigkeit, braucht es bei einen Faktor, den man manuell eintragen kann oder vom Script ermittelt bekommt. Das DefaultTemplate zeigt dir da Beispiele
$iMaxLevel = hier: SM2_ALL, also alle vorhandenen öffentlichen Seiten in allen Menü-Level. Weitere Möglichkeiten in der Readme zum ShowMenu2
$iOptions = die Menü-Optionen - Weitere Möglichkeiten in der Readme zum ShowMenu2
$sItemOpen =  Code, der für jeden einzelnen Menüpunkt verwendet wird, also jedem <li>. Hier mit der Bedingung: hat eine Hauptseite Unterseiten (Childs), füge die Menüklasse submenu ein
$sItemClose = der schließende </li>-Tag
$sMenuOpen = wird für jedes Untermenu verwendet, hier wird je Untermenü eine eigene Liste mit der CSS-Klasse submenu-content verwendet
$sMenuClose = der schließende Tag zum <ul> der Untermenüs
$mTopItemOpen = wird hier nicht benötigt, darum = false
$mTopMenuOpen = der öffnende Tag zum Menu im Level == 0


der Menü-Code ausnahmsweise mal in einem Zitatblock, damit er nicht verfälscht wird


--- Quote ---    <?php

// zuerst die Definition der einzelnen Teile
    $iMenu          = 1;
    $iStart         = SM2_ROOT+$iMultiLang;
    $iMaxLevel      = SM2_ALL;
    $iOptions       = SM2_ALL|SM2_BUFFER|SM2_PRETTY;
    $sItemOpen      = '<li class="[if(class==menu-expand){submenu}] [class]"><a href="[url]" class="[class]"><span>[menu_title]</span></a>';

    $sItemClose     = '</li>';
    $sMenuOpen      = '<ul class="submenu-content">';
    $sMenuClose     = '</ul>';
    $mTopItemOpen   = false;
    $mTopMenuOpen   = '<ul class="menu">';

// nun die Definition der Funktion

    $sMainNav  = show_menu2(
        $iMenu,
        $iStart,
        $iMaxLevel,
        $iOptions,
        $sItemOpen,
        $sItemClose,
        $sMenuOpen,
        $sMenuClose,
        $mTopItemOpen,
        $mTopMenuOpen
    );
    ?>

und die Ausgabe:
  <?php
echo $sMainNav;
?>
--- End quote ---

md001:
Damit so ist es schon verständlicher. Es funktioniert in jedem Fall erst mal und ich hoffe, dass ich es jetzt verstanden habe 😬
Vielen Dank.

sternchen8875:
Sehr schön  (Y)

damit lassen sich dann auch richtig komplexe Abfragen realisieren, z.b. so etwas

--- Code: ---$sItemOpen ='<li class="[if(class=menu-current||class=menu-parent){active}] [if(class==menu-expand){dropdown}] level="lev[level]">
[if(class==menu-expand){<a href="[url]" class="dropdown-toggle" data-toggle="dropdown">[menu_title]<b class="caret"></b></a>}
else {<a id="p[page_id]" href="[url]" target="[target]" class="[class]">[menu_title]</a>}]'
--- End code ---

hieße "übersetzt"
Ist die (vom Code automatisch vergebene) Menüklasse gleich menu-current oder gleich menu-expand, dann setze die Klasse "active" im <li>-Tag, ist nur die Klasse menu-expand gesetzt, setze zusätzlich noch die Klasse "dropdown"
Ist die Klasse menü-expand gesetzt, (heißt: Seite hat Childs bzw Unterseiten), dann setze im a-Tag diesen Menü-Link-Code (2.Zeile des Code-Beispiels), wenn nicht, den anderen Code aus Zeile 3 des Beispiels

Mit Hilfe der Page-ID lassen sich dann auch einzelne Menü-Button ansprechen ( id="p[page_id]") z.b. um ihnen einzelne Farben oder (über CSS) einzelne Icons zuzuweisen.
Damit läßt sich dann so fast alles, was an Menüs aktuell für Webseiten bekannt ist, umsetzen

Navigation

[0] Message Index

[*] Previous page

Go to full version