So definieren Sie die Darstellung von Verweisen

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.

...
<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&amp;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>
a.pdf                {padding:0 0 0 14px;background:url(/de/wGlobal/layout/images/links/pdf.gif) center left no-repeat}