So definieren Sie die Darstellung von Verweisen
Veröffentlichungsdatum: 11. Januar 2010
Änderungsdatum: 14. Januar 2010
verweis verweise link links darstellung klasse class style
Dieser Artikel beschreibt, wie die Darstellung von Links über die Linkbearbeitung definiert werden kann.
Über den Linkeditor können Sie dem Benutzer eine Auswahl an Klassen zur Darstellung eines Verweises (Link) anbieten. Hierzu gibt es im Link-Pflegetag (siehe auch weiterführender Link unten) die Möglichkeit, eine Maske für die Pflege von Links zu definieren. Nachfolgend finden Sie Quelltextbeispiele zu den erforderlichen Dateien.
Das Inhaltselement zu einem Link ist z.B. wie folgt definiert:
Beispiel: Auszug aus einer Inhaltsdatei (z.B. index.php) für ein Linkelement
... <wd:item id="link" name="Link" icon="/de/wGlobal/layout/images/element-icons/element_link.gif" type="spin.link" uid="c1199a5c0213e8bbca0b3a17b8816e49"> <wd:fragment id="title" type="char.text"/> <wd:fragment id="display" type="char.display"/> <wd:fragment id="link" type="link.standard"><a href="http://weblication.de" title="Weblication" class="extern">Weblication</a></wd:fragment> </wd:item> ...
Das zu diesem Inhaltselement gehörende Ausgabeelement (wItem mit dem type = 'spin.link') wird im Standard wie folgt definiert. Innerhalb des Link-Pflegetags (web:link:start) wird dem Attribut "maskId" der Wert "minimum" zugewiesen.
Beispiel: Auszug aus dem Element spin.link.wItem.php
... <xsl:template match="wd:item[@type = 'spin.link']"> <!-- web:item:start name="Link" display="user"--> <div class="elementLink"> <xsl:choose> <xsl:when test="$wIsInEditor"> <!-- web:link:start maskId="minimum" onchange="updateLink(link)"--><xsl:copy-of select="wd:fragment[@id = 'link']/a"/><!-- web:link:stop --> <script type="text/javascript"> function updateLink(link){ } </script> </xsl:when> <xsl:otherwise> <xsl:element name="a"> <xsl:choose> <xsl:when test="wd:fragment[@id = 'link']/a/@class = 'download'"> <xsl:copy-of select="wd:fragment[@id = 'link']/a/@*"/> <xsl:attribute name="href">/de/wGlobal/scripts/downloadDocument.php?document=<xsl:value-of select="wd:fragment[@id = 'link']/a/@href"/></xsl:attribute> <xsl:value-of select="wd:fragment[@id = 'link']/a/text()"/> </xsl:when> <xsl:otherwise> <xsl:copy-of select="wd:fragment[@id = 'link']/a/@*"/> <xsl:value-of select="wd:fragment[@id = 'link']/a/text()"/> </xsl:otherwise> </xsl:choose> </xsl:element> </xsl:otherwise> </xsl:choose> </div> <!-- web:item:stop --> </xsl:template> ...
Durch den Attributwert "minimum" bezieht sich das Pflegetag somit auf die Pflegemaske minimum.wTageditor.php, die im Verzeichnis /[project]/wGlobal/layout/editor/link/ abliegen muss. Wenn es eine solche nicht gibt, wird auf die standard.wTageditor.php im gleichen Verzeichnis zurückgegriffen.
Beispiel: Inhalt der Datei minimum.wTageditor.php
<?php $version="1.0"; $encoding="UTF-8"; ?> <?php exit; ?> <wTagEditor version="1.0" xmlns:de="de" xmlns:en="en" xmlns:wsl="http://weblication.de/5.0/wsl"> <attribute name="href" values="" editable="1" sheetRegister="common" /> <attribute name="target" valueSelected="" editable="0" sheetRegister="common"> <item value="_self">Link in gleichem Fenster öffnen</item> <item value="_blank">Link in neuem Fenster öffnen</item> <item value="onclick:wOpenPopupURL('$url', '640', '480')" editable="1">Link in Popup öffnen (Breite x Höhe)</item> <item value="onclick:wSendMailNospam('$url')" useName="1">E-Mail an Mitarbeiter (nur Name vor @ angeben)</item> <item value="pattern:/de/wGlobal/scripts/wDownloadDocument.php?path=$url&count=1">Download eines Dokumentes</item> </attribute> <attribute name="text" values="" editable="1" sheetRegister="common" /> <attribute name="title" values="" editable="1" sheetRegister="common"/> <attribute name="name" values="" editable="0" sheetRegister="common" /> <attribute name="class" values="" editable="1" sheetRegister="common" /> </wTagEditor>
Was zur Auswahl der Darstellung und somit zur Formatierung eines Links letztendlich entscheidend ist, ist die Datei minimum.styleClasses.wEditorStyles.php, die auch im Verzeichnis /[project]/wGlobal/layout/editor/link/ abliegen muss. Hier wird definiert, welche Darstellungsarten zur Verfügung stehen.
Innerhalb eines WYSIWYG-Feldes wird übrigens immer die Standarddatei styleClasses.wEditorStyles.php verwendet bzw. wenn es eine definierte Datei (z.B. minimum.styleClasses.wEditorStyles.php) nicht gibt.
Beispiel: Inhalt der Datei minimum.styleClasses.wEditorStyles.php
<?php $version="1.0"; $encoding="UTF-8"; ?> <?php exit; ?> <wEditorStyles version="5.0" xmlns:de="de" xmlns:wsl="http://weblication.de/5.0/wsl"> <className de:name="Standard Link" name="Standard Link" value=""/> <className de:name="PDF" name="PDF" value="pdf"/> <className de:name="E-Mail" name="E-Mail" value="mail"/> </wEditorStyles>
Beispiel: Auszug aus der design.css zur Definition eines PDF-Links
a.pdf {padding:0 0 0 14px;background:url(/de/wGlobal/layout/images/links/pdf.gif) center left no-repeat}Weiterführende Links
- Wie kann die Darstellung von Links in der Weblication-Umgebung definiert werden?
- Die Darstellung von Links wird über die Linkbearbeitung definiert. Über den **Linkeditor** können dem Benutzer verschiedene **Klassen zur Darstellung eines Verweises (Link)** angeboten werden. Dazu werden im Link-Pflegetag (web:link:start) passende Einstellungen verwendet und anschließend Pflegemasken sowie verfügbare Style-Klassen über die zugehörigen Editor-Dateien bereitgestellt.
- Welche Rolle spielt der Link-Pflegetag (web:link:start) bei der Linkdarstellung?
- Im Link-Pflegetag wird dem Attribut **maskId** ein Wert zugewiesen. Dieser Wert steuert, welche Pflegemaske verwendet wird. Im Beispiel wird **maskId="minimum"** gesetzt, wodurch auf eine Datei **minimum.wTageditor.php** im Verzeichnis **/[project]/wGlobal/layout/editor/link/** zugegriffen wird (falls vorhanden).
- Welche Pflegemaske wird verwendet, wenn es keine Datei minimum.wTageditor.php gibt?
- Wenn im Verzeichnis **/[project]/wGlobal/layout/editor/link/** keine Datei **minimum.wTageditor.php** vorhanden ist, wird stattdessen auf die **standard.wTageditor.php** im selben Verzeichnis zurückgegriffen.
- Welche Parameter können in minimum.wTageditor.php für Links definiert werden?
- In der Pflegemaske **minimum.wTageditor.php** werden Attribute des Links festgelegt, z. B. **href**, **target**, **text**, **title**, **name** und **class**. Besonders relevant ist, dass für **target** auswählbare Optionen wie z. B. **_self**, **_blank**, **Popup-Öffnung** oder **E-Mail per onclick** bereitgestellt werden können.
- Wie werden die auswählbaren Darstellungsarten (Linkklassen) festgelegt?
- Welche Darstellungsarten verfügbar sind, bestimmt die Datei **minimum.styleClasses.wEditorStyles.php** im Verzeichnis **/[project]/wGlobal/layout/editor/link/**. Dort werden **className**-Einträge definiert, z. B. **Standard Link**, **PDF** und **E-Mail**.
- Welche Datei wird im WYSIWYG-Feld für die Style-Klassen verwendet, wenn die definierte Datei nicht existiert?
- Im WYSIWYG-Feld wird **immer die Standarddatei** **styleClasses.wEditorStyles.php** verwendet bzw. falls es eine definierte Datei wie **minimum.styleClasses.wEditorStyles.php** nicht gibt, fällt das System auf die Standarddatei zurück.
- Wie wird ein PDF-Link typischerweise in der CSS umgesetzt?
- Die eigentliche visuelle Darstellung erfolgt in der CSS. Für einen PDF-Link kann z. B. folgende Regel gelten: **<code class="codeInline">a.pdf { padding: 0 0 0 14px; background: url(/de/wGlobal/layout/images/links/pdf.gif) center left no-repeat }</code>**. Entscheidend ist dabei die Verknüpfung zur Linkklasse (z. B. <code class="codeInline">class="pdf"</code>).
- Wie erzeugt das System den Linkausgabe-HTML im Nicht-Editor-Modus?
- Im Beispiel wird innerhalb des Templates für **type="spin.link"** im Nicht-Editor-Modus ein HTML-Element **<code class="codeInline">a</code>** erzeugt. Dabei wird je nach Linkklasse unterschieden: Bei einer Klasse **download** wird der <code class="codeInline">href</code> auf **<code class="codeInline">/de/wGlobal/scripts/downloadDocument.php?...</code>** umgebogen; andernfalls werden die vorhandenen Attribute und der Linktext unverändert ausgegeben.