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
| Parameter | Beschreibung |
|---|---|
| navigationStr | XML-Zeichenkette der Navigation |
| template | Pfad zum Navigationstemplate |
| mode | Modus der Navigationsdarstellung |
| navId | Navigations-ID des aktuellen Navigationspunkt |
| options | Zusätzliche Einstellungen
|
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.