So prüfen Sie auf die erste Navigationshierarchie

20. Jan 2011

Dieser Artikel beschreibt am Beispiel der Brotkrumennavigation, wie auf das erste Navigationslevel geprüft werden kann.

Um in einer Navigation auf die erste Navigationsebene (Navlevel 1) zu prüfen, bedienen Sie sich der xPath-Syntax und sprechen die entsprechende Achse innerhalb der Baumstruktur des XML-Dokumentes (Navigation) an.

Das nachfolgende Beispiel führt dies anhand der Breadcrumb-Navigation an. Hier wird bei der Ausgabe der Navigationspunkte auf das Eltern-Element (parent) der Navigation geprüft. Im Beispiel wird der Navigationspunkt des ersten Levels in roter Schriftfarbe ausgegeben.

Passen Sie das Beispiel an Ihre Pfade an.

Beispiel: Inhalt der breadcrumb.wNavigation.php mit Prüfung auf erstes Level

<?php $version="1.0"; $encoding="UTF-8"; ?>
<?php exit; ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 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 wsl php" version="1.0">
  <xsl:output method="xml" indent="no" omit-xml-declaration="yes" encoding="UTF-8"/>

  <xsl:include href="$XSLTPRE[wDocumentRoot]/wGlobalProject/wGlobal/layout/templates/misc/standard.wParams.php"/>   

  <!--Hier werden Die Daten hingeschrieben-->
  <xsl:template match="/wNavigation">
    <div>
      <!-- Der Link zur Startseite wird immer voran gestellt -->
      <a href="{$wProjectPath}/index.php"><xsl:value-of select="php:functionString('wTexts::getText', 'homepage')"/></a>
      
      <!-- Aufruf der Unterpunkte -->
      <xsl:apply-templates select="/wNavigation/navPoint"/>
      
      <!-- Falls die Aktuelle Seite nicht sowieso dem aktuellen Navigationspunkt entspricht, wird der Titel der Seite angehängt -->
      <xsl:if test="not(//navPoint[@selected = '1']/@link = $wDocumentPath)">
        // <a href="{$wDocumentPath}"><wsl:documentData document="{$wDocumentPath}" data="title"/></a>
      </xsl:if>

    </div>
  </xsl:template>

  <!--Dieses Template wird auf jeden Navigationspunkt des Pfades angewandt-->
  <xsl:template match="navPoint">

    // <a href="{@link}{@navidExtIfNeeded}"><xsl:if test="parent::wNavigation"><xsl:attribute name="style">color:red</xsl:attribute></xsl:if><xsl:value-of select="@text"/></a>
    
    <!-- Aufruf der Unterpunkte -->
    <xsl:apply-templates select="navPoint"/>
  </xsl:template>
                                  
</xsl:stylesheet>

Ähnliche Seiten

Entwicklerbereich Weblication® CMS - © Scholl Communications AG