So setzen Sie eine eigene Kategorienauswahl um

08. Apr 2010

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)

<?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>

Ähnliche Seiten

Entwicklerbereich Weblication® CMS - © Scholl Communications AG