Author Topic: Show_Menu2 - README + Lösungen für verschiedene Menüs  (Read 21404 times)

Offline badknight

  • WebsiteBaker Org e.V.
  • **
  • Posts: 819
  • Gender: Male
    • pinzweb
Show_Menu2 - README + Lösungen für verschiedene Menüs
« on: December 17, 2011, 05:21:50 PM »
Dadurch, dass es hier ja schon sehr viele Lösungen für verschiedene Menüs mit Show_menu2 gibt habe ich mal einiges Zusammen geschrieben.

Bitte beachtet, dass dieser Beitrag von Zeit zu Zeit um neue Lösungen ergenzt wird!

Vorab, gibt es aber noch eine kurze Ein/Anleitung zu Show_Menu2.

Was ist Show_Menu2?
Quote
Ist ein Code-Snippet für das CMS Website Baker. Es stellt einen kompletten
Ersatz für die eingebaute Menüfuntionalität zur Verfügung. Alle, für die
Erzeugung des Menüs erforderlichen Daten, werden durch eine einzige
Datenbankabfrage erzeugt. Durch umfangreiche Anpassungsmöglichke iten des
erzeugten HTML-Code können alle möglichen Menüarten (Listen, Breadcrumbs,
Sitemaps, usw.) erzeugt werden.
Quelle: /modules/show_menu2/README.de.txt

Benutzung von Show_Menu2:
Quote
Um show_menu2 zu benutzen muss das verwendete Template an den Stellen
modifiziert werden, an denen das Menü erscheinen soll. Bitte beachten: Wenn alte
Menüaufrufe ersetzt werden, müssen unbedingt auch die entsprechenden neuen
Parameter verwendet werden die show_menu2 benötigt.

In den meisten Fällen genügt bereits der Standardaufruf ohne weitere Parameter
von show_menu2. In diesem Fall werden die Vorgabewerte verwendet, dies erzeugt
ein Menü das die aktuelle Seite und die Unterseiten der aktuellen Seite anzeigt:
   
    show_menu2();

Bitte beachten: der Aufruf von show_menu2 ist PHP und muss normalerweise in PHP-
Codezeichen eingeschlossen werden (ausser der Aufruf erfolgt bereits innerhalb
von PHP Code):

    <?php show_menu2(); ?>
Quelle: /modules/show_menu2/README.de.txt

Funktion von Show_Menu2:
Der komplette Aufruf und die Vorgabe Parameterwerte für show_menu2 sind wie folgt:

Code: [Select]
    show_menu2(
        $aMenu          = 0,
        $aStart         = SM2_ROOT,
        $aMaxLevel      = SM2_CURR+1,
        $aOptions       = SM2_TRIM,
        $aItemOpen      = '[li][a][menu_title]</a>',
        $aItemClose     = '</li>',
        $aMenuOpen      = '[ul]',
        $aMenuClose     = '</ul>',
        $aTopItemOpen   = false,
        $aTopMenuOpen   = false
        )
Quote
   $aMenu = 0 ist in den meisten Anwendungsfällen der beste Wert.
   
    $aStart muß entweder eine page ID oder ein Wert der mit "SM2_" beginnt sein.
   
    $aMaxLevel kann nur Werte erhalten, die mit "SM2_" beginnen.
   
    $aOptions bis auf einige wenige Spezialfälle sind hier nur Werte die mit
    "SM2_" beginnen zulässig.
   
    Alle weiteren Parameter enthalten die (HTML)Tags die die Ausgabe des Menüs
    steuern.
   
    Ab $aItemOpen kann jedem Parameter der Wert false übergeben werden um den
    jeweiligen Vorgabewert zu erhalten.

    Dies kann beispielsweise verwendet werden um eine nummerierte Liste zu
    erzeugen, während für die einzelnen Menüpunkte trotzdem die Vorgabewerte
    Verwendung finden:

        show_menu2(0, SM2_ROOT, SM2_ALL, SM2_ALL, false, false, '<ol>', '</ol>');

Bitte beachten: bis einschliesslich $aOptions müssen alle Parameter explizit übergeben werden!
Quelle: /modules/show_menu2/README.de.txt

Die Parameter:
Quote
$aMenu     
    Nummer des Menüs. Diese ist nützlich um mehrere Menüs auf einer Seite zu   
    verwenden.
    Menü Nummer 0 ist das Vorgabemenü der aktuellen Seite, SM2_ALLMENU gibt alle
    im System verwendeten Menüs zurück.

$aStart 
    Gibt an, ab welcher Ebene die Erzeugung des Menüs beginnen soll. In den     
    meisten Fällen wird dies die oberste Ebene des anzuzeigenden Menüs sein. Es
    kann einer der folgenden Werte verwendet werden:

        SM2_ROOT+N  Beginnt N Ebenen unterhalb der obersten Ebene, z.B.:
                    SM2_ROOT      Beginnt auf der obersten Ebene
                    SM2_ROOT+1    Beginnt eine Ebene unterhalb der obersten Ebene
                    SM2_ROOT+2    Beginnt zwei Ebenen unterhalb der obersten Ebene

        SM2_CURR+N  Beginnt N Ebenen unterhalb der aktuellen Ebene, z.B.:
                    SM2_CURR      Beginnt auf der aktuellen Ebene. Alle Geschwister
                                  der aktuellen Ebene
                    SM2_CURR+1    Beginnt eine Ebene unterhalb der aktuellen Ebene
                                  mit allen Unterebenen

        page_id     Verwendet die Seite mit der angegebenen page id als Elternelement.
                    Alle Untermenüs dieser Seite werden angezeigt.
                    (Die page id kann ermittelt werden, wenn man die Seite im
                    Admin-Backend editiert, sie steht dann in der Adresszeile des     
                    Browsers: http://SITE/admin/pages/modify.php?page_id=35

$aMaxLevel   
    Die maximale Anzahl der Ebenen die angezeigt werden. Die Anzeige
    beginnt ab der in $aStart festgelegten Ebene, bis hin zu der hier
    festgelegten Ebene.
       
        SM2_ALL      Keine Beschränkung, alle Ebenen werden angezeigt

        SM2_CURR+N   Zeigt immer die aktuelle Seite + N Ebenen.
                     SM2_CURR      Aktuelle Ebene (keine Unterebene)
                     SM2_CURR+3    Alle übergeordneten + aktuelle + 3 Unterebenen

        SM2_START+N  Beginnt immer auf der Startebene + N Ebenen.
                     Die Ebenen werden unabhängig davon angezeigt,egal
                     auf welcher Ebene sich die aktuelle Seite befindet.
                     SM2_START     Eine einzelne Ebene ab der Startebene.
                     SM2_START+1   Startebene + eine Ebene darunter.

        SM2_MAX+N    Zeigt höchstens N Ebenen ab der Startebene.
                     Ebenen unterhalb der aktuellen Ebene werden nicht angezeigt.
                     SM2_MAX       Nur die Startebene (gleiche Wirkung wie SM2_START)
                     SM2_MAX+1     Die Startebene und eine Ebene darunter.

$aOptions   
    Spezielle Flags für verschiedene Menügenerierungs Optionen. Sie können mittels
    einer ODER Verknüpfung (|) miteinander kombiniert werden. Um beispielsweise
    sowohl TRIM als auch PRETTY zu definieren, verwendet man: (SM2_TRIM | SM2_PRETTY).

    GROUP 1
    -------
    Aus dieser Gruppe muss stets genau ein Flag angegeben werden. Diese Flags
    bestimmen auf welche Weise die Geschwisterelemente im Menübaum in der
    Ausgabe unterdrückt werden.
   
    SM2_ALL         Zeigt alle Zweige des Menübaums
                        A-1 -> B-1
                            -> B-2 -> C-1
                                   -> C-2 (CURRENT)
                                          -> D-1
                                          -> D-2
                                   -> C-3
                        A-2 -> B-3
                            -> B-4

    SM2_TRIM        Zeigt alle Geschwistermenüs der Seite im aktuellen Pfad.
                    Alle Untermenüs von Elemnten die sich nicht im Pfad befinden
                    werden entfernt.
                        A-1 -> B-1
                            -> B-2 -> C-1
                                   -> C-2 (CURRENT)
                                          -> D-1
                                          -> D-2
                                   -> C-3
                        A-2

    SM2_CRUMB       Zeigt den Breadcrumb Pfad des Menüs an, also den aktuellen
                    Menüpunkt sowie alle Menüpunkte die dorthin führen.
                        A-1 -> B-2 -> C-2 (CURRENT)

    SM2_SIBLING     Wie SM2_TRIM, es werden aber nur Geschwistermenüs der aktuellen
                    Seite angezeigt. Alle anderen Punkte werden unterdrückt.
                        A-1 -> B-2 -> C-1
                                   -> C-2 (CURRENT)
                                          -> D-1
                                          -> D-2
                                   -> C-3

    GROUP 2
    -------
    Diese Flags sind optional, sie können in beliebiger Anzahl kombiniert werden.

    SM2_NUMCLASS    Fügt die nummerierten Menüklassen "menu-N" und
                    "menu-child-N hinzu.
       
    SM2_ALLINFO     Lädt alle Felder aus der Seitentabelle der Datenbank.
                    Dies verursacht einen ziemlich hohen Speicherverbauch und sollte
                    deshalb nur mit Bedacht verwendet werden.
                    Dadurch werden z.B. die Keywords, die Seitenbeschreibung sowie
                    all die anderen Informationen verfügbar, die normalerweise nicht
                    geladen werden.
                    Bitte beachten: dieses Flag muss beim ERSTEN Aufruf von schow_menu2
                    für die jeweilige Menü ID verwendet werden, oder in Verbindung
                    mit SM2_NOCACHE, sonst zeigt es keine Wirkung.
   
    SM2_NOCACHE     Die aus der Datenbank gelesenen Daten werden bei erneutem Aufruf von
                    show_menu2 nicht wiederverwendet sondern erneut aus der Datenbank
                    gelesen.
   
    SM2_PRETTY      Bringt die HTML-Ausgabe des Menüs mittels Leerzeichen und
                    Zeilenumbrüchen in eine gut lesbare Form. Das ist besonders
                    nützlich beim Debuggen der Menüausgabe.
   
    SM2_BUFFER      Gibt den HTML-Code nicht direkt aus, sondern speichert ihn intern
                    zwischen und gibt ihn als kompletten String aus.
   
    SM2_CURRTREE    Schliesst alle anderen Toplevelmenüs von der Betrachtung aus.
                    Es werden nur Menüpunkte des aktuellen Menüzweiges dargestellt.
                    Dieses Flag kann bei Bedarf mit jedem Flag aus der Gruppe 1
                    kombiniert werden.
   
    SM2_ESCAPE      Wendet htmlspecialchars auf den Menüstring an.
                    Dies kann bei älteren WebsiteBaker Installationen erforderlich
                    sein um eine valide HTML Ausgabe zu erzeugen.
                       
    SM2_SHOWHIDDEN  Hidden pages are usually hidden all of the time, including
                    when they are active (i.e. current page or a parent page).
                    Use private pages for time when you want pages to be
                    hidden except when active. However for compatibility with
                    release 4.8, supply this flag to enable hidden pages to
                    become visible when they are active.

    SM2_XHTML_STRICT   Stellt die XHTML-Kompatibilität der Links sicher indem
               in per [a] oder [ac] formatierten Links die Targetangabe
               entfernt und das Argument title="[page_titel]" eingefügt
               wird. Bei manuell zusammengestellten Links ist der Designer
               selbst für die XHTML-Konformität zuständig.

   SM2_NO_TITLE   Unterdrückt die Ausgabe des Inhaltes des Title-Attributes
               bei [a] oder [ac] formatierten links. Im XHTML-Strikt Modus
                    wird 'title' mit einen &nbsp; ausgegeben.

    Für diesen Parameter gibt es auch einen erweiterten Modus, bei dem die Optionen
    als assoziatives Array übergeben werden. Näheres dazu im Abschnitt ERWEITERTE
    OPTIONEN. Für die meisten Anwendungsfälle wird dies jedoch NICHT benötigt.
   
$aItemOpen
    Dies legt den Formatstring fest, mit dem jeder einzelne Menüeintrag begonnen
    wird. Für den allerersten Menüeintrag kann mittels $aTopItemOpen ein anderer
    Formatstring definiert werden.
    Wenn dieser Parameter auf false gesetzt wird, wird der Vorgabe Formatstring
    '
  • [a][menu_title]</a>' verwendet um die Kompatibilität zur Website Baker
        Standardfunktion show_menu() zu gewährleisten.
        Da die Formatierung mittels CSS-Klassen oftmals einfacher ist, wenn sie auf den
        <a> tag angewendet werden, empfiehlt es sich hier folgenden Formatstring zu
        verwenden: '<li>[ac][menu_title]</a>'.
       
        Dieser Parameter kann auch als Instanz eine Formatierungklasse für das Menü
        verwendet werden. Die nähere Beschreibung dazu findet sich im Abschnitt FORMATTER.
        Wenn hier ein Formatter angegeben wird, werden alle Argumente
        nach $aItemOpen ignoriert.

    $aItemClose
        Dieser String schließt jeden Menüpunkt ab.
        Bitte beachten: dies ist kein Formatstring und es werden keine Schlüsselworte
        ersetzt!
        Wenn dieser Parameter auf false gesetzt ist, wird die Vorgabe '</li>' verwendet.
       
    $aMenuOpen
        Mit diesem Formatstring wird eine Liste von Menüeinträgen geöffnet. Für das erste
        Menü kann mittels $aTopMenuOpen ein davon abweichender Formatstring definiert
        werden.
        Wenn dieser Parameter auf false gesetzt ist wird der Vorgabewert '[ul]'
        verwendet.
       
    $aMenuClose
        Dieser String schließt jedes Menü ab.
        Bitte beachten: dies ist kein Formatstring und es werden keine Schlüsselworte
        ersetzt!
        Wenn dieser Parameter auf false gesetzt ist, wird die Vorgabe '</ul>' verwendet.

    $aTopItemOpen
        Der Formatstring für den allerersten Menüpunkt. Wenn dieser Parameter auf false
        gesetzt wird, wird der selbe Formatstring wie bei $aItemOpen verwendet.

    $aTopMenuOpen
        Der Formatstring für das erste Menü. Wenn dieser Parameter auf false
        gesetzt wird, wird der selbe Formatstring wie bei $aMenuOpen verwendet.

Quelle: /modules/show_menu2/README.de.txt

Bitte beachtet, dass das nur ein Auszug aus der Readme des Show_Menu2 ist. Es empfiehlt sich diese Readme in Ruhe zu lesen.


Da es immer wieder zu Fragen kommt, wie man weitere Menüs Definieren kann verweiße ich auf den dazugehörigen Beitrag:
zum beitrag

Lösungen für verschiedene Menüs:

Auch hier gibt es zu beachten, viele der Codestellen stammen von der README und der dead link:

Um beispielsweise nur Menüpunkte aus der obersten Ebene der Menüstruktur darzustellen, könnte man folgenden Aufruf verwenden:
[/list]
Code: [Select]
show_menu2(0, SM2_ROOT, SM2_START);
Bis zu zwei Unterebenen der aktuellen Seite anzuzeigen:
Code: [Select]
show_menu2(0, SM2_CURR+1, SM2_CURR+2);
Das gesamte Menü ausgeben:
Code: [Select]
show_menu2(0, SM2_ROOT, SM2_ALL, SM2_ALL|SM2_NUMCLASS|SM2_PRETTY, false, false, '<ul class="mark [class]">');
Sitemap mit Show_Menu2:
Code: [Select]
show_menu2(SM2_ALLMENU, SM2_ROOT, SM2_ALL, SM2_ALL|SM2_ALLINFO, '[li]<span class="content">[a][page_title]</a> (menu: [a][menu_title]</a>)<br /><i>[description]</i><br />([keywords])</span>', false, '<ul class="sitemap [class]">');
Breadcrumbs mit Show_Menu2 (Anmerkung: WebsiteBaker hat auch eine eigene Funktion dafür: show_breadcrumbs())
Code: [Select]
show_menu2(0, SM2_ROOT, SM2_CURR, SM2_CRUMB, '<span class="[class]"> > [a][menu_title]</a>', '</span>', '', '', '<b>Sie befinden sich hier:</b> <span class="[class]">[a][menu_title]</a>');
Nur den Aktuellen Menüzweig ausgeben:
Code: [Select]
show_menu2(0, SM2_ROOT, SM2_ALL, SM2_ALL|SM2_CURRTREE);
Tabellenbasiertes Menü:
Code: [Select]
<table border="1">
show_menu2(0, SM2_ROOT, SM2_START, SM2_ALL, '<tr><td class="[class]">[a][menu_title]</a>', '</td></tr>', '', '');
</table>

Span basiertes Menü:
Code: [Select]
show_menu2(0, SM2_ROOT, SM2_START, SM2_ALL, '<span>| [a][menu_title]</a>', ' |</span>', '', '');
Accordion Menü mit Show_Menu2:
Zum Beitrag

Navigation in der Seitenleiste soll den Text der Übergeordneten Seite als Überschrift tragen
Zum Beitrag

Grafisches Drop-Down Menü 2 Sprachig
Zum Beitrag

Spezielle Seite, nur 1 Ebene tief
Code: [Select]
show_menu2(1, 79, SM2_START+1, SM2_ALL|SM2_PRETTY);Zum Beitrag

Gleiche Menütitel, verschiedene Seitentitel
Zum Beitrag

Einen einzigen Seitenbaum mit einem oberen Horizontalmenü und einem abhängigen seitlichen Vertikalen Untermenü
Code: [Select]
<?php  show_menu2(1SM2_ROOTSM2_STARTSM2_TRIM |  SM2_NUMCLASS '<li>[ac][menu_title]</a>','</li>','<ul>','</ul>');  ?>
Code: [Select]
<?php  show_menu2(0SM2_ROOT+1SM2_CURR+3SM2_TRIM |  SM2_NUMCLASS '<li>[ac][menu_title]</a>','</li>','<ul>','</ul>');  ?>Zum Beitrag

Trennzeichen nicht anzeigen
CSS - Lösung:
Code: [Select]
<style type="text/css">
span.menu-current { display: none; } /* hier wird der Link bei Bedarf ausgeblendet */ }
span.menu-sibling { /* hier das rein, was bisher in .siblings drin war */ }
span.menu-sibling a { /* hier die Grundformatierung für den Link */ }
span.menu-sibling a:hover { /* hier die Hover-Formatierung für den Link */ }
span.menu-sibling span { /* hier die Formatierung für den Trenner (Pipe) */ }
span.menu-last span { display: none; } /* hier wird der Trenner bei Bedarf ausgeblendet */
</style>

show_menu2(
0,
SM2_CURR,
SM2_CURR,
SM2_PRETTY,
'<span class="[class]">[a][menu_title]<span> | </span></a>',
'</span>',
'',
''
);
Bedienungslösung:
Code: [Select]

<style type="text/css">
span.menu-sibling { /* hier das rein, was bisher in .siblings drin war */ }
span.menu-sibling a { /* hier die Grundformatierung für den Link */ }
span.menu-sibling a:hover { /* hier die Hover-Formatierung für den Link */ }
span.menu-sibling span { /* hier die Formatierung für den Trenner (Pipe) */ }
</style>

show_menu2(
0,
SM2_CURR,
SM2_CURR,
SM2_PRETTY,
'[if(class==menu-sibling){<span class="[class]">[a][menu_title] }][if(class==menu-sibling && class!=menu-last){<span> | </span>}][if(class==menu-sibling){</a>}]',
'[if(class==menu-sibling){</span>}]',
'',
''
);
Zum Beitrag


[gelöscht durch Administrator]

Manu: some links updated
« Last Edit: July 30, 2018, 12:06:28 PM by DarkViper »
Ich würde gern die Welt verändern, doch Gott gibt mir den Quellcode nicht...

Offline Hans

  • Posts: 912
  • Gender: Male
Re: Show_Menu2 - README + Lösungen für verschiedene Menüs
« Reply #1 on: December 18, 2011, 12:18:38 PM »
Danke Badknight!
Hans
Hans - Nijmegen - The Netherlands

Offline Luisehahne

  • WebsiteBaker Org e.V.
  • **
  • Posts: 4156
  • Gender: Male
    • Webdesign und Entwicklung WebsiteBaker
Re: Show_Menu2 - README + Lösungen für verschiedene Menüs
« Reply #2 on: March 13, 2012, 07:27:28 PM »
Horizontal Navigation mit submenues, wo nur in den submenues eine url hinterlegt ist.

Code: [Select]
<?php
$aMenu  
0;
$aNavStart SM2_ROOT;
$MaxLevel SM2_ALL;
$aNavOption  = array('flags' => (SM2_ALL|SM2_PRETTY|SM2_NUMCLASS|SM2_XHTML_STRICT|SM2_BUFFER) );
// $aItemOpen    = '<li><a href="[url]" class="[class] navlev[level]">[menu_title]</a>}'."\n";
$aItemOpen    '<li>[if( class == menu-0 && class == menu-expand ){<a class="[class] navlev[level]">[menu_title]</a>}else{<a href="[url]" class="[class] navlev[level]">[menu_title]</a>}]';
$aItemClose   '</li>';
$aMenuOpen    '<ul class="ullev[level]">';
$aMenuClose   '</ul>';
$aTopItemOpen true;
$aTopMenuOpen true;

$Navigation   show_menu2$aMenu$aNavStartSM2_ALL$aNavOption,$aItemOpen$aItemClose,$aTopItemOpen,$aTopMenuOpen );
$Navigation preg_replace('/<\!--.*?-->/siu','',trim($Navigation));
echo  
$Navigation;
?>



[gelöscht durch Administrator]
Immer nur von der Zukunft reden, die Gegenwart vergessen und auf die Vergangenheit schimpfen
Neues Unwort: Schnappatmung

Offline Yetiie

  • Posts: 778
Re: Show_Menu2 - README + Lösungen für verschiedene Menüs
« Reply #3 on: June 14, 2012, 12:14:06 AM »
Deep impressed.
DANKE  :-)

NorHei

  • Guest
Re: Show_Menu2 - README + Lösungen für verschiedene Menüs
« Reply #4 on: June 14, 2012, 09:40:47 PM »
@Luise

Und das dazu passende CSS?

Offline md001

  • Posts: 8
  • Gender: Male
Re: Show_Menu2 - README + Lösungen für verschiedene Menüs
« Reply #5 on: September 04, 2012, 12:03:31 PM »
Wäre es - besonders für Neueinsteiger - nicht zu überlegen vorgefertigte Menüs zur Verfügung zu stellen (inkl. CSS). Besonders die oft vernachlässigten, aber beliebten, Menüs im Querformat.  :roll:

jacobi22

  • Guest
Re: Show_Menu2 - README + Lösungen für verschiedene Menüs
« Reply #6 on: September 04, 2012, 12:24:13 PM »
und wieviele Varianten hättest du gern?  8 Milliarden - für jeden Menschen eins?
Jeder möchte etwas anderes und wenn man heute 50 Varianten hinstellt, ist die gesuchte garantiert nicht dabei. Viele Lösungen gibt es hier im Forum schon, man muß nur mal danach suchen  :wink:

Offline Hans

  • Posts: 912
  • Gender: Male
Re: Show_Menu2 - README + Lösungen für verschiedene Menüs
« Reply #7 on: September 04, 2012, 12:52:24 PM »
Badknight hat die Mühe genommen einige Menues zu sammeln und hier ins Forum zu publizieren: http://www.websitebaker2.org/forum/index.php/topic,23012.0.html
Vielleicht können auch andere show_menu savy Mitglieder dieses Forum Ihre Erfahringen teilen...

EDIT Siehe jetzt dass das hier im diesem Thread ist, Verzeihung ;-)
Hans
« Last Edit: September 04, 2012, 12:55:30 PM by Hans »
Hans - Nijmegen - The Netherlands

jacobi22

  • Guest
Re: Show_Menu2 - README + Lösungen für verschiedene Menüs
« Reply #8 on: September 04, 2012, 12:54:55 PM »
Badknight hat die Mühe genommen einige Menues zu sammeln und hier ins Forum zu publizieren: http://www.websitebaker2.org/forum/index.php/topic,23012.0.html
Vielleicht können auch andere show_menu savy Mitglieder dieses Forum Ihre Erfahringen teilen...
Hans


schau mal nach ganz oben in diesem Beitrag  :wink:

Offline masju

  • Posts: 109
  • Gender: Male
Re: Show_Menu2 - README + Lösungen für verschiedene Menüs
« Reply #9 on: April 24, 2014, 08:53:14 AM »
Hallo zusammen,
wie löst man denn folgende Aufgabe:

Ich möchte ein Menü anzeigen mit allen Seiten des aktuellen Baums ab Ebene 2.

Hintergrund: Ich habe eine zweisprachige Seite, Ebene 1 sind die beiden Sprachen (z.B. DE und EN).
Wenn man sich im jeweiligen "Sprachzweig" befindet soll jeweils der gesamte zugehörige Baum angezeigt werden.
Also Startebene: 2
bis beispielsweise Ebene 4
aber ohne die Menüpunkte der anderen Sprache und ohne Ebene 1.

Danke und Gruß,
masju


jacobi22

  • Guest
Re: Show_Menu2 - README + Lösungen für verschiedene Menüs
« Reply #10 on: April 24, 2014, 12:45:14 PM »
Grundsätzlich sollte dein Seitenbaum so aufgeteilt sein, das jede Sprache einen eigenen Zweig bildet. Wichtig ist, das jede Unterseite des Zweiges auch der entsprechenden Sprache zugeordnet ist. Im Normalfall wird die eingestellte Sprache den Kindern (Unhterseiten) vererbt. Legt man zu Beginn eine Seite EN an, gibt dieser aber nicht sofort die geewünschte Sprache EN, wird immer die aktuell eingestellte Sprache auf eine neuangelegte Seite vererbt (ein Fehler, der recht häufig auftritt)

Das Menü selbst bewegt sich dann immer nur in diesem gewähltem Zweig. Bist du einmal auf einer englischen Seite, sollten alle Seite mit Sprache Deutsch nicht Teil des Menüs sein.

ansonsten starte mit SM2_ROOT+1 bzw die Ebene, wo du starten willst mit diesem Menü
und für den Rest SM2_ALL

Offline masju

  • Posts: 109
  • Gender: Male
Re: Show_Menu2 - README + Lösungen für verschiedene Menüs
« Reply #11 on: April 27, 2014, 06:43:06 PM »
Hallo Jacobi,

Die beiden Sprachen sind korrekt voneinander getrennt:
DE
 Seite 1
 Seite 2
 Seite 3
   Seite 3.1
   Seite 3.2
 Seite 4
DK
 Seite 1
 Seite 2
 Seite 3
   Seite 3.1
   Seite 3.2
 Seite 4

Deine Lösung hatte ich schon versucht:

Code: [Select]
    show_menu2 (1,
    SM2_ROOT+1,
    SM2_ALL,
    SM2_PRETTY, (...)

Klappt aber nicht wie erwartet: Ich bekomme hier im Baum DE oder DK immer nur Ebene 2 angezeigt. Erst wenn ich z.B. Seite 3 anklicke werden auch die "Kinder" 3.1 und 3.2 angezeigt  :?. Sprachen sind korrekt zugewiesen.

jacobi22

  • Guest
Re: Show_Menu2 - README + Lösungen für verschiedene Menüs
« Reply #12 on: April 27, 2014, 07:34:24 PM »
nein, 2 x SM2_ALL
Code: [Select]
<?php show_menu2(1SM2_ROOT+1SM2_ALLSM2_ALL|SM2_PRETTY,
sollte das nicht auf Anhieb gehen, bitte im Quelltext der Seite nachschauen, ob diese Menüpunkte geladen sind und ob sie ggf vom CSS ausgeschalten werden (passiert z.B., wenn man z.b. ein Menücode verwendet, der im Original diese Untermenüpunkte erst beim Hovern zeigen soll (display:none mit display:block ersetzen))


Offline dbs

  • Betatester
  • **
  • Posts: 7553
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Show_Menu2 - README + Lösungen für verschiedene Menüs
« Reply #13 on: September 06, 2014, 09:58:33 AM »
Horizontal Navigation mit submenues, wo nur in den submenues eine url hinterlegt ist.

Code: [Select]
<?php
$aItemOpen    
'<li>[if( class == menu-0 && class == menu-expand ){<a class="[class] navlev[level]">[menu_title]</a>}else{<a href="[url]" class="[class] navlev[level]">[menu_title]</a>}]';

Diese Zeile/Abfrage funktioniert bei mir nicht.
Erst nach Ersetzen von class == menu-0 mit level == 0 kam das gewünschte Ergebnis.

Offline Blueeyes007

  • Posts: 76
  • Gender: Male
Re: Show_Menu2 - README + Lösungen für verschiedene Menüs
« Reply #14 on: January 07, 2015, 11:32:30 AM »
Horizontal Navigation mit submenues, wo nur in den submenues eine url hinterlegt ist.

Code: [Select]
<?php
$aMenu  
0;
$aNavStart SM2_ROOT;
$MaxLevel SM2_ALL;
$aNavOption  = array('flags' => (SM2_ALL|SM2_PRETTY|SM2_NUMCLASS|SM2_XHTML_STRICT|SM2_BUFFER) );
// $aItemOpen    = '<li><a href="[url]" class="[class] navlev[level]">[menu_title]</a>}'."\n";
$aItemOpen    '<li>[if( class == menu-0 && class == menu-expand ){<a class="[class] navlev[level]">[menu_title]</a>}else{<a href="[url]" class="[class] navlev[level]">[menu_title]</a>}]';
$aItemClose   '</li>';
$aMenuOpen    '<ul class="ullev[level]">';
$aMenuClose   '</ul>';
$aTopItemOpen true;
$aTopMenuOpen true;

$Navigation   show_menu2$aMenu$aNavStartSM2_ALL$aNavOption,$aItemOpen$aItemClose,$aTopItemOpen,$aTopMenuOpen );
$Navigation preg_replace('/<\!--.*?-->/siu','',trim($Navigation));
echo  
$Navigation;
?>



Hallo Dietmar,

sind dann die Hauptseiten nur leere Seiten vom Typ "WYSIWYG" oder wie muss ich die Hauptseiten handhaben, bzw. einstellen?

 
Gruß Steve

Alles kann, nichts muss...

Offline jacobi22

  • Posts: 5201
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Show_Menu2 - README + Lösungen für verschiedene Menüs
« Reply #15 on: January 07, 2015, 11:42:19 AM »
Quote
sind dann die Hauptseiten nur leere Seiten vom Typ "WYSIWYG" oder wie muss ich die Hauptseiten handhaben, bzw. einstellen?

das kannst du handhaben, wie du es brauchst. Umsetzbar ist das mit allen Modultypen, allerdings wäre ein Typ Menulink wenig hilfreich,
Es ist ja nicht ausgeschlossen, das diese "leeren" Seiten über Links von anderen Seiten erreichbar sind
Probleme sind da, um sie zu lösen, nicht, um nach Ausreden zu suchen.

Offline Blueeyes007

  • Posts: 76
  • Gender: Male
Re: Show_Menu2 - README + Lösungen für verschiedene Menüs
« Reply #16 on: January 07, 2015, 01:10:35 PM »
Hallo Uwe,

vielen Dank für Deine scnelle Antwort.

Das wäre nämlich die nächste Frage gewesen. Was passiert, wenn eine Suchmaschine diesen Link, der Hauptkategorie, aufgreift, wo wird sie dann hinverlinkt?

Diese Menü-Variante wäre nämlich für ein responsive-Design nicht schlecht. Das bei Berührung der Hauptkategorie, erstmal nur die Sub-Menus aufklappen und sonst nichts weiter passiert.

Werde das alles mal in Ruhe testen.

Gruß Steve

Alles kann, nichts muss...

Offline jacobi22

  • Posts: 5201
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Show_Menu2 - README + Lösungen für verschiedene Menüs
« Reply #17 on: January 07, 2015, 01:16:01 PM »
Was passiert, wenn eine Suchmaschine diesen Link, der Hauptkategorie, aufgreift, wo wird sie dann hinverlinkt?

Frage praktisch selbst beantwortet ... LINK....
wenn kein Link vorhanden ist, wird er auch nicht indexiert. Wäre auch Quatsch, wenn nichts da ist.
Hinterlegst du aber einen Inhalt, dann hast du sicher auch einen (internen) Link dahin, somit wäre der Inhalt dann wieder in der Liste der SuMa's
Probleme sind da, um sie zu lösen, nicht, um nach Ausreden zu suchen.

Offline smiley83

  • Posts: 1
Re: Show_Menu2 - README + Lösungen für verschiedene Menüs
« Reply #18 on: May 15, 2017, 12:42:54 AM »
Hallo liebe leute bin neu hir und habe eine frage bin grade da bei  mit mein menu und hätte gerne das

menü


Quote
<link rel="stylesheet" href="mbcsmbyfo7.css" type="text/css" />

<div id="mbyfo7ebul_wrapper" style="max-width: 127px;">
  <ul id="mbyfo7ebul_table" class="mbyfo7ebul_menulist css_menu">
  <li><div class="buttonbg gradient_button gradient45"><div class="arrow"><a>Leistungen</a></div></div>
    <ul class="gradient_menu gradient122">
    <li class="gradient_menuitem gradient40 first_item"><a title="">Spedition & Logistik</a></li>
    <li class="gradient_menuitem gradient40"><a title="">Gebäudereinigung</a></li>
    <li class="gradient_menuitem gradient40 last_item"><a title="">Handel</a></li>
    </ul></li>
  </ul>
</div>
<script type="text/javascript" src="mbjsmbyfo7.js"></script>

Wie mus ich das hir den einstellen

Quote

<?php show_menu2(1,0,1,true,'<li>[a][menu_title][/a]</li>','','','','class="mainlevel_nav"',''); ?>