Achtung: Diese Dokumentation ist veraltet, bitte rufen Sie die Übersichtsseite auf, um zur aktuellen Dokumentation zu gelangen.
Mit eigenen XSL-Stylesheets kann man das Aussehen von Masken oder Ergebnistabellen sehr individuell anpassen.
Klassisch war das Vorgehen, dass man eine Kopie von maske_html/pdf/xls.xsl bzw tabelle_html/pdf/xls.xsl machte und darin Änderungen vornahm.
Da inzwischen immer wieder Erweiterungen an den Standardstylesheets vorgenommen werden, ist es nur blöd, dass diese Erweiterungen dann nicht in die kopierten Spezialstylesheets kommen.
Daher sind die Stylesheets inzwischen etwas „objektorientierter" und kleine Änderungen kann auch per page_compontents_final.xsl machen.
Beispiel aus der Praxis, bei 2,3 Masken sollte unter dem Maskennamen noch ein Link zu PDF-Dateien erscheinen.
In der Standard maske_html.xsl ist nach dem Titel eine template-Aufruf definiert.
<p class="maskentitel"><xsl:value-of select="maske/@name" /></p>
<xsl:call-template name="pccustomize"> <xsl:with-param name="position" select="'mask_post_title'"></xsl:with-param> </xsl:call-template>
Das template ist leer in Page-Compnents.xsl definiert. Man kann es in pageCompontents_final.xsl definieren, dann wird es überschrieben.
<xsl:template name="pccustomize">
<xsl:param name="position"/>
<xsl:if test="$position='mask_post_title'">
<!-- hier kommt der individuelle Inhalt rein -->
</xsl:if>
</xsl:template>
Die Links werden nur bei den entsprechenden Masken eingebaut.
Außerdem wird standardmäßig leere maskonload überschrieben um den div der folgenden maskenfelder etwas tiefer zu setzen, damit Platz für den größeren Titel ist (sonst war Link nicht anklickbar).
Um bei bestimmten Masken export Buttons auszublenden, kopieren Sie das entsprechende Template (hier: exportButtons) aus der Page-Compnents.xsl in die pageCompontents_final.xsl und fügen dort eine if-Bedingung ein.
Beispiel für entfernen des PDF export Buttons für die Masken mit der tid 16000 und 17000:
<xsl:template name="exportButtons" >
...
<xsl:if test="/ergebnisse/ergebnis/maskenname/@id!='16000' and /ergebnisse/ergebbnis/maskenname/@id!='17000'">
<!-- hier kommt der PDF-Button -->
</xsl:if>
...
</xsl:template>
Will man eine spezielles Tabellenstylesheet erzeugen, braucht man tabelle_html.xsl nicht mehr kopieren, sondern erzeugt eine xsl Datei mit den Standard imports und fügt dort den import für tabelle_html.xsl hinzu.
<xsl:import href="xsl_functions.xsl" />
<xsl:import href="resultset_html.xsl" />
<xsl:import href="interLinks_html.xsl" />
<xsl:import href="pageComponents_html.xsl" />
<xsl:import href="tabelle_html.xsl" />
<xsl:import href="pageComponents_html_final.xsl" />
als weiteres braucht man nur das Template von tabelle_html.xsl zu überlagern, was geändert werden soll.
Einfachstes Beispiel – keine Erläuterungslinks anzeigen,
Template explanation wird überlagert
<xsl:template name="explanation"/>
Bei Bedarf kann man auch die standardmäßig leeren Funktionen wie
<xsl:call-template name="tablecustomize"><xsl:with-param name="position" select="'table_post_center'"></xsl:with-param></xsl:call-template>
überlagern.
Am Ende folgt dann, um die Tabelle aufzubauen.
<xsl:template match="/">
<xsl:call-template name="table"/>
</xsl:template>
it's fricking complex, but enjoy!
Druckversion HTML
![]() |
![]() ![]() |
Seite 136 / 190 Letzter Update: 29.1.2024 Impressum| Datenschutz |