wCategories::mergeCategories

Fügt mehrere Kategoriendateien zu einer zusammen

Funktionsaufruf

Boolean mergeCategories(String pathDest, Array pathesSource, Array options = array())

Parameter

pathDest
Pfad der Zielkategoriedatei
pathesSource
Pfade der Quellkategoriedatei
options
Zusätzliche Optionen
mergeType
Definiert, wie die Zusammenführung geschehen soll [|flat]. Bei flat werden die Kategorien direkt eingefügt, ohne Knoten für die Hauptkategorie selbst.

Beispiel: Führt die Standard-, Countries- und Products-Kategorie zusammen und legt diese als standard.wNavigation.php ab

Quelltext

<?php

  $pathDest = '/[IHR-LAYOUT-PROJEKT]/wGlobal/content/categories';
  wCategories::mergeCategories($pathDest.'/all.wCategories.php', array($pathDest.'/countries.wCategories.php', $pathDest.'/products.wCategories.php', $pathDest.'/standard.wCategories.php'));
  wCategories::mergeCategories($pathDest.'/allFlat.wCategories.php', array($pathDest.'/countries.wCategories.php', $pathDest.'/products.wCategories.php', $pathDest.'/standard.wCategories.php'), array('mergeType' => 'flat'));

?>

Beispiel: Führt die Standard-, Countries- und Products-Kategorie zusammen und legt diese als standard.wNavigation.php ab (als Ereignis)

Quelltext

<?php

  $pathDest = $eventData['dirPath'];
  wCategories::mergeCategories($pathDest.'/all.wCategories.php', array($pathDest.'/countries.wCategories.php', $pathDest.'/products.wCategories.php', $pathDest.'/standard.wCategories.php'));
  wCategories::mergeCategories($pathDest.'/allFlat.wCategories.php', array($pathDest.'/countries.wCategories.php', $pathDest.'/products.wCategories.php', $pathDest.'/standard.wCategories.php'), array('mergeType' => 'flat'));

?>

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 wCategories::mergeCategories?
Die Methode **wCategories::mergeCategories** fügt mehrere **Kategorien-Dateien** zu einer zusammen.
Wie lautet die Signatur von wCategories::mergeCategories?
Der Funktionsaufruf lautet: <code class="codeInline">Boolean mergeCategories(String pathDest, Array pathesSource, Array options = array())</code>.
Wofür steht <code class="codeInline">pathDest</code> bei mergeCategories?
<code class="codeInline">pathDest</code> ist der **Pfad der Zielkategoriedatei**, in die die zusammengeführten Kategorien geschrieben werden.
Wofür steht <code class="codeInline">pathesSource</code> bei mergeCategories?
<code class="codeInline">pathesSource</code> enthält die **Pfade der Quellkategoriedateien**, die zusammengeführt werden sollen.
Welche Rolle spielen die <code class="codeInline">options</code> bei mergeCategories?
Über <code class="codeInline">options</code> können **zusätzliche Optionen** übergeben werden. Relevant ist insbesondere: **<code class="codeInline">mergeType</code>** (z. B. <code class="codeInline">flat</code>), das steuert, wie die Zusammenführung durchgeführt wird.
Was bedeutet <code class="codeInline">mergeType => 'flat'</code>?
Bei <code class="codeInline">mergeType => 'flat'</code> werden die Kategorien **direkt eingefügt**, ohne dass ein zusätzlicher Knoten für die Hauptkategorie selbst erzeugt wird.
Wie kann ich mit mergeCategories drei Kategorien-Dateien zusammenführen?
Beispiel (Standard): <pre><code class="codeBlock" style="color: #000000">php $pathDest = '/[IHR-LAYOUT-PROJEKT]/wGlobal/content/categories'; wCategories::mergeCategories( $pathDest.'/all.wCategories.php', array( $pathDest.'/countries.wCategories.php', $pathDest.'/products.wCategories.php', $pathDest.'/standard.wCategories.php' ) ); </code></pre>
Wie führe ich die Kategorien zusammen und erstelle zusätzlich eine „flat“-Variante?
Beispiel: <pre><code class="codeBlock" style="color: #000000">php $pathDest = '/[IHR-LAYOUT-PROJEKT]/wGlobal/content/categories'; wCategories::mergeCategories( $pathDest.'/allFlat.wCategories.php', array( $pathDest.'/countries.wCategories.php', $pathDest.'/products.wCategories.php', $pathDest.'/standard.wCategories.php' ), array('mergeType' =&gt; 'flat') ); </code></pre>
Kann mergeCategories auch in einem Ereignis-Kontext ausgeführt werden?
Ja. Im Beispiel wird der Zielpfad über <code class="codeInline">$eventData['dirPath']</code> ermittelt und anschließend wie gewohnt zusammengeführt. <pre><code class="codeBlock" style="color: #000000">php $pathDest = $eventData['dirPath']; wCategories::mergeCategories($pathDest.'/all.wCategories.php', array( $pathDest.'/countries.wCategories.php', $pathDest.'/products.wCategories.php', $pathDest.'/standard.wCategories.php' )); </code></pre>
Muss ich das Framework beim Einbinden von Funktionen in eigenen Skripten weiter referenzieren?
Im Hinweis steht: Wenn Sie eine Funktion innerhalb einer Weblication® Seite z. B. über ein **PHP-Quelltext Element** oder in einem **XSL-Template über <code class="codeInline">wsl:php</code>** einbinden, muss das Framework über die **<code class="codeInline">grid.php</code>** nicht mehr referenziert werden.