Custom-Tags: Unterschied zwischen den Versionen

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen
Zeile 38: Zeile 38:
  
 
===Border-Custom-Tag===
 
===Border-Custom-Tag===
Dieser Custom-Tag (mytaglib:border) soll je nach Typ-Angabe einen Rahmen um einen Text zeichnen.
+
Dieser Custom-Tag (mytaglib:border) soll je nach Typ-Angabe einen Rahmen um einen Text mit optionaler Überschrift zeichnen.
  
 
Quelltext des Tag-Templates
 
Quelltext des Tag-Templates
 
<source lang="xml">
 
<source lang="xml">
 
<%@ attribute name="type" required="false" rtexprvalue="false" %>
 
<%@ attribute name="type" required="false" rtexprvalue="false" %>
 +
<%@ attribute name="name" required="true" rtexprvalue="false" %>
 +
 +
<sp:attibute name="name"/>
  
 
<sp:condition>
 
<sp:condition>
 
   <sp:if condition="${type} == 'info'">
 
   <sp:if condition="${type} == 'info'">
     <fieldset><legend>INFO</legend>
+
     <fieldset><legend><sp:print name="name" default="INFO"/></legend>
 
       <center><sp:tagbody/></center>
 
       <center><sp:tagbody/></center>
 
     </fieldset>
 
     </fieldset>
 
   </sp:if>
 
   </sp:if>
 
   <sp:elseif condition="${type} == 'error'">
 
   <sp:elseif condition="${type} == 'error'">
     <fieldset><legend>Fehler</legend>
+
     <fieldset><legend><sp:print name="name" default="Fehler"/></legend>
 
       <center><sp:tagbody/></center>
 
       <center><sp:tagbody/></center>
 
     </fieldset>
 
     </fieldset>
Zeile 65: Zeile 68:
 
Quelltext des Templates in dem mytaglib:border verwendet wird
 
Quelltext des Templates in dem mytaglib:border verwendet wird
 
<source lang="xml">
 
<source lang="xml">
<mytaglib:border type="info">
+
<mytaglib:border type="info" name="sp_headline">
 
   Eine kleine Infobox!
 
   Eine kleine Infobox!
 
</mytaglib:border>
 
</mytaglib:border>
Zeile 80: Zeile 83:
 
Ausgabe
 
Ausgabe
 
<source lang="html4strict">
 
<source lang="html4strict">
<fieldset><legend>INFO</legend>
+
<fieldset><legend>Eine Überschrift</legend>
 
   <center>Eine kleine Infobox!</center>
 
   <center>Eine kleine Infobox!</center>
 
</fieldset>
 
</fieldset>

Version vom 2. Juni 2009, 10:45 Uhr

Der IES bietet die Möglichkeit neben Templates auch eigene Tags, sog. Custom-Tags, innerhalb eines Mandanten zu erstellen und zu verwenden. Als Custom-Tags bezeichnet man hierbei Templates eines besonderen Typs, die über InfoSite erstellt und bearbeitet werden. Dabei wird für jeden Mandanten ein eigener Namensraum (analog zu spt) definiert. Die Verwendung solcher Tags unterscheidet sich danach nicht mehr von den SPT-Tags.

<mytaglib:output name="sp_headline" type="html"/>

Zur Erstellung der Custom-Tags bietet der IES zwei Tags:

sp:attribute
Tag zur Evaluierung der Variablennamen innerhalb des aktuellen Elementes
sp:tagbody
Tag zur Ausgabe des Inhaltes zwischen öffnenden und schließenden Custom-Tag

Da es sich bei den Custom-Tags genau wie bei allen Templates auch um JSP-Seiten handelt, sind hier besondere Regeln einzuhalten. Alle Attribute des Tags müssen in den ersten Zeilen in entsprechender JSP-Syntax definiert werden. Erst danach sind Kommentare (<%-- --%>) oder andere SP-Tags erlaubt. Für jedes Attribut wird eine eigene Anweisung mit folgender Syntax angegeben:

<%@ attribute name="" required="true|false" rtexprvalue="true|false" %>

Dabei haben die Attribute folgende Bedeutung:

Attribut Bedeutung
name Name des Attributes, welches Sie bereitstellen möchten
required Ist die Angabe dieses Attributes verpflichtend
rtexprvalue Soll das Attribute über die JSP-EL evaluiert werden (hier ist "false" anzugeben)

Den Namensraum für die Custom-Tags eines Mandanten können Sie in der Systemadministration festlegen. Bitte beachten Sie, dass jeder Namensraum pro Installation nur einmal verwendet werden darf, da es sonst zwischen unterschiedlichen Mandanten zu Problemen führen kann.

Beispiele

Border-Custom-Tag

Dieser Custom-Tag (mytaglib:border) soll je nach Typ-Angabe einen Rahmen um einen Text mit optionaler Überschrift zeichnen.

Quelltext des Tag-Templates

<%@ attribute name="type" required="false" rtexprvalue="false" %>
<%@ attribute name="name" required="true" rtexprvalue="false" %>

<sp:attibute name="name"/>

<sp:condition>
  <sp:if condition="${type} == 'info'">
    <fieldset><legend><sp:print name="name" default="INFO"/></legend>
      <center><sp:tagbody/></center>
    </fieldset>
  </sp:if>
  <sp:elseif condition="${type} == 'error'">
    <fieldset><legend><sp:print name="name" default="Fehler"/></legend>
      <center><sp:tagbody/></center>
    </fieldset>
  </sp:elseif>
  <sp:else>
    <span style="border-width:1px; border-style:solid;">
      <sp:tagbody/>
    </span>
  </sp:else>
</sp:condition>

Quelltext des Templates in dem mytaglib:border verwendet wird

<mytaglib:border type="info" name="sp_headline">
  Eine kleine Infobox!
</mytaglib:border>

<mytaglib:border type="error">
  Ein Fehler ist aufgetreten!
</mytaglib:border>

<mytaglib:border>
  Normaler Rahmen
</mytaglib:border>

Ausgabe

<fieldset><legend>Eine Überschrift</legend>
  <center>Eine kleine Infobox!</center>
</fieldset>

<fieldset><legend>Fehler</legend>
  <center>Ein Fehler ist aufgetreten!</center>
</fieldset>

<span style="border-width:1px; border-style:solid;">
  Normaler Rahmen
</span>