Anleitung, damit Hyperlinks in einem neuen Fenster geöffnet werden

In phpBB2 wurden externe Links noch brav in einem neuen Browserfenster geöffnet. Dieses Verhalten wurde mittlerweile in phpBB3 geändert, was viele Leute nicht richtig nachvollziehen können. Der Hauptgrund für die Abschaffung dieser Funktion ist die Kompatibilität zum XHTML 1.0 Strict Standard, in dem das bekannte HTML-Element target="_blank" nicht mehr erlaubt ist. Und wenn man einmal darüber nachdenkt, ist dies auch sinnvoll, denn warum soll man dem Leser vorschreiben, dass ein Link in einem neuen Fenster geöffnet wird. Moderne Browser bieten einfache Tastenkombinationen an, mithilfe dessen der Leser selbst entscheiden kann, ob er den Link in einem neuen Browserfenster öffnen möchte.

 

Aber der Mensch ist schließlich ein Gewohnheitstier und so wird diese Funktion oftmals zurückgefordert. Damit die Links wieder in einem neuen Fenster geöffnet werden, muss man folgendermaßen vorgehen:

Anleitung

1.) Öffne die Datei includes/functions_content.php

 

Finde folgenden Code

        $html    = "$whitespace<!-- $tag --><a$class href=\"$url\">$text</a><!-- $tag -->$append";

Ersetzen diesen durch folgenden 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";
        } 
        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";
        } 

2.) Öffne die Datei bbcode.html in Deinem Style

 

Finde folgenden Code

<!-- BEGIN url --><a href="{URL}" class="postlink">{DESCRIPTION}</a><!-- END url -->

Ersetze diesen durch folgenden Code

<!-- BEGIN url -->
<a href="{URL}" onclick="window.open(this.href);return false;" class="postlink">{DESCRIPTION}</a>
<!-- END url -->

 

3.) Öffne die Datei includes/functions.php

 

Finde diesen 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 diesen durch folgenden 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',
);

Anschließend noch den Cache leeren. That's it!