<?xml version="1.0" encoding="utf-8"?>
<?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:is = "http://herbaer.de/xmlns/20080705/imgshow"
  xmlns:ht = "http://www.w3.org/1999/xhtml"
  xmlns:l = "http://herbaer.de/xmlns/20141210/localization"
  xmlns:ti = "http://herbaer.de/xmlns/201500703/transinfo/"
  xmlns:tm = "http://herbaer.de/xmlns/20130628/transformation_attributes"
  xmlns = "http://www.w3.org/1999/xhtml"
  exclude-result-prefixes = "d ht is ti tm"
  version = "1.0"
>
<d:info xmlns="http://herbaer.de/xmlns/20051201/doc">
  <title>desktop_help.xslt</title>
  <subtitle>Hilfe zur Dektop-Darstellung einer Bildergeschichte</subtitle>
  <date>2015-07-14</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" role="stylesheet">
<para>
Die Hilfe zur Desktop-Darstellung einer Bildergeschichte ist eine XHTML-Datei,
deren Aufbau dem einer Bildergeschichte entspricht.
Der wesentliche Inhalt der Hilfe ist die Datei <filename>help_templ.xhtml</filename>.
Diese Transformation (<filename>help.xslt</filename>) fügt die
fehlenden Teile hinzu,
die die Hilfe wie die XHTML-Darstellung einer Bildergeschichte erscheinen lassen:
CSS, Javascript, Listen, Bilder.
</para>
</d:section>

<d:para>Vorlagen für einfachen Text</d:para>
<xsl:include href="/pool/txt.xslt"/>

<d:para>
Präfix der URL der Montagen der Vorschaubilder
</d:para>
<xsl:param name="p_prfmont" select="'desktop_mont/'"/>

<d:para>
Relativer Verzeichnispfad der Bilddateien,
Default: Verzeichnis-Komponente von <d:parameter>$p_fnstory</d:parameter>.
Den Default-Wert liefert die Vorlage <tag class="attvalue">txt.tolastchar</tag>.
</d:para>
<xsl:param name="p_imgdir" select="concat ('../s', /ht:html/ht:head/is:meta[@name = 'story'], '/')"
/>

<d:para>Präfix für CSS- und Javascript-Dateien</d:para>
<xsl:param name="p_styleprf" select="''"/>

<d:para>
Am Ende eines Abschnittstextes, der mehr als einen Bildverweis enthält,
werden einige Vorschaubilder "inline" angezeigt.
Dieses Parameter ist die maximale Anzahl.
</d:para>
<xsl:param name="p_num_inlimg" select="5"/>

<d:para>
Sprache ohne weitere Spezifikation
</d:para>
<xsl:variable name="g_lang">
  <xsl:variable name="l" select="/ht:html/@xml:lang"/>
  <xsl:choose>
    <xsl:when test="string-length($l) = 0">
      <xsl:text>de</xsl:text>
    </xsl:when>
    <xsl:when test="contains ($l, '-')">
      <xsl:value-of select="substring-before ($l, '-')"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$l"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:variable>

<d:para>
Im Kopf werden <d:sgmltag class="element">style</d:sgmltag>-
und <d:sgmltag class="element">script</d:sgmltag>-Elemente eingefügt.
</d:para>
<xsl:template match="ht:head">
  <head>
    <xsl:element name="link">
      <xsl:attribute name="rel">stylesheet</xsl:attribute>
      <xsl:attribute name="href">
        <xsl:value-of select="concat ($p_styleprf, 'desktop.css')"/>
      </xsl:attribute>
    </xsl:element>
    <xsl:element name="link">
      <xsl:attribute name="rel">stylesheet</xsl:attribute>
      <xsl:attribute name="href">
        <xsl:value-of select="concat ($p_styleprf, 'desktop_help.css')"/>
      </xsl:attribute>
    </xsl:element>
    <xsl:element name="script">
      <xsl:attribute name="src">
        <xsl:value-of select="concat ($p_styleprf, 'common.js')"/>
      </xsl:attribute>
    </xsl:element>
    <xsl:element name="script">
      <xsl:attribute name="src">
        <xsl:value-of select="concat ($p_styleprf, 'desktop.js')"/>
      </xsl:attribute>
    </xsl:element>
    <xsl:element name="script">
      <xsl:text tm:content="normal">
var lng = "</xsl:text>
      <xsl:value-of select="$g_lang"/>
      <xsl:text tm:content="normal">";
var prf_img = "</xsl:text><xsl:value-of select="$p_imgdir"/><xsl:text tm:content="normal"
>";
var tellabout = {};
tellabout.subject = "</xsl:text>
        <l:ph id="tellabout_betreff"/>
        <xsl:text tm:content="normal">";
tellabout.i_like  = "</xsl:text>
        <l:ph id="tellabout_das_gefaellt_mir"/>
        <xsl:text>";</xsl:text>
    </xsl:element>
    <xsl:element name="script">
      <xsl:attribute name="src">
        <xsl:value-of select="concat ($p_styleprf, 'desktop_help.js')"/>
      </xsl:attribute>
    </xsl:element>
    <xsl:copy-of select="@*"/>
    <xsl:apply-templates/>
  </head>
</xsl:template>

<xsl:template match="ht:body">
  <body id="body">
    <xsl:apply-templates select="@*"/>
    <audio id="audio" preload="auto">
      <source src="{$p_styleprf}sound.ogg" type="audio/ogg; codecs=vorbis"/>
    </audio>
    <div id="header" class="shown"/>
    <div id="footer" class="shown"/>
    <div id="ix_main" class="shown">
      <div id="ix_up" class="mover inactive">&#x25b2;</div>
      <div id="ix_frame">
        <ul id="ix_content">
          <xsl:apply-templates select="ht:div" mode="index"/>
        </ul>
      </div>
      <div id="ix_down" class="mover inactive">&#x25bc;</div>
    </div>
    <div id="sl_main" class="shown">
      <div id="sl_up" class="mover inactive">&#x25b2;</div>
      <div id="sl_frame">
        <div id="sl_content">
          <xsl:apply-templates select="ht:div" mode="slides"/>
        </div>
      </div>
      <div id="sl_down" class="mover inactive">&#x25bc;</div>
    </div>
    <div id="div_title" class="shown">
      <div id="div_logo">Herbär</div>
      <div id="div_head">
        <xsl:apply-templates select="ht:h1"/>
      </div>
      <div id="div_links" class="shown">
        <!-- verschachtelte div-Elemente erleichtern die Positionierung -->
        <div>
          <p id="link_start">
            <a href="../index.xhtml" target="_top"><l:ph id="start"/></a>
          </p>
          <p id="link_kontakt">
            <a href="../index.xhtml#section.formal" target="_top"><l:ph id="kontakt"/></a>
          </p>
          <p id="views_link" class="popact"><l:ph id="ansichten"/></p>
          <p id="link_hilfe">
            <a href="#"><l:ph id="hilfe"/></a>
          </p>
          <p id="help_link" class="popact"><l:ph id="mehr"/></p>
        </div>
      </div>
      <div id="div_sound" class="paused">
        <div>&#x266b;</div>
      </div>
    </div>
    <div id="div_main">
      <div id="mt_main" class="active">
        <xsl:apply-templates select="ht:div"/>
      </div>
      <div id="div_mainimg" class="inactive transparent">
        <!--
            ein dummy-src-Attribut führt möglicherweise zu einer unnötigen Anfrage
            mit dem Antwort-Code 404 (nicht gefunden)
        -->
        <img alt="Bild" id="img_main" class="normal"/>
      </div>
    </div><!-- main -->
    <div id="set_frame" class="popup popinact">
      <xsl:call-template name="set_content">
        <xsl:with-param name="idsfx" select="''"/>
      </xsl:call-template>
    </div>
    <div id="about_frame" class="popup popinact">
      <dl>
        <dt><a href="http://kleider.herbaer.de">http://kleider.herbaer.de</a></dt>
        <dt><l:ph id="text_und_fotos"/></dt>
        <dd>
          "Herbär" Herbert Schiemann (<a href="http://herbaer.de">http://herbaer.de</a>,
          <a href="mailto:h.schiemann@herbaer.de">mailto:h.schiemann@herbaer.de</a>).
        </dd>
        <dt><l:ph id="grafische_gestaltung"/></dt>
        <dd>
          <a href="http://fadenmalerei.de">Dipl.-Des. Bärbel Nielebock</a>
          (<a href="mailto:sticken@fadenmalerei.de">mailto:sticken@fadenmalerei.de</a>)
        </dd>
      </dl>
    </div><!-- about_frame -->
    <div id="help_frame" class="popup popinact">
      <xsl:call-template name="help_content"/>
    </div><!-- help_frame -->
    <div id="views_frame" class="popup popinact"/>
  </body>
</xsl:template>

<d:para>
Vorschaubilder zu einem Abschnitt der Hilfe
</d:para>
<xsl:template match="ht:div" mode="slides">
  <xsl:variable name="sid" select="count (preceding-sibling::ht:div) + 1"/>
  <xsl:variable name="in">
    <xsl:if test="$sid != '1'">in</xsl:if>
  </xsl:variable>
  <div id="slides_s{$sid}" class="{$in}active">
    <xsl:attribute name="style">
      <xsl:value-of select="concat ('background: url(', $p_prfmont, 's', $sid, '.jpg) 2px 0px')"
      />
    </xsl:attribute>
    <xsl:apply-templates select=".//ht:span[@class = 'imglink']" mode="slides">
      <xsl:with-param name="sid" select="$sid"/>
    </xsl:apply-templates>
  </div>
</xsl:template>

<d:para>Ein Vorschaubild</d:para>
<xsl:template match="ht:span[@class = 'imglink']" mode="slides">
  <div id="div_{substring-after (@id, 'span_')}" class="slide"/>
</xsl:template>

<d:para>Vorschau-Bild</d:para>
<xsl:template match="ht:span" mode="slides">
  <!-- Kennung des Abschnitts im Format s9+ -->
  <xsl:param name="sid"/>
  <!--
    Suffix, das die Eindeutigkeit der ID sicherstellen soll.
    Dieser Parameter ist nötig,
    falls der Abschnitt des Quelldokuments selbst keine jpg-Elemente enthält.
  -->
  <xsl:param name="sfx" select="position () - 1"/>
  <xsl:variable name="id" select="concat ($sid, '_', @src, '_', $sfx )"/>
  <div id="div_{$id}" class="slide"/>
</xsl:template>

<d:para>Bild-ID zu einem Bildverweis</d:para>
<xsl:template match="ht:span[@class = 'imglink']" mode="get_id">
  <xsl:value-of select="substring-after (@id, 'span_')"/>
</xsl:template>

<d:para>Leere Verweise auf ein Vorschaubild werden entfernt</d:para>
<xsl:template match="ht:span[@class = 'imglink' and string-length (.) = 0]"/>

<d:para>Einträge in der Abschnitts-Liste</d:para>
<xsl:template match="ht:div" mode="index">
  <li id="li_s{position()}">
    <xsl:value-of select="ht:h2"/>
  </li>
</xsl:template>

<d:para>
Die Haupt-Abschnitte werden mit Attributen versehen
und um Inline-Vorschaubilder ergänzt
</d:para>
<xsl:template match="ht:body/ht:div">
  <div id="div_s{position()}" class="inactive">
    <xsl:apply-templates select="*[1]"/>
    <xsl:apply-templates select="/ht:html/@ti:machine" mode="hint"/>
    <xsl:apply-templates select="*[position() &gt; 1]"/>
    <xsl:if test="contains (@class, 'images')">
      <xsl:apply-templates select="." mode="inlimg"/>
    </xsl:if>
  </div>
</xsl:template>

<d:para>
Hinweis auf die maschinelle Übersetzung
</d:para>
<xsl:template match="@ti:machine" mode="hint">
  <p class="machine">
    <xsl:choose>
      <xsl:when test="contains (., 'google')">
        <a href="https://translate.google.com" class="machine_link" target="_blank">
          <img src="/local/trans_by_google.png"/>
        </a>
        <xsl:text> </xsl:text>
      </xsl:when>
      <!-- Datenbank translate enthält auch Google-Übersetzungen -->
      <xsl:when test="contains (., 'mysql')">
        <a href="https://translate.google.com" class="machine_link" target="_blank">
          <img src="/local/trans_by_google.png"/>
        </a>
        <xsl:text> </xsl:text>
      </xsl:when>
    </xsl:choose>
    <l:ph id="maschinelle_uebersetzung"/>
  </p>
</xsl:template>

<d:para>
Sonst wird das Attribut
<d:tag class="attribute">@ti:machine</d:tag>
ignoriert.
</d:para>
<xsl:template match="@ti:machine"/>

<d:para>Inline-Vorschaubilder</d:para>
<xsl:template match="ht:body/ht:div" mode="inlimg">
  <xsl:variable name="num" select="count (descendant::ht:span[@class = 'imglink'])"/>
  <xsl:if test="$num &gt; 2">
    <xsl:variable name="m" select="floor (($num + $p_num_inlimg - 1) div $p_num_inlimg)"/>
    <xsl:variable name="q" select="$num mod $m"/>
    <xsl:choose>
      <xsl:when test="@id">
        <span>
          <xsl:attribute name="id"><xsl:value-of select="concat(@id, '_inlimg')"
          /></xsl:attribute>
          <xsl:apply-templates select="descendant::ht:span[@class = 'imglink'] [position() mod $m = $q]" mode="inlimg"
          />
        </span>
      </xsl:when>
      <xsl:otherwise>
        <xsl:apply-templates select="descendant::ht:span[@class = 'imglink'] [position() mod $m = $q]" mode="inlimg"
        />
      </xsl:otherwise>
    </xsl:choose>
  </xsl:if>
</xsl:template>

<d:para>Ein Inline-Vorschaubild</d:para>
<xsl:template match="ht:span[@class = 'imglink']" mode="inlimg">
  <!-- Die ID eines Vorschaubildes (div-Elements) ohne das Präfix "div_" -->
  <xsl:variable name="id" select="substring-after (@id, 'span_')"/>
  <!-- Die Kennung des Abschnitts -->
  <xsl:variable name="sid" select="substring-before ($id, '_')"/>
  <!-- Der "Offset" des Bildes im Abschnitt -->
  <xsl:variable name="sfx" select="substring-after (substring-after ($id, '_'), '_')"/>
  <div id="iimg_{$id}" class="imglink">
    <xsl:attribute name="style">
      <xsl:value-of
        select = "
          concat (
          'background: url(', $p_prfmont,
          $sid, '.jpg) 0px -', $sfx * 100 + 2, 'px;'
          )
        "
      />
    </xsl:attribute>
  </div>
</xsl:template>

<d:para>Demo-Fenster "Einstellung ..."</d:para>
<xsl:template match="ht:div[starts-with (@id, 'demo_frame')]">
  <xsl:copy>
    <xsl:apply-templates select="@*"/>
    <xsl:attribute name="class">popup popact side</xsl:attribute>
    <xsl:call-template name="set_content"/>
  </xsl:copy>
</xsl:template>

<d:para>Demo-Fenster "Befehle"</d:para>
<xsl:template match="ht:div[starts-with (@id, 'demo_help')]">
  <xsl:copy>
    <xsl:apply-templates select="@*"/>
    <xsl:attribute name="class">popup popact side</xsl:attribute>
    <xsl:call-template name="help_content"/>
  </xsl:copy>
</xsl:template>

<d:para>Elemente absteigend kopieren</d:para>
<xsl:template match="ht:*">
  <xsl:copy>
    <xsl:apply-templates select="@* | * | text()"/>
  </xsl:copy>
</xsl:template>

<d:para>Attribute "normalisieren"</d:para>
<xsl:template match="@*">
  <xsl:copy>
    <xsl:value-of select="normalize-space(.)"/>
  </xsl:copy>
</xsl:template>

<d:para>Text normalisieren</d:para>
<xsl:template match="text()">
  <xsl:variable name="tmp" select="normalize-space (concat ('x', ., 'x'))"/>
  <xsl:value-of select="substring ($tmp, 2, string-length ($tmp) - 2)"/>
</xsl:template>

<d:para>Der Inhalt eines Einstellungsfensters</d:para>
<xsl:template name="set_content">
  <!-- Suffix des ID-Wertes -->
  <xsl:param name="idsfx" select="substring-after (@id, 'demo_frame')"/>
  <table>
    <tbody>
      <tr>
        <td><l:ph id="imagesize"/></td>
        <td>
          <select>
            <xsl:attribute name="id">
              <xsl:value-of select="concat ('sel_imagesize', $idsfx)"/>
            </xsl:attribute>
            <option value="images/" selected="selected">
              <l:ph id="selsz_images"/>
            </option>
            <option value="smallimg/">
              <l:ph id="selsz_smallimg"/>
            </option>
          </select>
        </td>
      </tr>
      <tr>
        <td><l:ph id="selview"/></td>
        <td>
          <select>
            <xsl:attribute name="id">
              <xsl:value-of select="concat ('sel_view', $idsfx)"/>
            </xsl:attribute>
            <option value="normal">
              <l:ph id="selview_normal"/>
            </option>
            <option value="hshrink">
              <l:ph id="selview_height_shrink"/>
            </option>
            <option value="hstretch">
              <l:ph id="selview_height_stretch"/>
            </option>
            <option value="hfit">
              <l:ph id="selview_height_fit"/>
            </option>
            <option value="wshrink">
              <l:ph id="selview_width_shrink"/>
            </option>
            <option value="wstretch">
              <l:ph id="selview_width_stretch"/>
            </option>
            <option value="wfit">
              <l:ph id="selview_width_fit"/>
            </option>
            <option value="shrink">
              <l:ph id="selview_frame_shrink"/>
            </option>
            <option value="stretch">
              <l:ph id="selview_frame_stretch"/>
            </option>
            <option value="fit" selected="selected">
              <l:ph id="selview_frame_fit"/>
            </option>
          </select>
        </td>
      </tr>
      <tr>
        <td><l:ph id="selframe"/></td>
        <td>
          <select>
            <xsl:attribute name="id">
              <xsl:value-of select="concat ('sel_imgframe', $idsfx)"/>
            </xsl:attribute>
            <option value="transparent" selected="selected">
              <l:ph id="selframe_transparent"/>
            </option>
            <option value="grey">
              <l:ph id="selframe_grey"/>
            </option>
            <option value="black">
              <l:ph id="selframe_black"/>
            </option>
          </select>
        </td>
      </tr>
    </tbody>
  </table>
  <table>
    <tbody>
      <tr>
        <td><l:ph id="selseq"/></td>
        <td>
          <select>
            <xsl:attribute name="id">
              <xsl:value-of select="concat ('sel_sequence', $idsfx)"/>
            </xsl:attribute>
            <option value="1"><l:ph id="selseq_forward"/></option>
            <option value="2"><l:ph id="selseq_backward"/></option>
            <option value="3" selected="selected"><l:ph id="selseq_random"/></option>
            <option value="4"><l:ph id="selseq_shuffle"/></option>
          </select>
        </td>
        <td>
          <input type="checkbox" checked="checked">
            <xsl:attribute name="id">
              <xsl:value-of select="concat ('chk_global', $idsfx)"/>
            </xsl:attribute>
          </input>
          <l:ph id="chkallimg"/>
        </td>
      </tr>
      <tr>
        <td><l:ph id="selduration"/></td>
        <td>
          <input id="sel_duration" type="number" min="300" max="3600000" value="5000" step="50"
          >
            <xsl:attribute name="id">
              <xsl:value-of select="concat ('sel_duration', $idsfx)"/>
            </xsl:attribute>
          </input>
        </td>
        <td>
          <input type="button" class="close" value="&#x25b6;">
            <xsl:attribute name="id">
              <xsl:value-of select="concat ('inp_start', $idsfx)"/>
            </xsl:attribute>
          </input>
        </td>
      </tr>
      <tr>
        <td><l:ph id="abschnittwahl"/></td>
        <td>
          <select>
            <xsl:attribute name="id">
              <xsl:value-of select="concat ('sel_evtsect', $idsfx)"/>
            </xsl:attribute>
            <option value="mouseover"><l:ph id="event_point"/></option>
            <option value="click" selected="selected"><l:ph id="event_click"/></option>
            <option value="dblclick"><l:ph id="event_dblclick"/></option>
          </select>
        </td>
      </tr>
      <tr>
        <td><l:ph id="bildwahl"/></td>
        <td>
          <select>
            <xsl:attribute name="id">
              <xsl:value-of select="concat ('sel_evtsl', $idsfx)"/>
            </xsl:attribute>
            <option value="mouseover" selected="selected">
              <l:ph id="event_point"/>
            </option>
            <option value="click"><l:ph id="event_click"/></option>
            <option value="dblclick"><l:ph id="event_dblclick"/></option>
          </select>
        </td>
      </tr>
      <tr>
        <td><l:ph id="verweis"/></td>
        <td>
          <select>
            <xsl:attribute name="id">
              <xsl:value-of select="concat ('sel_evtlink', $idsfx)"/>
            </xsl:attribute>
            <option value="click" selected="selected">
              <l:ph id="event_click"/>
            </option>
            <option value="dblclick"><l:ph id="event_dblclick"/></option>
          </select>
        </td>
      </tr>
    </tbody>
  </table>
</xsl:template>

<d:para>Der Inhalt des Fensters "Befehle"</d:para>
<xsl:template name="help_content">
  <xsl:variable name="idsfx">
    <xsl:if test="starts-with (@id, 'demo_help')">
      <xsl:value-of select="substring-after (@id, 'demo_help')"/>
    </xsl:if>
  </xsl:variable>
  <h3><l:ph id="befehle"/></h3>
  <table>
    <tbody>
      <tr>
        <td>e</td>
        <td>
          <span id="span_einstellung{$idsfx}" class="btn" data-code="69"><l:ph id="einstellung"
          /></span>
        </td>
        <td>&#x2190;</td>
        <td><span class="btn" data-code="37"><l:ph id="textabschnitt"/></span></td>
      </tr>
      <tr>
        <td id="key_h{$idsfx}">h</td>
        <td>
          <span id="span_befehle{$idsfx}" class="btn" data-code="72"><l:ph id="befehle"
          /></span>
        </td>
        <td>&#x2192;</td>
        <td><span class="btn" data-code="39"><l:ph id="bild"/></span></td>
      </tr>
      <tr>
        <td>i</td>
        <td><span class="btn" data-code="73"><l:ph id="ueber"/></span></td>
        <td>Scrn&#x2191;</td>
        <td>
          <span class="btn" data-code="33"><l:ph id="voriger_abschnitt"/></span>
        </td>
      </tr>
      <tr>
        <td id="key_c{$idsfx}">c</td>
        <td>
          <span id="span_fenster_schliessen{$idsfx}" class="btn" data-code="67"><l:ph id="fenster_schliessen"
          /></span>
        </td>
        <td>Scrn&#x2193;</td>
        <td>
          <span class="btn" data-code="34"><l:ph id="naechster_abschnitt"/></span>
        </td>
      </tr>
      <tr>
        <td>s</td>
        <td>
          <span class="btn" data-code="83"><l:ph id="bildlauf_start_stop"/></span>
        </td>
        <td>Pos 1</td>
        <td><span class="btn" data-code="36"><l:ph id="anfang"/></span></td>
      </tr>
      <tr>
        <td>n</td>
        <td>
          <span class="btn" data-code="78"><l:ph id="bildlauf_weiter"/></span>
        </td>
        <td>End</td>
        <td><span class="btn" data-code="35"><l:ph id="ende"/></span></td>
      </tr>
      <tr>
        <td>z</td>
        <td>
          <span class="btn" data-code="90"><l:ph id="bildlauf_zurueck"/></span>
        </td>
        <td>&#x2191;</td>
        <td><span class="btn" data-code=""><l:ph id="voriges_bild"/></span></td>
      </tr>
      <tr>
        <td>m</td>
        <td>
          <span class="btn" data-code="77"><l:ph id="position_merken"/></span>
        </td>
        <td>&#x2193;</td>
        <td>
          <span class="btn" data-code="40"><l:ph id="naechstes_bild"/></span>
        </td>
      </tr>
      <tr>
        <td>p</td>
        <td>
          <span class="btn" data-code="80"><l:ph id="klang_start_stop"/></span>
        </td>
        <td>g</td>
        <td><span class="btn" data-code="71"><l:ph id="galerie"/></span></td>
      </tr>
      <tr>
        <td>w</td>
        <td>
          <span class="btn" data-code="87"><l:ph id="email_an_freundin"/></span>
        </td>
        <td>d</td>
        <td>
          <span class="btn" data-code="68"><l:ph id="mobil_bilderschau"/></span>
        </td>
      </tr>
      <tr>
        <td>b</td>
        <td>
          <span class="btn" data-code="66"><l:ph id="rahmen_show_hide"/></span>
        </td>
        <td>a</td>
        <td>
          <span class="btn" data-code="65"><l:ph id="ansichten"/></span>
        </td>
      </tr>
    </tbody>
  </table>
</xsl:template>

</xsl:stylesheet>
