Linkprüfung: Ausnahmen definieren

Zur Linkprüfung können Sie Ausnahmen festlegen, damit bestimmte Pfade bzw. Querystrings bei der Prüfung nicht berücksichtigt werden.

Weblication® CMS bietet mit der Linkprüfung ein Werkzeug an, um fehlerhafte Links zu erkennen. Die Funktion der Linkprüfung greift auch beim Speichern im Editor.

Wollen Sie bestimmte Pfade bzw. Querystrings nicht von der Linkprüfung erfasst haben, gibt es hierzu folgende Möglichkeiten.

1) Werkzeug Linkprüfung: Zeichen aus der URL entfernen

Durch folgende manuelle Konfigurationseinstellung können Sie optional einstellen, dass bestimmte Zeichen bei der Linkprüfung nicht berücksichtigt werden.

Setzen Sie hierzu den Wert des value-Attributes innerhalb des Tags urlShrink (zu linkchecker) mit den entsprechenden Zeichen (durch Pipe | getrennt).

Sofern das Tag in der default.wConf.php noch nicht vorhanden sein sollte, setzen Sie dies XML-Konform.
Speichern Sie die Konfigurationsdatei UTF-8 kodiert ab.
(verfügbar ab CMS-Version 005.059.045.000)

Beispiel: Auszug aus der /weblication/grid5/conf/default.wConf.php zum Linkchecker

<wConf version="11">
  ...
  <linkchecker>
    <urlShrink value="(navid|WSESSIONID|viewmode)=\w+" />
  </linkchecker>
  ...
</wConf>

Über die PHP-Framework Funktion wRequest::isLinkChecker können Sie direkt über die XSL-Templates Bereiche von der Linkprüfung ausschliessen.

2) Linkprüfung im Editor: Pfade / Bereiche ausschliessen

Beim Speichern von Seiten aus der Seitenbearbeitung erfolgt in der BASE standardmässig eine Linkprüfung über den Editor. Auf fehlerhafte Pfade wird mit einer Meldung hingewiesen ("Das Dokument enthält fehlerhafte Links").

Durch folgende manuelle Konfigurationseinstellung können Sie optional einstellen, dass bestimmte Pfade bei der Linkprüfung im Editor nicht berücksichtigt werden.

Setzen Sie hierzu den Wert des regExpNotToCheck-Attributes innerhalb des Tags checkLinks (zu editor) mit einem entsprechendem regulären Ausdruck, welcher diese Pfade erfasst.

Sofern das Tag in der default.wConf.php noch nicht vorhanden sein sollte, setzen Sie dies XML-Konform.
Speichern Sie die Konfigurationsdatei UTF-8 kodiert ab.

Ermöglicht bei aktivierter Linkprüfung beim Speichern, daß hierfür Ausnahmen definiert werden können (mit regulären Ausdrücken).
(verfügbar ab CMS-Version 009.006.019.000)

Beispiel: Auszug aus der /weblication/grid5/conf/default.wConf.php zum Editor bei Linkprüfung

<wConf version="18">
  ...
  <editor>
    <checkLinks onSave="1" regExpNotToCheck=""/>
  </editor>
  ...
</wConf>

// Beispiele:
// Interne Links ausschliessen: regExpNotToCheck="^(customportal\:)"
// Bestimmte Pfade ausschliessen: regExpNotToCheck="(\/gibtesnicht\/|\/notexist\/)"

noLinkchecker-Angabe

Ab CMS-Version 018.007.169.000 können auch bestimmte Objekt-Daten Felder von der Linkprüfung beim Speichern einer Seite ausgenommen werden. Hierzu setzen Sie im wd:data Tag der entsprechenden Objekt-Daten eine noLinkchecker-Angabe wie unten im Beispiel ersichtlich.

Beispiel: Auszug aus den Objekt-Daten einer Seite

...
    <wd:object type="default">
      ...
      <wd:data id="beispieltext" type="text.noLinkchecker"><![CDATA[<p>Beispiel Text mit einem nicht zu prüfenden <a href="/nicht/pruefen.html">Link</a>.</p>]]></wd:data>
      <wd:data id="beispieltext2" type="text.default" noLinkchecker="1"><![CDATA[<p>Beispiel Text  die zweite mit einem nicht zu prüfenden <a href="/auch/nicht.html">Link</a>.</p>]]></wd:data>
    </wd:object>
...

3) Linkprüfung beim Speichern einer Seite

Die Linkprüfung greift standardmässig auch beim Speichern einer Seite. Hierfür muss in den Systemeinstellungen (Editor) der Parameter für "Links beim Speichern prüfen" aktiv sein.

Sofern Sie über z.B. ein PHP Quelltext-Element ein a-Tag ausgeben und das href-Attribut über eine Variablen setzen, wird dies grundsätzlich als falscher Link erkannt.
Lösen können Sie dies durch "aufsplitten" des href-Attributes, siehe nachfolgendes Beispiel:

Beispiel: Auszug aus einem PHP-Code (z.B. PHP Quelltext-Element)

$href = '/de/index.php';
// von Linkprüfung erkannt und als falscher Link beim Speichern beanstandet:
print '<a href="'.$href.'" >Startseite</a>';
// von Linkprüfung nicht erkannt und somit beim Speichern auch nicht beanstandet
print '<a h'.'ref="'.$href.'" >Startseite</a>';

4) Ausschliessen von Teilbereichen einer Seite

Wenn Sie Teilbereiche einer Seite von der Linkprüfung ausschließen möchten, können Sie mit den folgenden Kommentaren arbeiten (verfügbar ab CMS-Version 010.003.179.000).

  • wLinkchecker:nofollow
    Der umschlossene Bereich wird nicht von der Linkprüfung berücksichtigt.


Beispiel: Auszug aus einem XSLT-Template - Ausschließen eines Bereiches von der Linkprüfung

...
<xsl:comment>wLinkchecker:noindex</xsl:comment>
... auszuschliessender Bereich ...
<xsl:comment>/wLinkchecker:noindex</xsl:comment>
...

Beispiel: Auszug aus einem HTML-Bereich - Ausschließen eines Bereiches von der Linkprüfung

...
<!--wLinkchecker:nofollow-->
... auszuschliessender Bereich ...
<!--/wLinkchecker:nofollow-->
...

5) Nicht existierende Pfade über wMyProject.php umwandeln

Weblication® BASE Projekte liefern bereits im Standard eine Callback Funktion mit aus, um einen augelieferten Pfad in einen existierenden Pfad umzuwandeln. Diese Funktion wird z.B. bei der Linkprüfung aufgerufen.

Beispiel: Auszug aus der wMyProject.php mit convertToRealPath Funktion

// ...

//*********************************************************************************/
/**
* @method String convertToRealPath(String $path)
*
* @description Callback Funktion, um einen augelieferten Pfad in einen existierenden Pfad umzuwandeln. Diese Funktion wird z.B. bei der Linkprüfung aufgerufen
*
* @param path Pfad
*
* @return String
*
*/
//*********************************************************************************/

public static function convertToRealPath($path){
//print "convertPathesOutput($path);\n";

//$path = preg_replace('/\.shtml/', '.php', $path);

return $path;
}

// ...

6) Pflegedomain im Link-Element (WYSIWYG)

Wenn innerhalb von WYSIWYG-Feldern zu Verlinkungen absolute URL-Angaben mit der Pflegedomain (z.B. https://www.domain.dd/xxx ) beim Speichern erhalten bleiben sollen, können Sie dies über das standard.metadata.php Template individuell berücksichtigen.

Nachfolgendes Beispiel zeigt dies auf, indem abhängig vom aktuellen Projekt (z.B. /de) die Host-Angabe beim Speichern NICHT ersetzt werden, sondern bestehen bleiben soll.

Beispiel: Auszug aus der standard.metadata.php

// ...
            <script>
              // ...

              // Falls beim Speichern der Seite der aktuelle Host (Pflege-Domain) innerhalb von WYSIWYG-Feldern nicht aus Link-Elementen entfernt werden soll
              //wEditor.replaceCurrentHostInWYSIWYG = false;
              if(wEditor.pathProject = '/de'){
                wEditor.replaceCurrentHostInWYSIWYG = false;
              }

              // ...
            </script>
// ...