<?xml version="1.0"?>
<?xml-stylesheet href="/pool/xslt_ht.xslt" type="application/xml"?>
<xsl:stylesheet
  xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
  xmlns:d = "http://herbaer.de/xmlns/20051201/doc"
  xmlns:l = "http://herbaer.de/xmlns/20141210/localization"
  xmlns:rd = "http://herbaer.de/xmlns/20140430/redirects/"
  xmlns = "http://www.w3.org/1999/xhtml"
  exclude-result-prefixes = "xsl d rd"
  version = "1.0"
>

<d:info xmlns="http://herbaer.de/xmlns/20051201/doc">
  <title>redirects_ht.xslt</title>
  <subtitle>XHTML-Darstellung der "sprechenden URLs"</subtitle>
  <date>2015-04-23</date>
  <author>
    <personname>
      <firstname>Herbert</firstname>
      <surname>Schiemann</surname>
    </personname>
    <email>h.schiemann@herbaer.de</email>
  </author>
</d:info>

<d:section xmlns="http://herbaer.de/xmlns/20051201/doc">
  <title>Attribute im erzeugten XHTML-Dokument</title>
  <para>
Das erzeugte XHTML-Dokument enthält die folgenden ID-Werte:
  </para>
  <variablelist>
    <varlistentry>
      <term><literal>div_logo</literal></term>
      <listitem>
        <para>
Das Logo-Feld oben links
        </para>
      </listitem>
    </varlistentry>
    <varlistentry>
      <term><literal>div_title</literal></term>
      <listitem>
        <para>
Das Feld rechts oben mit der Verweisliste und der Hauptüberschrift
        </para>
      </listitem>
    </varlistentry>
    <varlistentry>
      <term><literal>div_links</literal></term>
      <listitem>
        <para>
Die Verweisliste über der Hauptüberschrift
im Feld mit der ID <literal>div_title</literal>.
        </para>
      </listitem>
    </varlistentry>
    <varlistentry>
      <term><literal>div_side</literal></term>
      <listitem>
        <para>
Das Feld auf der linken Seite neben dem Hauptinhalt
        </para>
      </listitem>
    </varlistentry>
    <varlistentry>
      <term><literal>div_sideimg</literal></term>
      <listitem>
        <para>
Das im Feld <literal>div_side</literal> verschachtelte Feld,
das das Hintergrundbild aufnimmt.
        </para>
      </listitem>
    </varlistentry>
    <varlistentry>
      <term><literal>div_main</literal></term>
      <listitem>
        <para>
Der Hauptinhaltsbereich (unten rechts)
mit Verweistexten und Vorschaubildern zu den "sprechenden URL".
        </para>
      </listitem>
    </varlistentry>
  </variablelist>
</d:section>

<d:para>
Der Titel des erzeugten XHTML-Dokuments
</d:para>
<xsl:param name="p_title">
  <l:ph id="kleider_von_gestern"/>
</xsl:param>

<d:para>
Die zweite Überschrift
</d:para>
<xsl:param name="p_head">
  <xsl:choose>
    <xsl:when test="/rd:redirects/rd:meta[@name = 'title']">
      <xsl:value-of select="/rd:redirects/rd:meta[@name = 'title']"/>
    </xsl:when>
    <xsl:otherwise>
      <l:ph id="empfehlungen"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:param>

<d:para>
Das Bild an der Seite
</d:para>
<xsl:param name="p_sideimage">
  <xsl:choose>
    <xsl:when test="/rd:redirects/rd:meta[@name = 'sideimage']">
      <xsl:value-of select="/rd:redirects/rd:meta[@name = 'sideimage']"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:text>/s2012w10/smallimg/1kjsyitt.jpg</xsl:text>
    </xsl:otherwise>
  </xsl:choose>
</xsl:param>

<d:para>Präfix des Pfades von und CSS-Dateien</d:para>
<xsl:param name="p_styleprefix" select="'/style/'"/>

<d:para>
Basis des Pfades der Lokalisierungsdatei ohne das Suffix der Sprachkennung
</d:para>
<xsl:param name="p_localbase" select="'local.xml'"/>

<d:para>
Kennung der Sprache
</d:para>
<xsl:param name="p_lang">
  <xsl:choose>
    <xsl:when test="not (/rd:redirects/@xml:lang)">
      <xsl:text>de</xsl:text>
    </xsl:when>
    <xsl:when test="contains (/rd:redirects/@xml:lang, '-')">
      <xsl:value-of select="substring-before (/rd:redirects/@xml:lang, '-')"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:text>de</xsl:text>
    </xsl:otherwise>
  </xsl:choose>
</xsl:param>

<d:para>
Pfad der Lokalisierungsdatei
</d:para>
<xsl:param name="p_local" select="concat($p_localbase, '.', $p_lang)"/>

<d:para>
Wurzelement der Lokalisierungsdatei
</d:para>
<xsl:variable name="g_l" select="document($p_local)/l:localization"/>

<xsl:output method="xml" encoding="utf-8" indent="no"/>

<d:para>
Der HTML-Rahmen
</d:para>
<xsl:template match="/">
  <html>
    <head>
      <meta name="viewport" content="width=device-width, initial-scale=1"/>
      <title><xsl:value-of select="$p_title"/></title>
      <link rel="icon">
        <xsl:attribute name="href">/style/shortcut_icon.png</xsl:attribute>
      </link>
      <xsl:element name="link">
        <xsl:attribute name="href">
          <xsl:value-of select="concat ($p_styleprefix, 'redirects.css')"/>
        </xsl:attribute>
        <xsl:attribute name="rel">stylesheet</xsl:attribute>
      </xsl:element>
      <xsl:element name="style">
        <xsl:text>div#div_sideimg {background-image: url(</xsl:text>
        <xsl:value-of select="$p_sideimage"/>
        <xsl:text>);}</xsl:text>
      </xsl:element>
      <xsl:element name="script">
        <xsl:attribute name="src">
          <xsl:value-of select="concat ($p_styleprefix, 'common.js')"/>
        </xsl:attribute>
      </xsl:element>
      <xsl:element name="script">
        <xsl:attribute name="src">
          <xsl:value-of select="concat ($p_styleprefix, 'redirects.js')"/>
        </xsl:attribute>
      </xsl:element>
      <xsl:element name="script">
        <xsl:text>
onload = function () { initialize (); };</xsl:text>
      </xsl:element>
    </head>
    <body>
      <div id="div_logo">Herbär</div>
      <div id="div_title">
        <div id="div_links">
          <!-- verschachtelte div-Elemente erleichtern die Positionierung -->
          <div>
            <p><a href="/index.xhtml" target="_top"><l:ph id="start"/></a></p>
            <p><a href="/sitemap.xml"><l:ph id="sitemap"/></a></p>
            <p><a href="/index.xhtml#section.formal"><l:ph id="kontakt"/></a></p>
          </div>
        </div>
        <h1><xsl:value-of select="$p_title"/></h1>
      </div>
      <div id="div_side">
        <div id="div_sideimg"/>
      </div>
      <div id="div_main">
        <xsl:apply-templates select="rd:redirects"/>
      </div>
    </body>
  </html>
</xsl:template>

<d:para>
Zusammenstellung der sprechenden URLs als Tabelle
</d:para>
<xsl:template match="rd:redirects">
  <h2>
    <xsl:value-of select="$p_head"/>
  </h2>
  <table>
    <tbody>
      <xsl:apply-templates select="rd:redirect"/>
    </tbody>
  </table>
</xsl:template>

<d:para>
Eine Tabellenzeile zu einem oder mehreren sprechenden Verweisen
</d:para>
<xsl:template match="rd:redirect">
  <tr>
    <td>
      <xsl:apply-templates select="rd:relurl" mode="image"/>
    </td>
    <td>
      <xsl:apply-templates select="rd:text"/>
    </td>
  </tr>
</xsl:template>

<d:para>
Ein sprechender Verweis
</d:para>
<xsl:template match="rd:text">
  <xsl:if test="position() &gt; 1">
    <br/>
  </xsl:if>
  <a>
    <xsl:attribute name="href">
      <xsl:value-of select="concat ('/', ../rd:relurl)"/>
    </xsl:attribute>
    <xsl:value-of select="."/>
  </a>
</xsl:template>

<d:para>
Bild zu einem sprechenden Verweis
</d:para>
<xsl:template match="rd:relurl" mode="image">
  <xsl:choose>
    <xsl:when test="contains (., '/story.xml#')">
      <!-- /s2012w14/story.xml#s17_1234578_0 -->
      <xsl:variable name="story" select="substring-before (., '/story.xml#')"/>
      <xsl:variable name="f" select="substring-after (., '/story.xml#')"/>
      <xsl:if test="contains ($f, '_')">
        <xsl:variable name="f2" select="substring-after ($f, '_')"/>
        <xsl:if test="contains ($f2, '_')">
          <img alt="Vorschau" src="/{$story}/thumbs/{substring-before ($f2, '_')}.jpg"/>
        </xsl:if>
      </xsl:if>
    </xsl:when>
    <xsl:when test="contains (., '/story.xml')">
      <img alt="Vorschau" src="/{substring-before (., '/story.xml')}/thumbnail.jpg"/>
    </xsl:when>
  </xsl:choose>
</xsl:template>

</xsl:stylesheet>
