wNavigation::createNavigationHTMLFromXML

Generiert eine Navigation auf Basis einer XML-Zeichenkette

Funktionsaufruf

String createNavigationHTMLFromXML(String navigationStr, String template, String mode, String navId, Array options = array())

Parameter

ParameterBeschreibung
navigationStrXML-Zeichenkette der Navigation
templatePfad zum Navigationstemplate
modeModus der Navigationsdarstellung
navIdNavigations-ID des aktuellen Navigationspunkt
optionsZusätzliche Einstellungen
deep
Gibt an, wie viele Level berücksichtigt werden sollen
root
Falls eine Navigation-ID angegeben ist, werden nur die Unterpunkte des angegebenen Navigationspunktes als Navigation berücksichtigt
keepRoot
Falls das Wurzelelement, welches über das Attribut root angegeben wurde, neben dessen Unterpunkten auch erhalten bleiben soll
rootOnly
Falls das Wurzelelement, welches über das Attribut root angegeben wurde, nicht existiert, wird ein leerer Baum zurückgegeben
checkOnline [|off]
Verhindert, das der Online-Status geprüft wird
checkPersonalization [|off]
Verhindert, das die Personalisierung geprüft wird
filterEmptyTag
Legt fest, ob die Navigation angezeigt wird, falls nur ein leeres Wurzelelement generiert wurde
expires
Gültigkeit in Sekunden, bevor die Navigation neu generiert wird
expiresUser
Gültigkeit in Sekunden, bevor die Navigation neu generiert wird, falls der Benutzer eingeloggt ist
navidExpires
Navigations-ID, die als Basis für den Cache genutzt wird. Falls nichts definiert ist, wird immer die Standard Navigations-ID genutzt. Ändert sich die Navigation z.B. nicht abhängig vom ausgewählten Navigationspunkt, kann ein konstanter Wert angegeben werden.
subdirCache
Unterverzeichnis innerhalb des Cache-Verzeichnisses, in das die über expires bzw. expiresUser generierten Cache-Dateien gespeichert werden
removeIndexPhp
Entfernt index.php aus den Navigationspfaden
navidPre
Wird die Navigation mehrfach eingebunden, kann sie z.B. über '2_' ergänzt werden, um ID-Konflikte zu vermeiden.
project
Projektpfad für den Cache, falls die Funktion über ein Skript statt innerhalb eines Inhaltsprojektes aufgerufen wird.

Beispiel: Generiert eine Navigation auf Basis einer XML-Zeichenkette

Quelltext

<?php

  require_once($_SERVER["DOCUMENT_ROOT"]."/weblication/grid.php");
  $navigationStr                      = '<wNavigation version="5.0">
<navPoint id="123456789010" text="Unternehmen" link="/de/unternehmen/" title="" target="_self" previewLink="" content2Link="" content3Link="inherit" content4Link="inherit" content5Link="inherit" editGroup="">
  <navPoint id="123456789011" text="Anfahrt" link="/de/anfahrt/" title="" content2Link="inherit" content3Link="inherit" content4Link="inherit" content5Link="inherit" target="_self" editGroup=""/>
</navPoint>
</wNavigation>
  ';
  $template                           = '/default-wGlobal/wGlobal/layout/templates/navigations/sitemap.wNavigation.php';
  $mode                               = "sitemap";
  $navId                              = (wRequest::getParameterSecure('navid')) ? wRequest::getParameterSecure('navid') : NULL;  // z.B. ?navid=1248040054153
  $navOptions['deep']                 = 2;
  $navOptions['expires']              = 10;
  $navOptions['expiresUser']          = 604800;
  $navOptions['project']              = '/de';

  print wNavigation::createNavigationHTMLFromXML($navigationStr, $template, $mode, $navId, array('deep' => $navOptions['deep'], 'expires' => $navOptions['expires'], 'expiresUser' => $navOptions['expiresUser'], 'project' => $navOptions['project']));

?>

Hinweis
Beim Einsatz von Framework-Funktionen in eigenen Skripten beachten Sie bitte den Artikel "So verwenden Sie das PHP-Framework in eigenen Scripten".
Wenn Sie eine Funktion innerhalb einer Weblication® Seite z.B. über das PHP-Quelltext Element oder in einem XSL-Template über wsl:php einbinden, muss das Framework über die grid.php nicht mehr referenziert werden.

 
FAQs
Was macht wNavigation::createNavigationHTMLFromXML?
Die Funktion generiert HTML-Navigation aus einer XML-Zeichenkette (navigationStr) auf Basis eines angegebenen Templates (template) und eines Darstellungsmodus (mode).
Welche Parameter werden für createNavigationHTMLFromXML benötigt?
Erforderlich sind: navigationStr (XML-Zeichenkette), template (Pfad zum Navigationstemplate), mode (Modus der Navigationsdarstellung), navId (Navigations-ID des aktuellen Navigationspunktes). Optional sind options (zusätzliche Einstellungen, z. B. Cache/Level).
Wofür steht der Parameter options und welche typische Option ist deep?
options enthält zusätzliche Einstellungen. Die Option deep gibt an, wie viele Level der Navigation berücksichtigt werden sollen (z. B. deep = 2).
Wie funktionieren expires und expiresUser beim Caching?
expires definiert die Gültigkeit in Sekunden, bevor die Navigation neu generiert wird. expiresUser gilt zusätzlich, wenn der Benutzer eingeloggt ist (also abhängig vom Benutzer/Status).
Wofür ist navidExpires gedacht?
navidExpires legt eine Navigations-ID fest, die als Basis für den Cache genutzt wird. Wenn nichts definiert ist, wird die Standard-Navigations-ID verwendet. Damit kann der Cache konstant gehalten werden, falls die Navigation nicht vom ausgewählten Navigationspunkt abhängt.
Was bedeutet subdirCache im Zusammenhang mit expires/ expiresUser?
subdirCache ist ein Unterverzeichnis innerhalb des Cache-Verzeichnisses, in das Cache-Dateien gespeichert werden, die durch expires bzw. expiresUser erzeugt werden.
Welche Rolle spielt root in der Navigationserzeugung?
Wenn eine Navigation-ID über root angegeben wird, werden nur die Unterpunkte dieses Navigationspunktes als Navigation berücksichtigt (statt die gesamte Baumstruktur).
Was macht keepRoot?
keepRoot sorgt dafür, dass das Wurzelelement (über root bestimmt) neben seinen Unterpunkten zusätzlich erhalten bleibt.
Was ist rootOnly und wann wird ein leerer Baum zurückgegeben?
rootOnly bewirkt: Falls das über root angegebene Wurzelelement nicht existiert, wird ein leerer Baum zurückgegeben.
Wozu dient filterEmptyTag?
filterEmptyTag legt fest, ob die Navigation angezeigt wird, wenn nur ein leeres Wurzelelement generiert wurde.
Wie kann die Prüfung des Online-Status deaktiviert werden?
Mit der Option checkOnline [|off]. Ist sie auf off gesetzt, wird der Online-Status nicht geprüft.
Wie kann die Prüfung der Personalisierung deaktiviert werden?
Mit der Option checkPersonalization [|off]. Ist sie auf off gesetzt, wird die Personalisierung nicht geprüft.
Wofür ist removeIndexPhp relevant?
removeIndexPhp entfernt index.php aus den Navigationspfaden, die in der generierten Navigation verwendet werden.
Was ist navidPre und warum wird es verwendet?
navidPre wird genutzt, wenn die Navigation mehrfach eingebunden wird. Es kann z. B. helfen, ID-Konflikte zu vermeiden, indem die ID über einen Präfix ergänzt wird (z. B. mit '2_').
Wofür ist der Parameter project vorgesehen?
project ist der Projektpfad für den Cache, falls die Funktion über ein Skript statt innerhalb eines Inhaltsprojektes aufgerufen wird.
Wie sieht ein typisches Beispiel für die Funktion auf Framework-Ebene aus?
Im Beispiel wird eine XML-Zeichenkette mit wNavigation und navPoint-Elementen definiert, ein Template-Pfad gesetzt (template), der Modus z. B. 'sitemap' gewählt und navId aus einem Request-Parameter geladen. Danach werden Optionen wie deep sowie Cache-Zeiten (expires, expiresUser) und project übergeben.
Muss in eigenen Skripten das Framework grid.php referenziert werden?
Ja: Im Beispiel wird grid.php per require_once eingebunden. Wenn Sie dagegen die Funktion innerhalb einer Weblication® Seite z. B. über PHP-Quelltext oder in einem XSL-Template über wsl:php einbinden, muss das Framework über grid.php nicht mehr referenziert werden.