Dokumentation des Multi Purpose php Framework

Die Dokumentation ist noch in Arbeit. Ein Anfang ist zumindest gemacht.

Menü-Konfiguration

Das Menü wird in einer XML-Datei gepflegt und beim Laden des Framework initial eingelesen. Es wirkt sich sichtbar aus auf

  • das Menü rechts oben im Header,
  • die Haupt-Menüpunkte bzw. Hauptäste im oberen horizontalen Balken,
  • das Untermenü links im Baum,
  • die Breadcrumb-Leiste,
  • Die Verarbeitungsschritte von Multi-Step-Formularen,
  • das Footer-Menü.

Beim Einlesen der XML-Datei werden sequentiell ID's für die Menu-Items vergeben. Und zwar negative IDs, die dekrementiert werden, um im positiven Bereich Platz zu schaffen für einen zusätzlichen Baum aus der Datenbank, s. Shop-Plugin.

Im Shop-Plugin wird der Shop-Baum aus der Datenbank z.B. beim Haupt-Menüpunkt 'Shop' eingehängt. Der Baum aus dem Menü-XML mit den Shop-Scripts und den statischen HTML-Seiten und der Shop-Baum aus der Datenbank verschmelzen dann in einer homogenen Datenstruktur.

Eigenschaften von Menu-Items:

Domain Die Domain, unter der das Menu-Item und seine Children-Menu-Items aufgerufen werden.
ServerProtocol Das Internet-Protokoll ('http' oder 'https') unter dem das Menu-Item und seine Children-Menu-Items aufgerufen werden. Default: 'http'.
IsDomainHomepage Ist das Menu-Item die Homepage der eigenen Domain oder der des 1. Parent-Menu-Items?
Werte: 1 oder 0 bzw. leer. Default: leer.
Script Das die Seite erzeugende php-Script bzw. eine mit '|' separierte Liste von Scripts. Z.B. das List- und das Edit-Formular zum Bearbeiten von Daten teilen sich im CRUD-Plugin einen Menüpunkt.
ID Numerischer Identifikator. IDs werden normalerweise zur Ladezeit erzeugt. Es können aber auch selektiv IDs fest zugewiesen werden.
URN Uniform Resource Name, d.h. ein String-Identifikator für URL's.
Description Der im Browser angezeigte Name des Menüeintrags.
Page Der Name einer Datei mit HTML-Code für den Content Bereich.
LeftPage Der Name einer Datei mit HTML-Code für linke Tree-Spalte (optional).
Die Angabe ist nur sinnvoll für Hauptmenü-Items ohne Untermenü-Items. Default: leer.
FullExpand Sollen im Baum stets alle Children-Menu-Items des Menu-Items aufgeblättert dargestellt werden?
Ist für Anchors (s.u.) in den Children implementiert worden, die innerhalb der Seite des Menu-Items verlinken.
Werte: 1 oder 0 bzw. leer. Default: leer.
Anchor Ein sog. Anchor (ohne vorausgehendes '#') für die interne Verlinkung innerhalb
des Dokuments des 1. Parent-Menu-Items mit der Eigenschaft FullExpand=1 (s.o.).
Display Eine mit '|' separierte Liste von Darstellungsarten im Menü.
Z.Z. verfügbar: 'Header', 'Menu', 'Breadcrumbs', 'Progressbar', 'Footer'. Default: 'Menu|Breadcrumbs'. 'Progressbar' ist für Multiple Step Formulare implementiert worden.
IsActive Zum Ein- und Ausblenden von Menu-Items, je nachdem, ob der User sich authentifiziert hat.
Werte: 'Always', 'WhenLoggedIn' oder 'WhenLoggedOut' (Default: 'Always')
OpenAs Wurde implementiert, um das Laden der Druckversion einer Seite zu ermöglichen, d.h. Öffnen der Seite in einem neuem Tab, und zwar ohne Menü (stattdessen mit eigenem HTML Head- und Body-Tag).
Werte: 'Blank', 'PrintVersion' oder leer. Default: leer.
Eigenschaften, die zur Laufzeit initial hinzugefügt werden:
ParentID Der Identifikator des übergeordneten Menu-Items.
Level die Hierarchiestufe im Menü-Baum.
ChildrenCount Anzahl der Untermenüpunkte.
InCurrentPath Boolscher Wert. Ist der Menüeintrag in der Breakcrumb-Liste enthalten?
IsCurrentNode Boolscher Wert. Ist der Menüeintrag die aktuelle Seite?
Hits Nur für die Suche. Treffer-Anzahl im Sub-Baum.
SubMenu Array mit den untergeordneten Menu-Items
FullExpandBaseID Der Identifikator (s.o., 'ID') des 1. Parent-Menu-Items mit der Eigenschaft FullExpand=1 (s.o.). Wurde für die interne Verlinkung innerhalb einer Seite per sog. Anchors (s.o.) implementiert.