phpBB.de - Die deutsche phpBB-Community
Stand: 30.12.2008 04:56
aktuelle Version auf phpBB.de
 
Apache At Work Communities Community Building Informationen und Hinweise Installation/Konfiguration/Update MySQL PHP phpBB-Optimierungen phpBB3 Rechtliches Server & Technik Snippets Templates und Mods
 



Knowledge Base Offline -> phpBB3 -> Links im neuen Browser-Fenster

Links im neuen Browser-Fenster
Autor: Dr.Death
Stand: 30.12.2008 04:56
Neuste Version unter: http://www.phpbb.de/doku/kb/linksneuesfenster

Links im neuen Browser-Fenster

Links lassen sich durch diese Änderung wieder in einem neuen Browser Fenster öffnen.
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 Knowledgebase 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:
        $html    = "$whitespace<!-- $tag --><a$class href=\"$url\">$text</a><!-- $tag -->$append";


ERSETZE MIT:
Code:
        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:
<!-- BEGIN url --><a href="{URL}" class="postlink">{DESCRIPTION}</a><!-- END url -->


ERSETZE MIT:
Code:
<!-- 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:
          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:
          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-opening-new-windows



Knowledge Base Offline -> phpBB3 -> Links im neuen Browser-Fenster