So setzen Sie eine eigene Kategorienauswahl um

Dieser Artikel beschreibt, wie Sie für die Bearbeitung eine eigene Kategorienauswahl umsetzen, um z.B. anstatt aller Ebenen nur die ersten beiden Ebenen des Kategorienbaumes anzuzeigen.

Um aus der Kategoriendatei einem Benutzer nicht den ganzen Baum zur Auswahl anzubieten, sondern lediglich z.B. die ersten beiden Stufen des Kategorienbaumes, können Sie wie folgt vorgehen.

Beispiel: Auszug aus der standard.metadata.php mit Kategorienauswahl über ein eigenes Script

...
<div class="wEditorExtensionLabel">Kategorien&#160;<span>(eigene Auswahl)</span></div>              
<div class="wEditorExtensionValue">
  <!--web:categories:start script="/de/wGlobal/scripts/showCategoriesToSelect.php" multiple="1" size="5"--><xsl:copy-of select="/wd:document/wd:extension/wd:object/wd:data[@id='categoriesAdv']"/><!--web:categories:stop-->
</div>
...

Beispiel: Script zur Kategorienauswahl (showCategoriesToSelect.php)

include($_SERVER['DOCUMENT_ROOT'].'/weblication/grid.php');

$xmlStr wReadWrite::readFile($_SERVER['DOCUMENT_ROOT'].'/de/wGlobal/content/categories/products.wCategories.php');
$xsltString wReadWrite::readFile($_SERVER['DOCUMENT_ROOT'].'/de/wGlobal/layout/templates/categoriesSelect.php');

print 
wXSLT::processString($xmlStr$xsltString);

Beispiel: XSL-Template zum Einlesen der Kategorien (categoriesSelect.php)

<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xslIfIsInEditor="http://www.w3.org/1999/XSL/Transform" xmlns:wslPre="http://weblication.de/5.0/wsl" xmlns:wslPost="http://weblication.de/5.0/wsl" xmlns:wslEditorPre="http://weblication.de/5.0/wsl" xmlns:wsl="http://weblication.de/5.0/wsl" xmlns:wd="http://weblication.de/5.0/wd" xmlns:php="http://php.net/xsl" exclude-result-prefixes="wd wslPre wsl php" version="1.0">
   <xsl:output method="xml" indent="yes" omit-xml-declaration="yes" encoding="UTF-8"/>

   <!-- Hier beginnt das eigentliche Seiten-Template-->

   <xsl:template match="/categories">
     <entries>
     <xsl:for-each select="category">
       <entry value="{@id}"><xsl:value-of select="@text" /></entry>
       <xsl:for-each select="category">
         <entry value="{@id}">&#160;&#160;<xsl:value-of select="@text" /></entry>
       </xsl:for-each>
     </xsl:for-each>
     </entries>  
   </xsl:template>

</xsl:stylesheet>
Diese Webseite verwendet Cookies. Durch die Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Datenschutzinformationen