Der Schlüssel für diese Lösungen besteht in der Verwendung des sd:attribute -Elements. Dieses Element ermöglicht es, dem vorhergehenden Html-Element zur Laufzeit ein Attribut mit dem gewünschten Wert hinzuzufügen.
<td> <sd:cell-value sd:col='Linkziel'/> </td> <td> <sd:cell-value sd:col='Linktext'/> </td>Löschen Sie diese Zeilen und fügen Sie stattdessen den folgenden Code ein:
<td>
<a>
<sd:attribute sd:attribute-name='href'>
<sd:cell-value sd:col='Linkziel'/>
</sd:attribute>
<sd:cell-value sd:col='Linktext'/>
</a>
</td>Beim Aufruf der Seite wird ein a-Element, also ein gewöhnlicher Html-Link, eingefügt. Dieser erhält das href-Attribut mit
dem Wert der Spalte 'Linkziel' für die aktuelle Tabellenzeile. Und als Linktext wird der Eintrag dieser Spalte ausgegeben.
<td>
<a>
<sd:attribute sd:attribute-name='href'>
mailto:<sd:cell-value sd:col='mailadresse'/>
</sd:attribute>
<sd:cell-value sd:col='mailadresse'/>
</a>
</td>Das erzeugt den Htmlcode
<a href='mailto:mailadresse'>mailadresse</a>Beispiel mit Phantasieadresse: info@example.com
Beim Klick auf einen solchen Link sollte sich der Standard-Mailclient des Lesers öffnen und eine neue Mail mit dieser Adresse zum Bearbeiten bereitstellen. Allerdings sollte diese Variante meistens nur für interne Verwaltungszwecke genutzt werden, da solche Verlinkungen gefundenes Futter für Spambots sind.
<img>
<sd:attribute sd:attribute-name='src'>
<sd:cell-value sd:col='Bildadresse'/>
</sd:attribute>
</img><img>
<sd:attribute sd:attribute-name='src'>
<sd:cell-value sd:col='Bildadresse'/>
</sd:attribute>
<sd:attribute sd:attribute-name='alt'>
<sd:cell-value sd:col='altText'/>
</sd:attribute>
</img>Sie sehen: Sie können auch mehrere Attribute untereinander dynamisch einfügen.
<a>
<sd:attribute sd:attribute-name='href'>
<sd:cell-value sd:col='Bildadresse'/>
</sd:attribute>
<img>
<sd:attribute sd:attribute-name='src'>
<sd:cell-value sd:col='ThumbAdresse'/>
</sd:attribute>
<sd:attribute sd:attribute-name='alt'>
<sd:cell-value sd:col='altText'/>
</sd:attribute>
</img>
</a>http://www.ihre-domain.de/images/bildname.jpgzu erhalten, ohne jedesmal den Domainnamen und Unterordner angeben zu müssen, sind die beiden Elemente sd:param und sd:value sehr nützlich. Die Verwendung besteht aus zwei Teilen:
<sd:param sd:name='bild-stammadresse' sd:std-value='http://www.ihre-domain.de/images/'/>Dies definiert Ihnen einen Parameter und ordnet diesem den Standardwert http://www.ihre-domain.de/images/ zu.
<img>
<sd:attribute sd:attribute-name='src'>
<sd:value sd:param-name='bild-stammadresse'/>
<sd:cell-value sd:col='BildAdresse'/>
</sd:attribute>
</img>Damit wird der tatsächliche Attributwert einfach aus dem konstanten Abschnitt und dem zeilenabhängigen Wert
aus der Datenbank zusammengesetzt.<td>
<sd:choose-null>
<sd:when sd:test='Linkziel'>
<a>
<sd:attribute sd:attribute-name='href'>
<sd:cell-value sd:col='Linkziel'/>
</sd:attribute>
<sd:cell-value sd:col='Linktext'/>
</a>
</sd:when>
<sd:otherwise>
Kein Link definiert
</sd:otherwise>
</sd:choose-null>
</td>Der Code zur Erzeugung des Links wurde einfach in den Contentbereich des sd:when
-Elements
verschoben. Dieses prüft zuvor, ob die Zelle 'Linkziel' belegt ist. Nur dann wird der Link eingefügt. Ansonsten wird ein Hinweistext
ausgegeben, der natürlich auch fehlen könnte.
<img src='http://www.ihre-domain.de/ihre-bildadresse.jpg' alt='alternativer Text'/>Der eventuelle Unterschied zu ihren bisherigen Seiten besteht darin, daß Sie - wegen der Bedingung der Xml-Wohlgeformtheit - das img-Element in der Form <img src='...' /> notieren, es also hinten abschließen. Alternativ ist
<img src='http://www.ihre-domain.de/ihre-bildadresse.jpg' alt='alternativer Text'></img>denkbar. Und analog fügen Sie gewöhnliche Links auf andere Ausgabeseiten und auf andere Seiten ein. Ein Sonderfall gilt für andere Ausgabeseiten: Beginnen Sie diese immer mit '/', also:
<a href='/name-einer-ausgabeseite.html'>Linktext</a>Der Grund: Wurde auf der aktuellen Seite sortiert, so daß die Url Url - Überschreibungen enthält, so würde eine Notation ohne Slash die Seitenadresse hinten anfügen. Der Slash sorgt für eine korrekte Adresse.