So passen Sie die Linkbearbeitungsmaske individuell an

Dieser Artikel beschreibt, wie Sie die Bearbeitenmaske für Links individuell anpassen können.

Hinweis

Die hier beschriebene Beeinflussung der Linkmaske bezieht sich auf das Link-Element Weblic® der BASE Classic und auf Links innerhalb von WYSIWYG-Feldern.
In der BASE Mobile First ist das Link-Element Weblic® auf andere Weise umgesetzt und erlaubt die Beeinflussung der Pflegemaske über CSS (elementLink.scss).

Die Maske zur Bearbeitung von Links können Sie individuell anpassen und erweitern. Über eine XML-Datei wird definiert, welche Attribute zu einem Link pflegbar sind und welche Werte zur Verfügung stehen.

Diese Pflegemaske errreichen Sie direkt über die Linkbearbeitung. Im unteren Bereich der Linkbearbeitung finden Sie die Schaltfläche "Diese Maske anpassen", über welche ein Administrator die Pflegemaske (standard.wTageditor.php) öffnen kann. Siehe hierzu auch weiterführende Links unten.

<?php $version="1.0"; $encoding="UTF-8"; ?>
<?php exit; ?>
<wTagEditor xmlns:de="http://weblication.de/5.0/lang/de" xmlns:en="http://weblication.de/5.0/lang/en" xmlns:wsl="http://weblication.de/5.0/wsl" version="1.0">

  <attribute name="href" values="" editable="1" sheetRegister="common"/>

  <attribute name="target" valueSelected="" editable="1" sheetRegister="common">
    <item de:name="Link in gleichem Fenster öffnen" en:name="Open in same window" value=""/>
    <item de:name="Link in neuem Fenster öffnen" en:name="Open in new window" value="_blank" classToSetIfSelect="extern"/>
    <item de:name="Link in Popup öffnen (Breite x Höhe)" en:name="Open in popup (width x height)" value="onclick:wOpenPopupURL('$url', '720', '560')" editable="1"/>
    <item de:name="E-Mail mit SPAM-Schutz" en:name="E-mail with spam protection" value="onclick:wSendMailNospam('$url')" classToSetIfSelect="mail"/>      
  </attribute>
  
  <attribute name="text" values="" editable="1" sheetRegister="common"/>

  <attribute name="title" values="" editable="1" sheetRegister="common"/>

  <attribute name="name" values="" valueDefault="" editable="1" sheetRegister="common"/>
  
  <attribute name="class" values="" editable="1" sheetRegister="common">
    <item de:name="Standard Link" en:name="Standard link" value=""/>
    <item de:name="Interner Link" en:name="Internal link" value="intern" selectIfMatchHref="/^\\//"/>
    <item de:name="Externer Link" en:name="External link" value="extern" selectIfMatchHref="/^https?\:/"/>
    <item de:name="Weiter-Link" en:name="Next" value="next"/>
    <item de:name="Zurück-Link" en:name="Previous" value="back"/>  
    <item de:name="PDF" en:name="PDF" value="pdf" selectIfMatchHref="pdf"/>  
    <item de:name="Download" en:name="Download" value="download" selectIfMatchHref="zip"/>  
    <item de:name="Video" en:name="Video" value="video"/>
    <item de:name="Audio" en:name="Audio" value="audio"/>
    <item de:name="E-Mail" en:name="E-Mail" value="mail" selectIfMatchHref="/mailto\:/"/>
    <item de:name="Telefon" en:name="Phone" value="phone" selectIfMatchHref="/tel\:/"/>     
    <item de:name="RSS" en:name="RSS" value="rss" selectIfMatchHref="/rss/"/> 
    <item de:name="Twitter" en:name="Twitter" value="twitter" selectIfMatchHref="/twitter\.com/"/>  
  </attribute>
  <!-- ... -->
</wTagEditor>

Beispiel 1: Weitere Link-Klasse hinzufügen

Sie wollen zu den im Beispielprojekt bereits mitgelieferten Klassen weitere Klassen zur Auswahl anbieten. Ihr Kunde soll z.B. nicht nur die Darstellung für PDF-Links auswählen können, sondern auch für Office-Dokumente.

Fügen Sie innerhalb der Attribute-Definition zur Klasse (attribute name="class" ...) ein weiteres Element (item) hinzu, was z.B. so aussehen kann:

Beispiel: Auszug aus der Linkbearbeitungsmaske mit zusätzlicher Klasse "doc"

...
  <attribute name="class" values="" editable="1" sheetRegister="common">
    ... 
    <item de:name="PDF" en:name="PDF" value="pdf" selectIfMatchHref="pdf"/>  
    <item de:name="Office" en:name="Office" value="doc" selectIfMatchHref="doc|docx"/>  
    ...
  </attribute>
...

Nun steht Ihnen in der Linkbearbeitung zusätzlich die Darstellung für "Office" zur Verfügung. Bei verlinkten Dateien mit der Endung .doc bzw. .docx wird diese Klasse automatisch ausgewählt.

Um die zugewiesene Klasse mit einem entsprechenden Symbol (Icon) in der Ausgabe zu versehen, erweitern Sie die entsprechende CSS-Datei um diese Klasse.

Beispiel:Auszug aus der /[IHR-LAYOUT-PROJEKT]/wGlobal/layout/styles/design.css

...
a.pdf {padding:0 0 0 14px;background:url(/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/images/links/pdf.gif) center left no-repeat}
a.docf {padding:0 0 0 14px;background:url(/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/images/links/doc.gif) center left no-repeat}
...

Beispiel 2: Bestimmte Link-Klassen für Redakteure ausblenden

Wenn Sie für Redakteure nicht alle auswählbaren Link-Klassen anbieten wollen, können Sie die für Pflegebenutzer nicht gewünschten Klassen nur für den Benutzertyp Administrator einblenden (wsl:ifIsAdmin).

Beispiel: RSS-Klasse nur dem Benutzertyp Administrator anzeigen

...
  <attribute name="class" values="" editable="1" sheetRegister="common">
    ...
    <wsl:ifIsAdmin><item de:name="RSS" en:name="RSS" value="rss" selectIfMatchHref="/rss/"/></wsl:ifIsAdmin>
    ...
  </attribute>
...

Beispiel 3: Link-Sprache zur Auswahl anbieten

Wenn Sie für Redakteure die verfügbaren Sprachen anbieten wollen, um diese als Sprache des Link-Zieles einpflegen zu können (hreflang), greifen Sie einfach auf WSL und Framework-Funktionen zurück.

Beispiel: verfügbare Sprachen zur Auswahl des hreflang-Attributes anbieten

...
  <attribute name="hreflang" caption="Link-Sprache" values="" editable="1" sheetRegister="extended">
    <wsl:php>
      $languagesExclude = '';
      $correspondentLanguageFiles = wPageCur::getCorrespondentLanguageFiles('', array('create' =&gt; true, 'checkOnline' =&gt; true, 'checkPersonalization' =&gt; true, 'languagesExclude' =&gt; $languagesExclude));
      $languageKeys = array_keys($correspondentLanguageFiles);
      foreach($languageKeys as $language){
        //print $language;
        <![CDATA[
        print '<item de:name="'.$language.'" en:name="" fr:name="" value="'.$language.'"/>';
        ]]>
      }
    </wsl:php>
  </attribute>
...