Mehrere Menüs

show_menu2, Version 4.9x

Show_Menu2 ist ein Code-Snippet für das CMS WebsiteBaker. Seit WebsiteBaker 2.7 ist es im CMS enthalten.
Die bisherige show_menu-Funktion wird komplett ersetzt und um show_menu2 erweitert. Alle zum Erstellen des Menüs erforderlichen Daten werden durch eine einzige Datenbankabfrage generiert. Durch umfangreiche Anpassungsmöglichkeiten des generierten HTML-Codes werden alle möglichen Menütypen (Listen, Breadcrumbs, Sitemaps, etc.) unterstützt.) erzeugt werden können.

  • Installation
  • Verwendung von Show_Menu2
  • FAQ
  • Funktion
  • HTML-Ausgabe
  • Parameter
  • Erweiterte Optionen
  • Formatzeichenfolgen
  • Bedingte Formatierung
  • Formatierer

INSTALLATIONup

Da show_menu2 normalerweise in WebsiteBaker vorhanden ist, ist keine Installation erforderlich. Wenn es wider Erwarten nicht existiert, können Sie es hier herunterladen.

Verwenden von SHOW_MENU2up

Um show_menu2 zu verwenden, müssen Sie die Vorlage ändern, in der das Menü angezeigt werden soll. Bitte beachten Sie: Wenn alte Menüaufrufe ersetzt werden, müssen auch die entsprechenden neuen Parameter verwendet werden, die show_menu2 benötigt.

In den meisten Fällen ist der Standardaufruf mit mindestens 4 Parametern von show_menu2 ausreichend. In diesem Fall werden die Standardwerte verwendet, dadurch wird ein Menü erstellt, das die aktuelle Seite und die Unterseiten der aktuellen Seite anzeigt:

show_menu2(0, SM2_ROOT, SM2_START, SM2_TRIM);

Bitte beachten Sie: Der Aufruf von show_menu2 ist PHP und muss normalerweise in PHP-Codezeichen eingeschlossen sein (es sei denn, der Aufruf befindet sich bereits im PHP-Code):

 <?php show_menu2(0, SM2_ROOT, SM2_START, SM2_TRIM); ?>

Dieses Standardmenü erstellt bereits ein komplettes Menü auf Listenbasis mit mehreren Klassen, die eine einfache Formatierung mit CSS ermöglichen. Zum Beispiel wird die Klasse „menu-current“ zum < -> -Tag des aktuellen Menüelements hinzugefügt. Zusätzlich enthält jeder Menüpunkt der Unterpunkte die Klasse „menu-expand“. Dies ermöglicht es, sehr differenzierte CSS-Regeln für jeden Menüpunkt zu erstellen.
Zum Beispiel:

li.menu-expand { font-weight: bold; }li.menu-current { background: red; }

Der Abschnitt „HTML-Ausgabe“ enthält eine detaillierte Beschreibung, welche Klassen welchem Element zugeordnet sind. Durch die Verwendung verschiedener Parameter im Funktionsaufruf show_menu2 ist es auch möglich, recht umfangreiche und unterschiedliche Menüstrukturen zu erstellen. Um beispielsweise nur Menüelemente aus der obersten Ebene der Menüstruktur anzuzeigen, können Sie den folgenden Aufruf verwenden:

show_menu2(0, SM2_ROOT, SM2_START, SM2_TRIM);

Oder um beispielsweise bis zu zwei Unterebenen der aktuellen Seite anzuzeigen:

show_menu2(0, SM2_CURR+1, SM2_CURR+2, SM2_TRIM);

Es gibt viele Möglichkeiten, verschiedene Menüstrukturen zu erstellen. Zahlreiche Beispiele finden Sie auf der Demo-Website: KLICK

FAQup

F: Ich bin kein Programmierer. Gibt es keine einfachere Dokumentation?
EIN: Nein, denn dies ist bereits die einfache Dokumentation.

F: Wie kann ich ein Dropdown-Menü erstellen?
A: Das hat nichts mit show_menu2 zu tun. Um ein Dropdown-Menü zu erstellen, müssen Sie nur den CSS-Code der jeweiligen Vorlage anpassen. Die notwendigen Anpassungen finden Sie z.B. im Template „allcss2“ aus dem WebsiteBaker Addon Repository -> https://addon.websitebaker.org/

F: Warum verschwindet das Menü, nachdem ich die Suchfunktion in einer mehrsprachigen WebsiteBaker-Seite verwendet habe?
A: Die notwendigen Zeilen fehlen in der verwendeten Vorlage:

1. Im WB Admin Backend: Optionen -> Erweiterte Optionen anzeigen -> Suchoptionen -> Kopfzeile – Fügen Sie die folgende Zeile direkt nach dem öffnenden < -Formular> -Tag ein:

<input type="hidden" name="referrer" value="" />

2. fügen Sie die folgende Zeile in den Index ein.php der verwendeten Vorlage unmittelbar nach dem öffnenden <Formular> Tag der Suche:

<input type="hidden" name="referrer" value="<?php echo defined('REFERRER_ID')?REFERRER_ID:PAGE_ID;?>" />

F: Mehrsprachig? Das klingt toll. Wie machst du das?
EIN: https://help.websitebaker.org/en/designerguide/multilingual-websites.php

F: Jedes Mal, wenn eine Seite aufgerufen wird, generiert SM2 die folgende Warnmeldung:
„show_menu2 error: $AOptions is invalid. Keine Flaggen aus Gruppe 1 geliefert!“
EIN: Die falschen Werte oder eine falsche Anzahl von Werten wurden an die Funktion übergeben.
Im Abschnitt PARAMETER finden Sie die korrekten Flag-Werte, die an den Parameter $AOptions übergeben werden sollen.

F: Wie verwende ich eine andere Klasse / Bild / Farbe / Widget für jeden Eintrag in einem Menü?
A: Verwenden Sie die Formatzeichenfolge in der Zeichenfolge $aItemOpen. Erstellen Sie eine eindeutige Klasse oder ID für jedes Menüelement und verweisen Sie dann in Ihrem CSS oder Javascript auf dieses Element, um alles zu tun, was Sie möchten.
Hinzufügen einer eindeutigen Klasse für jedes Menüelement (oder ähnliches):

"<li><a href="" target="" class=" p"></a>"

… erstellen von Menüpunkten wie …

<li><a href="/pages/foo/bar.php" target="_top" class="menu-top p45">Top Menu</a>

Referenzieren Sie dies in Ihrem CSS wie:

a.p45 { color: red; }

So fügen Sie eine eindeutige ID für jedes Menüelement (oder ähnliches) hinzu):

"<li><a href="" target="" class=""></a>"

… erstellen von Menüpunkten wie …

<li><a href="/pages/foo/bar.php" target="_top" class="menu-top">Top Menu</a>

Referenzieren Sie dies in Ihrem CSS wie:

a#p45 { color: red; }

Beachten Sie, dass die ID nur verwendet werden kann, wenn dieses Menü nur einmal auf der Seite generiert und angezeigt wird (da HTML-IDs innerhalb einer Seite eindeutig sein müssen).

FUNCTIONup

Der vollständige Aufruf und die Standardparameterwerte für show_menu2 lauten wie folgt:

show_menu2( $aMenu = 0, $aStart = SM2_ROOT, $aMaxLevel = SM2_CURR+1, $aOptions = SM2_TRIM, $aItemOpen = '</a>', $aItemClose = '</li>', $aMenuOpen = '', $aMenuClose = '</ul>', $aTopItemOpen = false, $aTopMenuOpen = false);

Der Abschnitt „Parameter“ enthält eine detaillierte Beschreibung jedes einzelnen Parameters.
Jeder Parameter muss absolut korrekt verwendet werden. Die folgenden Regeln können helfen:

$aMenu = 0 ist in den meisten Fällen der beste Wert.
$AStart muss entweder eine Seiten-ID oder ein Wert sein, der mit „SM2_“ beginnt.
$aMaxLevel kann nur Werte erhalten, die mit „SM2_“ beginnen.
$AOptions bis auf wenige Sonderfälle sind nur Werte erlaubt, die mit „SM2_“ beginnen.
Alle anderen 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 Standardwert zu erhalten.

Damit kann z.B. eine nummerierte Liste erstellt werden, während für die einzelnen Menüpunkte weiterhin die Standardwerte verwendet werden:

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

Bitte beachten Sie: Bis einschließlich $AOptions müssen alle Parameter explizit übergeben werden!

HTML Outputup

Die HTML-Ausgabe hängt weitgehend davon ab, welche Parameter an die Funktion übergeben werden. Unabhängig davon werden für jedes Menü immer nachfolgende Klassen verwendet, wobei einzelne Menüpunkte bei Bedarf auch mehrere Klassen aufweisen können.

KLASSE ZUORDNUNG
menu-top Nur der erste Menüpunkt.
menu-parent Beliebiger Hauptmenüpunkt.
menu-current Nur der Menüpunkt der aktuellen Seite.
menu-sibling Alle „Geschwister“ der aktuellen Seite.
menu-child Beliebiges Untermenü der aktuellen Seite.
menü- Erweitern Sie Jedes Menü mit Untermenüs.
menu-first Das erste Element eines Menüs oder Untermenüs.
menu-last Der letzte Eintrag eines Menüs oder Untermenüs.

Die folgenden Klassen werden nur hinzugefügt, wenn das Flag SM2_NUMCLASS gesetzt ist:
menu-N Jeder Menüpunkt, wobei das N für die ABSOLUTE Menütiefe, beginnend mit 0, des jeweiligen Menüpunktes steht.
Die oberste Ebene ist also immer Menü-0, die nächste Ebene ist Menü-1 und so weiter.
menu-child-N Jedes Untermenü der aktuellen Seiten, wobei das N für die RELATIVE Tiefe des Untermenüs steht, beginnend mit 0.

Beispiel für HTML-Ausgabe:

<ul class="menu-top menu-0"> <li class="menu-0 menu-first"> ... </li> <li class="menu-0 menu-expand menu-parent"> ... <ul class="menu-1"> <li class="menu-1 menu-expand menu-first"> ... <ul class="menu-2"> <li class="menu-2 menu-first"> ... <li class="menu-2 menu-last"> ... </ul> </li> <li class="menu-1 menu-expand menu-parent"> ... <ul class="menu-2"> <li class="menu-2 menu-expand menu-current menu-first"> ... ** CURRENT PAGE ** <ul class="menu-3"> <li class="menu-3 menu-child menu-child-0 menu-first"> ... <ul class="menu-4"> <li class="menu-4 menu-child menu-child-1 menu-first"> ... </li> <li class="menu-4 menu-child menu-child-1 menu-last"> ... </li> </ul> </li> <li class="menu-3 menu-child menu-child-0 menu-last"> ... </li> </ul> </li> <li class="menu-2 menu-sibling menu-last"> ... </li> </ul> </li> <li class="menu-1"> ... </li> <li class="menu-1 menu-expand menu-last"> ... <ul class="menu-2"> <li class="menu-2 menu-first menu-last"> ... </li> </ul> </li> </ul> </li> <li class="menu-0 menu-last"> ... </li> </ul> 

PARAMETERup

$aMenu

Menünummer. Dies ist nützlich, um mehrere Menüs auf einer Seite zu verwenden. Menünummer 0 ist das Standardmenü der aktuellen Seite, SM2_ALLMENU gibt alle im System verwendeten Menüs zurück.

$AStart

Gibt die Ebene an, ab der die Erstellung des Menüs beginnen soll. In den meisten Fällen ist dies die oberste Ebene des anzuzeigenden Menüs. Einer der folgenden Werte kann verwendet werden:

SM2_ROOT+N

Startet N Ebenen unterhalb der obersten Ebene, z.B.:

SM2_ROOT Beginnt auf der obersten Ebene
SM2_ROOT+1 Startet eine Ebene unterhalb der obersten Ebene
SM2_ROOT+2 Beginnt zwei Ebenen unterhalb der obersten Ebene

SM2_CURR+N

Startet N Ebenen unterhalb der aktuellen Ebene, z.B.:

SM2_CURR Beginnt bei der aktuellen Ebene. Alle Geschwister der aktuellen Ebene
SM2_CURR+1 Startet eine Ebene unterhalb der aktuellen Ebene mit allen Unterebenen.

page_id

Verwendet die Seite mit der angegebenen Seiten-ID als übergeordnetes Element.
Alle Untermenüs dieser Seite werden angezeigt. (Die Seiten-ID kann durch Bearbeiten der Seite im Admin-Backend ermittelt werden, sie wird in der Adressleiste des Browsers angezeigt: http://SITE/admin/pages/modify.php?page_id=35

$ aMaxLevel

Die maximale Anzahl von Ebenen, die angezeigt werden können. Die Anzeige
beginnt bei der in $AStart angegebenen Stufe bis zur hier angegebenen Stufe.
SM2_ALL

Keine Einschrä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 + aktuellen + 3 Unterebenen

SM2_START+N

Beginnt immer auf der Startebene + N Ebenen.
Die Ebenen werden unabhängig davon angezeigt, auf welcher Ebene sich die aktuelle Seite befindet.

SM2_START Eine einzelne Ebene von der Startebene.
SM2_START+1 Startebene + eine Ebene darunter.

SM2_MAX+N

Zeigt maximal N Stufen ab der Startstufe an.
Ebenen unterhalb der aktuellen Ebene werden nicht angezeigt.

SM2_MAX Nur die Startebene (gleicher Effekt wie SM2_START)
SM2_MAX+1 Die Startebene und eine Ebene darunter.

$ AOptions

Spezielle Flags für verschiedene Menügenerierungsoptionen. Sie können über einen ODER-Link (|) miteinander kombiniert werden.
Um beispielsweise sowohl TRIM als auch PRETTY zu definieren, verwenden Sie : (SM2_TRIM | SM2_PRETTY).

GRUPPE 1
——-
Aus dieser Gruppe muss immer ein Flag angegeben werden. Diese Flags bestimmen, wie die Geschwisterelemente im Menübaum in der Ausgabe unterdrückt werden.

SM2_ALL

Zeigt alle Zweige des Menübaums an

 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 untergeordneten Menüs der Seite im aktuellen Pfad an.
Alle Untermenüs von Elementen, 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, d. h. den aktuellen
-Menüpunkt und alle zu ihm führenden Menüpunkte.

A-1 -> B-2 -> C-2 (CURRENT)

SM2_SIBLING

Wie SM2_TRIM, aber es werden nur Geschwistermenüs der aktuellen Seite angezeigt. Alle anderen Elemente werden unterdrückt.

 A-1 -> B-2 -> C-1 -> C-2 (CURRENT) -> D-1 -> D-2 -> C-3 

GRUPPE 2
——-
Diese Flags sind optional, sie können beliebig 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 Speicherverbrauch und sollte
daher mit Vorsicht verwendet werden.
Dies bedeutet zum Beispiel, dass die Schlüsselwörter, die Seitenbeschreibung und
alle anderen verfügbaren Informationen geladen werden können, die normalerweise nicht
sind.
Bitte beachten: dieses Flag muss beim ERSTEN Aufruf von schow_menu2 gesetzt werden
kann für die jeweilige Menü-ID verwendet werden, oder in Verbindung mit dem
mit SM2_NOCACHE, sonst hat es keine Wirkung.

SM2_NOCACHE

Die aus der Datenbank gelesenen Daten werden beim erneuten Aufruf von show_menu2 nicht wiederverwendet, sondern erneut aus der Datenbank gelesen.

SM2_PRETTY

Bringt die HTML-Ausgabe des Menüs mit Leerzeichen und
Zeilenumbrüchen in eine lesbare Form. Dies ist besonders nützlich beim Debuggen der Menüausgabe.

SM2_BUFFER

Gibt den HTML-Code nicht direkt aus, sondern speichert ihn intern und gibt ihn als vollständigen String aus.

SM2_CURRTREE

Schließt alle anderen Menüs der obersten Ebene von der Anzeige aus.
Es werden nur Menüpunkte des aktuellen Menüzweigs angezeigt.
Dieses Flag kann bei Bedarf mit jedem Flag aus Gruppe 1 kombiniert werden.

SM2_ESCAPE

Wendet htmlspecialchars auf die Menüzeichenfolge an.
Dies kann für ältere WebsiteBaker-Installationen erforderlich sein.
, um eine gültige HTML-Ausgabe zu generieren.

SM2_SHOWHIDDEN

Ausgeblendete Seiten werden normalerweise ständig ausgeblendet, auch wenn sie aktiv sind (d. H. aktuelle Seite oder übergeordnete Seite).
Verwenden Sie private Seiten für die Zeit, in der Seiten ausgeblendet werden sollen, außer wenn sie aktiv sind. Geben Sie jedoch aus Gründen der Kompatibilität mit Release 4.8 dieses Flag an, damit ausgeblendete Seiten sichtbar werden, wenn sie aktiv sind.

SM2_XHTML_STRICT

Stellt die XHTML-Kompatibilität der Links sicher, indem die Zielspezifikation in Links, die mit oder formatiert sind, entfernt und das Argument title=““ eingefügt wird. Bei manuell kompilierten Links ist der Designer für die XHTML-Konformität verantwortlich.

SM2_NO_TITLE

Unterdrückt die Ausgabe des Inhalts des Title-Attributs für oder formatierte Links.
Für diesen Parameter gibt es auch einen erweiterten Modus, in dem die Optionen als assoziatives Array übergeben werden. Weitere Informationen finden Sie im Abschnitt ERWEITERTE OPTIONEN. Für die meisten Anwendungen ist dies JEDOCH NICHT erforderlich.

$ aItemOpen

Dies definiert die Formatzeichenfolge, mit der jeder einzelne Menüpunkt gestartet wird. Für den allerersten Menüpunkt kann mit $aTopItemOpen ein anderer Formatstring definiert werden.
Wenn dieser Parameter auf false gesetzt ist, wird die Standardformatzeichenfolge
‚</a>‘ verwendet, um die Kompatibilität mit der WebsiteBaker-Standardfunktion show_menu() sicherzustellen.
Da die Formatierung mit CSS-Klassen oft einfacher ist, wenn sie auf das <a> -Tag angewendet wird, wird empfohlen, die folgende Formatzeichenfolge zu verwenden: ‚<li></a>‘.
Dieser Parameter kann auch als Instanz einer Formatierungsklasse für das Menü verwendet werden. Eine detailliertere Beschreibung finden Sie im Abschnitt FORMATIERER. Wenn hier ein Formatierer angegeben wird, werden alle Argumente nach $aItemOpen ignoriert.

$aItemClose

Diese Zeichenfolge vervollständigt jeden Menüpunkt. Bitte beachten Sie: Dies ist keine Formatzeichenfolge und es werden keine Schlüsselwörter ersetzt!
Wenn dieser Parameter auf false gesetzt ist, wird der Standardwert ‚</li>‘ verwendet.

$aMenuOpen

Diese Formatzeichenfolge öffnet eine Liste von Menüelementen. Für das erste Menü kann mit $aTopMenuOpen ein anderer Formatstring definiert werden.
Wenn dieser Parameter auf false gesetzt ist, wird der Standardwert “ verwendet.

$aMenuClose

Diese Zeichenfolge vervollständigt jedes Menü. Bitte beachten Sie: Dies ist keine Formatzeichenfolge und es werden keine Schlüsselwörter ersetzt!
Wenn dieser Parameter auf false gesetzt ist, wird der Standardwert ‚</ul>‘ verwendet.

$aTopItemOpen

Die Formatzeichenfolge für den allerersten Menüpunkt. Wenn dieser Parameter auf false gesetzt ist, wird dieselbe Formatzeichenfolge wie für $aItemOpen verwendet.

$aTopMenuOpen

Die Formatzeichenfolge für das erste Menü. Wenn dieser Parameter auf false gesetzt ist, wird dieselbe Formatzeichenfolge wie $aMenuOpen verwendet.

ADVANCED OPTIONSup

Der Parameter $aOptions kann auf zweierlei Arten verwendet werden. Zum einen, wie oben im Abschnitt PARAMETER beschrieben, diese Art sollte für die allermeisten Anwendungsfälle ausreichen. Um allerdings in speziellen Fällen die Sonderoptionen ansprechen zu können, müssen die erforderlichen Werte als assoziatives Array bereitgestellt werden.
Bitte beachten: Die SM2_* Flags sind auch hierbei erforderlich und müßen als ‚flags‘ übergeben werden.

‚flags‘

**CONCELARY ERFORDERLICH** Dies sind die Flags, die oben im Abschnitt PARAMETER unter $AOptions beschrieben wurden.

‚ notrim‘

Dies definiert eine Anzahl von Ebenen, die immer relativ zu der in $AStart definierten Menüebene angezeigt werden. Dadurch wird das Flag SM2_TRIM für diese Ebenen ignoriert.

Um dieses Array zu verwenden, wird empfohlen, es zuerst zu erstellen und dann den Parameter $AOptions mit dem erstellten Array zu liefern:

$options = array('flags' => (SM2_TRIM|...), 'notrim' => 1); show_menu2(0, SM2_ROOT, SM2_CURR+1, $options);

FORMAT STRINGSup

Die folgenden Tags können in den Formatzeichenfolgen für $aItemOpen und $aMenuOpen verwendet werden und sollten durch den entsprechenden Text ersetzt werden.

< ein> -Tag ohne Klasse:

'<a href="" target="">'
< ein> -Tag mit Klasse:

'<a href="" target="" class="">'
< li> Tag mit Klasse:

'<li class="">'
< ul> tag mit Klasse:

'<ul class="">'
Liste der Klassen für diese Seite
Text des Menütitels
(HTML-Entität maskiert, es sei denn, das SM2_NOESCAPE-Flag ist gesetzt)
Die URL zu einer Bilddatei mit normaler Darstellung
Die URL zu einer Bilddatei mit aktiver / schwebender Anzeige
Seitentiteltext
(HTML-Entität maskiert, es sei denn, das SM2_NOESCAPE Flag ist gesetzt)
Die URL zu einer seitenbezogenen Bilddatei
Die URL der Seiten für das <a> -Tag
Das Seitenziel für das <a> -Tag
Die Seiten-ID des aktuellen Menüeintrags.
Die Seiten-ID des übergeordneten Menüelements.
Sie Seite Ebene, dies ist die gleiche Zahl in der „menu-N“ CSS-Tag verwendet.
Anzahl der Geschwister des aktuellen Menüeintrags.
Anzahl aller Geschwister in diesem Menü.
Bedingung (siehe Abschnitt „Bedingte Formatierung“ für Details)

Die folgenden Tags sind NUR verfügbar, wenn das Flag SM2_ALLINFO gesetzt ist.

seitenbeschreibung
Schlüsselwörter der Seite

Bedingte Formatierung up

Die Anweisung zur bedingten Formatierung kann eine der folgenden Formen annehmen:


A

Die Bedingung. Siehe unten für Details.

B

Der Ausdruck, der verwendet wird, wenn die Bedingung erfüllt ist.
Dies kann eine beliebige Zeichenfolge sein, die das Zeichen ‚}‘ nicht enthält.
kann enthalten. Es kann eine beliebige Formatzeichenfolge aus dem Abschnitt
Formatzeichenfolgen‘ enthalten, jedoch keinen weiteren Bedingungstest (da das Zeichen ‚}‘ nicht zulässig ist).

C

Der Ausdruck, der verwendet wird, wenn die Bedingung nicht erfüllt ist.
Dies kann eine beliebige Zeichenfolge sein, die das Zeichen ‚}‘ nicht enthält.
kann enthalten. Es kann eine beliebige Formatzeichenfolge aus dem Abschnitt
Formatzeichenfolgen‘ enthalten, jedoch keinen weiteren Bedingungstest (da das Zeichen ‚}‘ nicht zulässig ist).

Die Bedingung ist eine Kombination aus einem oder mehreren booleschen Vergleichen.
Wenn mehr als ein Vergleich erforderlich ist, muss er mit den anderen Vergleichen kombiniert werden
kann mit || (boolean or – OR) oder && (boolean and – AND) verknüpft werden.

Ein einzelner Vergleich besteht aus dem linken Operanden, dem Operator und dem rechten Operanden.
zB X == Y – wobei X der linke Operand ist, == der Operator und Y der rechte Operand.

Linker Operand. Muss eines der folgenden Schlüsselwörter sein:
class Überprüfen Sie, ob diese Klasse existiert. Nur das „==“ und „!=“ operatoren sind erlaubt. In diesem Fall haben die Operatoren die Bedeutung „enthält“ oder „enthält nicht“ anstelle von „ist gleich“ oder „ist nicht gleich“.
level Überprüfen der Seitenebene.
sib Überprüfen Sie die Anzahl der Geschwister auf der aktuellen Seite.
sibCount Überprüfen Sie die Gesamtzahl der Geschwister im aktuellen Menü.
id Überprüfen Sie die Seiten-ID.
ziel Überprüfung der Zielspezifikation.
Operator. Muss einer der folgenden sein:
< Weniger als
<= Kleiner oder gleich
== Gleich
!= Ungleich
>= Größer oder gleich
> Größer als
Rechter Operand. Der Typ dieses Operanden hängt vom Schlüsselwort ab, das für den linken Operanden verwendet wird.
class Einer der Klassennamen „menu-*“, wie im Abschnitt „Output“ angegeben.
level Überprüfen Sie die Seitenebene anhand der folgenden Werte:

  • < number> die absolute Seitenebene
  • root ist die oberste Ebene der Seite
  • child eine Seitenebene Über der übergeordneten Seitenebene
  • parent die übergeordnete Seitenebene
  • current die aktuelle Seitenebene
  • child die untergeordnete Seitenebene
id Überprüfen Sie die Seiten-ID anhand der folgenden Werte:

  • <number> die absolute Seiten-ID
  • parent die übergeordnete Seiten-ID
  • current die aktuelle Seiten-ID
sib Eine positive ganze Zahl oder „sibCount“, um die Anzahl der Geschwister in diesem Menü zu überprüfen.
sibCount Eine positive ganze Zahl
target Eine Zeichenfolge, die eine mögliche Zielspezifikation darstellt.
Die folgenden Beispiele ergeben „true“ und der Ausdruck {exp} wird ausgeführt, wenn true:
Hat ein Untermenü
Wenn der erste Eintrag in einem Menü
Ist NICHT das erste Element in einem Menü
Wenn der letzte Eintrag in einem Menü
Befindet sich auf der obersten Ebene
Ist NICHT auf der obersten Ebene
Wenn der zweite Eintrag in einem Menü
Wenn in einem Menü mit mehr als einem Eintrag
Ist in einem Menü das hat nicht genau 2 Artikel
Befindet sich in einem Geschwistermenü oder im Untermenü eines Geschwistermenüs
Ist der übergeordnete Punkt der aktuellen ID
Der String ‚_self‘ ist im target-Attribut enthalten.

Wenn eine else-Klausel hinzugefügt wird, wird sie in allen anderen Fällen ausgeführt.
Zum Beispiel wird „foo“ immer ausgeführt, wenn die if-Prüfung falsch ist, also:

Ist NICHT der zweite Punkt im Menü
befindet sich NICHT in einem Menü mit mehr als zwei Einträgen
Bei Mehrfachvergleichen wird der Ausdruck „exp“ nur ausgeführt, wenn:
ist der erste Eintrag ODER ist der vierte oder höhere Eintrag im Menü
Wenn der aktuelle Eintrag Untermenüs ist UND hat

Bitte beachten Sie:
Alle Prüfungen werden in der Reihenfolge durchgeführt, in der sie vermerkt sind, da:

  • Es gibt keine Prüfung auf mögliche Schleifen (alle Prüfungen werden immer ausgeführt).
  • Prüfungen werden nicht gruppiert (Klammern von Prüfungen werden nicht unterstützt)
  • Beide Dinge haben den gleichen Wert.

FORMATTERup

Achtung: Dies ist eine erweiterte und selten verwendete Funktion!

Mit umfangreichen Kenntnissen in der PHP-Programmierung ist es möglich, die vordefinierte
Formatierung von show_menu2 mit Ihrer eigenen zu verwenden.
Im include.php von show_menu2 Sie können sehen, wie Sie den Formatierer schreiben.
Die API, die verwendet werden muss, sieht folgendermaßen aus:

class SM2_Formatter{ // called once before any menu is processed to allow object initialization function initialize() { } // called to open the menu list function startList($aPage, $aUrl) { } // called to open the menu item function startItem($aPage, $aUrl, $aCurrSib, $aSibCount) { } // called to close the menu item function finishItem() { } // called to close the menu list function finishList() { } // called once after all menu has been processed to allow object finalization function finalize() { } // called once after finalize() if the SM2_NOOUTPUT flag is used function getOutput() { }};

Websitebakerist unter der GNU General Public License veröffentlicht

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.