So führen Sie Navigationen zusammen
Veröffentlichungsdatum: 24. Januar 2011
Änderungsdatum: 05. Dezember 2012
navigation zusammenführen zusammenfügen merge
Dieser Artikel beschreibt, wie Sie mehrere Navigation zu einer Navigationsdatei zusammenfügen können.
Innerhalb eines Weblication® CMS Projektes werden häufig mehrere Navigationen verwendet (Hauptnavigation, Metanavigation, etc.). Um gezielt auf eine Navigation zuzugreifen, muss diese konkret angesprochen werden.
Über das PHP-Framework können Sie mehrere Navigation zu einer zusammenfügen. Dies ist z.B. bei Funktionen wie "Navigationsabhängige Bereichsinhalte zuweisen" oder dem Zuweisen von Hintergrundbildern abhängig vom Navigationspunkt vorteilhaft. Ebenso wird für den Navigationszustand bei "Navigationspunkt automatisch auswählen" auf diese zusammengeführte Navigationsdatei zurückgegriffen (über Variable wNavidStandard der standard.wParams.php).
Setzen Sie über die Verzeichniseinstellungen, in dem die Navigationen abliegen, die entsprechende Ereignisaktion zu "onAfterSaveFile". Zur PHP-Framework Funktion wNavigation::mergeNavigations geben Sie den Namen der zusammengefügen Navigation an (z.B. all.wNavigation.php). Im Array hinterlegen Sie die Navigationen, die zusammengeführt werden sollen.
Das Verzeichnisereignis fügt somit beim Speichern einer Navigation den Inhalt in einer Datei zusammen.
Beispiel: Inhalt des Verzeichnisereignisses "onAfterSaveFile" zu /de/wGlobal/content/navigations
wNavigation::mergeNavigations($eventData['dirPath'].'/all.wNavigation.php', array($eventData['dirPath'].'/standard.wNavigation.php', $eventData['dirPath'].'/meta.wNavigation.php'));
wNavigation::mergeNavigations($eventData['dirPath'].'/allFlat.wNavigation.php', array($eventData['dirPath'].'/standard.wNavigation.php', $eventData['dirPath'].'/meta.wNavigation.php'), array('mergeType' => 'flat'));- Wie kann ich mehrere Navigationen in einer Navigationsdatei zusammenführen?
- Innerhalb eines Weblication® CMS Projekts können Sie über das PHP-Framework mehrere Navigationen zu einer Datei zusammenführen. Dazu nutzen Sie die PHP-Framework Funktion \<code class="codeInline">wNavigation::mergeNavigations\</code> und definieren, welche Navigationen zusammengeführt werden sollen.
- Warum müssen Navigationen im Weblication® CMS gezielt angesprochen werden?
- In einem Projekt werden häufig mehrere Navigationen verwendet (z. B. Hauptnavigation, Metanavigation). Um gezielt auf eine bestimmte Navigation zuzugreifen, muss diese konkret angesprochen werden.
- Wann ist das Zusammenführen von Navigationen besonders vorteilhaft?
- Das Zusammenführen von Navigationen ist z. B. vorteilhaft für Funktionen wie „Navigationsabhängige Bereichsinhalte zuweisen“ sowie für das Zuweisen von Hintergrundbildern abhängig vom Navigationspunkt.
- Wird beim Navigationszustand „Navigationspunkt automatisch auswählen“ auf eine zusammengeführte Navigation zurückgegriffen?
- Ja. Für den Navigationszustand bei „Navigationspunkt automatisch auswählen“ wird auf die zusammengeführte Navigationsdatei zurückgegriffen. Dabei wird die Variable \<code class="codeInline">wNavidStandard\</code> aus der Datei \<code class="codeInline">standard.wParams.php\</code> verwendet.
- Wie richte ich das Zusammenführen über ein Verzeichnisereignis ein?
- Legen Sie über die Verzeichniseinstellungen das Ereignis \<code class="codeInline">onAfterSaveFile\</code> fest. Im PHP-Framework rufen Sie dann \<code class="codeInline">wNavigation::mergeNavigations\</code> auf und geben als Ziel den Namen der zusammengeführten Navigation an (z. B. \<code class="codeInline">all.wNavigation.php\</code>). Im Array hinterlegen Sie die Navigationen, die zusammengeführt werden sollen.
- Was bewirkt das Verzeichnisereignis \<code class="codeInline">onAfterSaveFile\</code> beim Speichern einer Navigation?
- Das Verzeichnisereignis sorgt dafür, dass beim Speichern einer Navigation der Inhalt in einer Datei zusammengeführt wird.
- Wie sieht ein Beispiel für \<code class="codeInline">onAfterSaveFile\</code> für die Zusammenführung aus?
- Beispiel (Ziel und Quellen): - \<code class="codeInline">wNavigation::mergeNavigations($eventData['dirPath'].'/all.wNavigation.php', array($eventData['dirPath'].'/standard.wNavigation.php', $eventData['dirPath'].'/meta.wNavigation.php'));\</code> - \<code class="codeInline">wNavigation::mergeNavigations($eventData['dirPath'].'/allFlat.wNavigation.php', array($eventData['dirPath'].'/standard.wNavigation.php', $eventData['dirPath'].'/meta.wNavigation.php'), array('mergeType' => 'flat'));\</code> Dabei wird \<code class="codeInline">all.wNavigation.php\</code> bzw. \<code class="codeInline">allFlat.wNavigation.php\</code> als zusammengeführte Datei erzeugt.
- Wie kann ich eine „flat“-Zusammenführung der Navigationen durchführen?
- Indem Sie im dritten Parameter der Funktion \<code class="codeInline">wNavigation::mergeNavigations\</code> den Wert \<code class="codeInline">mergeType => 'flat'\</code> setzen. Beispiel: \<code class="codeInline">wNavigation::mergeNavigations(..., array('mergeType' => 'flat'));\</code>.