www-fix for Local Links mod by Netclectic

Kleine Codeänderungen oder Mini-MODs
Keine Anfragen!!! -- No requests!!!

Moderator: Supporter

www-fix for Local Links mod by Netclectic

Beitragvon AmigaLink » 27. Mai 2005 00:01

Ist es ein Fix oder ist es ein addon???
Irgendwie trifft beides zu. :D

Wie dem auch sein. Mit diesem Code gibt es für den Local Links von netclectic keinen Unterschied mehr zwischen einem Link mit und einem ohne www.: 8)
Code: Alles auswählen
#
#----------[ OPEN ]-------------------------------------
#

includes/bbcode.php

#
#----------[ FIND ]-------------------------------------
#

    // MOD LOCAL URL BEGIN
    // do any local urls first...
    // [url]xxxx://www.phpbb.com[/url] code..
   $local_patterns[1] = "#\[url\]([a-z]+?://){1}(".$_SERVER["SERVER_NAME"].")([a-z0-9\-\.,\?!%\*_\#:;~\&$@\/=\+]*)\[/url\]#si";
   $local_replacements[1] = $bbcode_tpl['url_local1'];                       

   // [url]www.phpbb.com[/url] code.. (no xxxx:// prefix).
   $local_patterns[2] = "#\[url\](".$_SERVER["SERVER_NAME"].")([a-z0-9\-\.,\?!%\*_\#:;~\&$@\/=\+]*)\[/url\]#si";
   $local_replacements[2] = $bbcode_tpl['url_local2'];

   // [url=xxxx://www.phpbb.com]phpBB[/url] code..
   $local_patterns[3] = "#\[url=([a-z]+?://){1}(".$_SERVER["SERVER_NAME"].")([a-z0-9\-\.,\?!%\*_\#:;~\&$@\/=\+]*)\](.*?)\[/url\]#si";
   $local_replacements[3] = $bbcode_tpl['url_local3'];

   // [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
   $local_patterns[4] = "#\[url=(".$_SERVER["SERVER_NAME"].")([a-z0-9\-\.,\?!%\*_\#:;~\&$@\/=\+]*)\](.*?)\[/url\]#si";
   $local_replacements[4] = $bbcode_tpl['url_local4'];
   
    $text = preg_replace($local_patterns, $local_replacements, $text);
    // now with the local urls done, it's safe to do any external urls
    // MOD LOCAL URL END

#
#----------[ REPLACE WITH ]-----------------------------
#

    // MOD LOCAL URL BEGIN
    // do any local urls first...
   $local_server = $_SERVER["SERVER_NAME"];
   $local_server = str_replace('www.', '', $local_server);

    // [url]xxxx://www.phpbb.com[/url] code..
   $local_patterns[1] = "#\[url\]([a-z]+?://){1}(".$local_server."|www.".$local_server.")([a-z0-9\-\.,\?!%\*_\#:;~\&$@\/=\+]*)\[/url\]#si";
   $local_replacements[1] = $bbcode_tpl['url_local1'];                       

   // [url]www.phpbb.com[/url] code.. (no xxxx:// prefix).
   $local_patterns[2] = "#\[url\](".$local_server."|www.".$local_server.")([a-z0-9\-\.,\?!%\*_\#:;~\&$@\/=\+]*)\[/url\]#si";
   $local_replacements[2] = $bbcode_tpl['url_local2'];

   // [url=xxxx://www.phpbb.com]phpBB[/url] code..
   $local_patterns[3] = "#\[url=([a-z]+?://){1}(".$local_server."|www.".$local_server.")([a-z0-9\-\.,\?!%\*_\#:;~\&$@\/=\+]*)\](.*?)\[/url\]#si";
   $local_replacements[3] = $bbcode_tpl['url_local3'];

   // [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
   $local_patterns[4] = "#\[url=(".$local_server."|www.".$local_server.")([a-z0-9\-\.,\?!%\*_\#:;~\&$@\/=\+]*)\](.*?)\[/url\]#si";
   $local_replacements[4] = $bbcode_tpl['url_local4'];
   
    $text = preg_replace($local_patterns, $local_replacements, $text);
    // now with the local urls done, it's safe to do any external urls
    // MOD LOCAL URL END

#
#----------[ SAVE AND CLOSE ALL FILES ]-----------------
#
# EoM


Zur Erklärung:
Der Local Links mod erkennt die localen links anhand der URL die beim aufruf der Seite benutzt wurde (also die, die in der Adresszeile des Browsers steht ;))!
Ist ein User also z.B. über amigalink.de hierher gekommen, anstatt wie es üblich ist mit vorangestelltem www.. Dann würden alle hiergeposteten internen links (die ja meistens mit www. gemacht wurden), ohne mein Snippet nicht als lokal erkannt und somit in einem neuem Fenster geöffnet. :?

Zum Demonstrieren hier mal ein paar links (mit und ohne www), die alle auf dieses Snippet hier zeigen und bei denen normalerweise bei jedem zweitem ein neues Fenster aufgehen würde:

http://amigalink.de/viewtopic.php?t=189
http://www.amigalink.de/viewtopic.php?t=189
ohne www
mit www

Das Funktioniert aber nur bei links die mittels BBCode gesetzt wurden!!!
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Zurück zu phpBB2 Snippets



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste

cron