safeURL ergänzende Frage dazu

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
Max
Beiträge: 628
Registriert: So 23.Jan, 2005 09:54

safeURL ergänzende Frage dazu

Beitrag von Max »

Hallo,


ich habe vor einigen Tagen den folgenden MOD eingebaut.
Grundsätzlich funktioniert der sehr gut, aber mit einer Einschränkung, wenn man die URL einfach so in das Thema schreibt, ist das alles ok, setzt man aber denLink ind [url]-Tags, dann setzt die Funktion des MOD´s aus.

Hat Vielleicht jemand eine Idee, wie man das beheben kann?


Gruß Max

Der MOD:

Code: Alles auswählen

#	A safeurl Modification
#
####################################################
#
#	Note:
#	Backup all files before installing this mod.	
#	We can't provide full support, but if you
#	any questions please contact us.
#	
#	General: info@safeurl.de
#	Support: support@safeurl.de
#	Abuse:   abuse@safeurl.de
#
#	For further information about safeurl visit
#	our website:  http://safeurl.de
#
####################################################
#
#	Mod title:                Safeurl Redirector
#	Message board:	          phpBB 2.0.3
#	Homepage:                 http://www.phpbb.com
#	Mod version:              1.1
#	Installation Level:       Easy
#	Installion time:          >1 minute
#	Files to edit:            1
#
#####################################################

## Open 
includes\bbcode.php

## Find
$ret = preg_replace("#([\n ])([a-z]+?)://([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]+)#i", "\\1<a href=\"\\2://\\3\" target=\"_blank\">\\2://\\3</a>", $ret);

## Replace with
$ret = preg_replace("#([\n ])([a-z]+?)://([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]+)#ei", "'\\1<a href=\"http://safeurl.de/?'.urlencode('\\2://\\3'). '\" target=\"_blank\">\\2://\\3</a>'", $ret);

## Find
$ret = preg_replace("#([\n ])www\.([a-z0-9\-]+)\.([a-z0-9\-.\~]+)((?:/[a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]*)?)#i", "\\1<a href=\"http://www.\\2.\\3\\4\" target=\"_blank\">www.\\2.\\3\\4</a>", $ret);

## Replace with
$ret = preg_replace("#([\n ])www\.([a-z0-9\-]+)\.([a-z0-9\-.\~]+)((?:/[a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+]*)?)#ei", "'\\1<a href=\"http://safeurl.de/?'.urlencode('http://www.\\2.\\3\\4').'\" target=\"_blank\">www.\\2.\\3\\4</a>'", $ret);

## Save and close ( all files )

#####################################################
- End of file
Max
Beiträge: 628
Registriert: So 23.Jan, 2005 09:54

Beitrag von Max »

Nun mach ich mal ein Wenig Alleinunterhaltung, frage aber trotzdem weiter....

Einen Teil der Lösung habe ich nun schon gefunden, wenn man den folgenden Link klickt, ist das Problem zu 99% gelöst.
safeURL und Tags
Aber ebe nur zu 99%, da man nun auf jeden Fall http:// vor den www.link.de eingeben muss, da sonst die Weiterleitung nicht läuft.

Gibt es irgendeinen Trick, wie man das fehlende http:// automatisch einsetzen kann, wenn es fehlt?


Gruß Max
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Sollte gehen, wenn man in der bbcode.php eingreift.
Häng mal die Datei von Dir hier als ZIP an, ich will es mal versuchen.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Max
Beiträge: 628
Registriert: So 23.Jan, 2005 09:54

Beitrag von Max »

Hallo,


hier nun gleich die bbcode.php



Gruß Max
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Okay, so könnte es funktionieren:

Code: Alles auswählen

#
#-----[ OPEN ]------------------------------------------
#
includes/bbcode.php

#
#-----[ FIND ]------------------------------------------
#
    $bbcode_tpl['url1'] = str_replace('{URL}', 'http://safeurl.de/?\\1', $bbcode_tpl['url']); 
    $bbcode_tpl['url1'] = str_replace('{DESCRIPTION}', '\\1', $bbcode_tpl['url1']); 

    $bbcode_tpl['url2'] = str_replace('{URL}', 'http://safeurl.de/?\\1', $bbcode_tpl['url']); 
    $bbcode_tpl['url2'] = str_replace('{DESCRIPTION}', '\\1', $bbcode_tpl['url2']); 

    $bbcode_tpl['url3'] = str_replace('{URL}', 'http://safeurl.de/?\\1', $bbcode_tpl['url']); 
    $bbcode_tpl['url3'] = str_replace('{DESCRIPTION}', '\\2', $bbcode_tpl['url3']); 

    $bbcode_tpl['url4'] = str_replace('{URL}', 'http://safeurl.de/?\\1', $bbcode_tpl['url']); 
    $bbcode_tpl['url4'] = str_replace('{DESCRIPTION}', '\\3', $bbcode_tpl['url4']); 

#
#-----[ REPLACE WITH ]------------------------------------------
#
    $bbcode_tpl['url1'] = str_replace('{URL}', 'http://safeurl.de/?\\1', $bbcode_tpl['url']); 
    $bbcode_tpl['url1'] = str_replace('{DESCRIPTION}', '\\1', $bbcode_tpl['url1']); 

    $bbcode_tpl['url2'] = str_replace('{URL}', 'http://safeurl.de/?http://\\1', $bbcode_tpl['url']); 
    $bbcode_tpl['url2'] = str_replace('{DESCRIPTION}', '\\1', $bbcode_tpl['url2']); 

    $bbcode_tpl['url3'] = str_replace('{URL}', 'http://safeurl.de/?\\1', $bbcode_tpl['url']); 
    $bbcode_tpl['url3'] = str_replace('{DESCRIPTION}', '\\2', $bbcode_tpl['url3']); 

    $bbcode_tpl['url4'] = str_replace('{URL}', 'http://safeurl.de/?http://\\1', $bbcode_tpl['url']); 
    $bbcode_tpl['url4'] = str_replace('{DESCRIPTION}', '\\3', $bbcode_tpl['url4']);
Bedenke aber dabei, daß immer http:// davor gestellt würde (sollte dieses Snippet funktionieren). ftp:// muss man dann explizit angeben!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Max
Beiträge: 628
Registriert: So 23.Jan, 2005 09:54

Beitrag von Max »

Hallo,


danke, das war schin der entscheidende Anstoß, allein der Teil hat nicht geklappt, nachdem ich aber das hier:

Code: Alles auswählen

$ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", "\\1<a href=\"http://safeurl.de/?\\2\" target=\"_blank\">\\2</a>", $ret);
in das hier geändert habe:

Code: Alles auswählen

$ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", "\\1<a href=\"http://safeurl.de/?http://\\2\" target=\"_blank\">\\2</a>", $ret);
Nun wird es, wenn http:// fehlt, automatisch davor gesetzt, wenn es aber vorhanden ist, wird es nicht zusätzlich eingesetzt - also es ist genau das, was ich mir erhofft habe.
Um ftp-Angaben muss ich mir nicht sooo sehr Sorgen machen, da das kein Thema ist und wenn, dann weiß derjenige auch was er tut.

Mir ging es darum, dass die Eingabe von Links so frei ist, dass man nicht auf http:// achten muss.

Danke schön :-)


Gruß Max
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Na, oder so. Schön zu lesen, daß es klappt.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten