Links im neuen Browser-Fenster

Kurzbeschreibung:
Links lassen sich durch diese Änderung wieder in einem neuen Browser Fenster öffnen.

Gilt für phpBB-Version:
phpBB 3.0
Tags:
Für Entwickler, Konfiguration und Administration, QS_2014, Templates und Styles, Tipps und Tricks
Keywords:
Browser, Fenster, Links, neues, phpBB3, URL
Verglichen mit phpBB3 wurden Links in phpBB2 immer in einem neuen Browser Fenster aufgerufen.
Dies wurde in phpBB3 aus mehreren Gründen geändert, der wichtigste Grund dazu war allerdings das Ziel phpBB3 XHTML 1.0 Strict-Valide zu bekommen.

Wichtig:
Es wird empfohlen, diese Modifikation nicht vorzunehmen.


Durch das Erzwingen der Öffnung von Links in externen Fenstern mittels target="_blank" geht die XHTML Validität verloren. Bei bestimmten Konfigurationen (Betriebssystem/Browser/Javascript) lassen sich die Links möglicherweise gar nicht mehr öffnen. Außerdem werden die User bei ihrer Wahl, einen Link in dem gleichen oder einem anderen Fenster zu öffnen bevormundet.

Alle modernen Browser besitzen die Möglichkeit, einen Link auf einfache Weise - meist durch Verwendung der mittleren Maustaste - in einem anderen Tab oder Fenster zu öffnen, so dass man diese Wahl dem User überlassen sollte.

Um das alte Browserverhalten zu erzwingen gibt es bereits mehrere Modifikationen, wir stellen Dir nun eine davon in unserer Knowledge Base vor.


Modifizieren von selbst entdeckten Links ( Magic URL )


Um das Verhalten von selbst entdeckten URLS ( Links ohne das verwenden vom URL-BBCode ) zu ändern ist ein kleiner Eingriff in die Datei
includes/functions_content.php nötig:

ÖFFNE:
includes/functions_content.php

SUCHE:
Code: Alles auswählen
        $html    = "$whitespace<!-- $tag --><a$class href=\"$url\">$text</a><!-- $tag -->$append";


ERSETZE MIT:
Code: Alles auswählen
        if ($type == MAGIC_URL_EMAIL)
        {
            $html    = "$whitespace<!-- $tag --><a$class href=\"$url\">$text</a><!-- $tag -->$append";   
        }
        else
        {
            $html    = "$whitespace<!-- $tag --><a$class href=\"$url\" onclick=\"window.open(this.href);return false;\">$text</a><!-- $tag -->$append";
        }


BBCode URLs


Als nächstes müssen wir das Verhalten von url-BBCodes verändern.
Dies findet in der Datei bbcode.html statt.

Wir gehen nun von einem Standard prosilver Style aus:

ÖFFNE: styles/prosilver/template/bbcode.html

SUCHE:
Code: Alles auswählen
<!-- BEGIN url --><a href="{URL}" class="postlink">{DESCRIPTION}</a><!-- END url -->


ERSETZE MIT:
Code: Alles auswählen
<!-- BEGIN url --><a href="{URL}" onclick="window.open(this.href);return false;" class="postlink">{DESCRIPTION}</a><!-- END url -->


HTML Ersetzung


Zuletzt müssen wir noch die Ausgabe vom HTML Code modifizieren:

ÖFFNE:
includes/functions.php

SUCHE:
Code: Alles auswählen
          case 'bbcode_htm':
             return array(
                '#<!\-\- e \-\-><a href="mailto:(.*?)">.*?</a><!\-\- e \-\->#',
                '#<!\-\- l \-\-><a (?:class="[\w-]+" )?href="(.*?)(?:(&amp;|\?)sid=[0-9a-f]{32})?">.*?</a><!\-\- l \-\->#',
                '#<!\-\- ([mw]) \-\-><a (?:class="[\w-]+" )?href="(.*?)">.*?</a><!\-\- \1 \-\->#',
                '#<!\-\- s(.*?) \-\-><img src="\{SMILIES_PATH\}\/.*? \/><!\-\- s\1 \-\->#',
                '#<!\-\- .*? \-\->#s',
                '#<.*?>#s',
             );


ERSETZE MIT:
Code: Alles auswählen
          case 'bbcode_htm':
             return array(
                '#<!\-\- e \-\-><a href="mailto:(.*?)">.*?</a><!\-\- e \-\->#',
                '#<!\-\- l \-\-><a (?:class="[\w-]+" )?href="(.*?)(?:(&amp;|\?)sid=[0-9a-f]{32})?" onclick="window\.open\(this\.href\);return false;">.*?</a><!\-\- l \-\->#',
                '#<!\-\- ([mw]) \-\-><a (?:class="[\w-]+" )?href="(.*?)" onclick="window\.open\(this\.href\);return false;">.*?</a><!\-\- \1 \-\->#',
                '#<!\-\- s(.*?) \-\-><img src="\{SMILIES_PATH\}\/.*? \/><!\-\- s\1 \-\->#',
                '#<!\-\- .*? \-\->#s',
                '#<.*?>#s',
             );


Nach diesen Änderungen an Template Dateien musst Du deinen Style aktualisieren und den Cache im Admin-Bereich leeren.

Quelle: http://www.phpbb.com/kb/article/links-o ... ew-windows


  • Ähnliche Artikel
    Relevanz
    Zugriffe
    Zuletzt bearbeitet

cron