tr | en
7
Tem
2020
merhabadunya.xsl
Kategori: 

Şablon dosyasının amacı modül sayfası çağrıldığında gösterilecek içeriği HTML dilinde çizmektir.

Her modül sayfa şablonu dosyasının kendi sayfa düzenini tanımladığı module-my-page-layout adlı özel bir XSL şablonu olmalıdır.

merhabadunya modülünde tek bir içerik alanı olacağından bu XSL şablonunu aşağıdaki şekilde tanımlayabiliriz:

<xsl:template name="module-my-page-layout">
 <xsl:copy-of select="$site-layout/document/page[@im='merhabadunya']"/
</xsl:template>

Ayrıca eIrene modül içeriğinin sayfaya yazılması amacıyla sayfa düzeni işlemcisi tarafından gerektiğinde çalışması için aşağıdaki bir koşullu XSL şablonunu tanımlanması gerekir.

Sayfanın başında "Merhaba Dünya!" yazısını başlık şeklinde göstereceğiz. Ardından gelen satırlarda 3 farklı gösterim mümkün:

  1. URL sorgu (query) kısmı "?im=merhabadunya&ip=1" durumunda kullanıcının IP adresini sunucu tarafındaki ilgili betiğk aracılığıyla bulunarak gösterilmesi
  2. URL sorgu (query) kısmı "?im=merhabadunya&ip=x" (ip nin 1 dışında bir değer alması) durumunda kullanıcıya hata mesajı gösterilmesi
  3. URL sorgu (query) kısmında ip parametresinin gelmemesi durumunda IP parametresinin olduğu sayfaya geçiş (link) gösterilmesi.

Yukarıda anlatılan şablonu aşağıdaki şekilde yazabiliriz:

<xsl:template match="content[@type='merhabadunya']" mode="page-layout">
 <div id="merhabaDiv">
 <h1>Merhaba Dünya</h1>
 <xsl:choose>
  <xsl:when test="$get/ip=1">
   <p>IP: <xsl:value-of select="php:function( 'visitorIP')"/></p>
   <p><a href="?im=merhabadunya">Geri</a></p>
  </xsl:when>
  <xsl:when test="$get/ip">
   <p>Hatalı URL: ip=1 olmalı</p>
   <p><a href="?im=merhabadunya">Geri</a></p>
  </xsl:when>
  <xsl:otherwise>
   <p><a href="?im=merhabadunya&amp;ip=1">IP'mi göster</a></p>
  </xsl:otherwise>
 </xsl:choose>
 </div>
</xsl:template>

NOT: Yukarıda koyu işaretli gösterilen visitorIP() işlevini daha sonra sunucu tarafı betiği olarak kodlayacağız.

Böylelikle merhabadunya.xsl dosyasının son şekli aşağıdaki gibi olacaktır:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:php="http://php.net/xsl"
    exclude-result-prefixes="php">

 <xsl:import href="index.xsl"/> 

 <xsl:template match="content[@type='merhabadunya']" mode="page-layout">
  <div id="merhabaDiv">
   <h1>Merhaba Dünya!</h1>
   <xsl:choose>
    <xsl:when test="$get/ip=1">
     <p>IP: <xsl:value-of select="php:function( 'visitorIP')"/></p>
     <p><a href="?im=merhabadunya">Geri</a></p>
    </xsl:when>
    <xsl:when test="$get/ip">
     <p>Hatalı URL: ip=1 olmalı</p>
     <p><a href="?im=merhabadunya">Geri</a></p>
    </xsl:when>
    <xsl:otherwise>
     <p><a href="?im=merhabadunya&amp;ip=1">IP'mi göster</a></p>
    </xsl:otherwise>
   </xsl:choose>
  </div>
 </xsl:template>

 <xsl:template name="module-my-page-layout">
  <xsl:copy-of select="$site-layout/document/page[@im='merhabadunya']"/
 </xsl:template>
</xsl:stylesheet>