Seite 1 von 3
Link-Hider für Unregistrierte..
Verfasst: 29.12.2005 06:16
von Naughty-Boy7
Hallo,
Gibt es einen Mod, der es ermöglicht Unregistrierten Hyperlinks zu verstecken?
z.B., dass bei den Registrierten
http://xyz.com/bla.zip steht aber bei Gästen
"Einloggen, um Hyperlinks zu sehen"
oder so Ähnlich.
Wäre über Hilfe sehr dankbar.
MfG,
Naughty
Verfasst: 29.12.2005 07:33
von MagMo
Hi,
Naughty-Boy7 hat geschrieben:Gibt es einen Mod, der es ermöglicht Unregistrierten Hyperlinks zu verstecken?
Mir ist kein solcher MOD bekannt, das sollte sich aber durch folgende kleine Änderungen erreichen lassen:
includes/bbcode.php
Code: Alles auswählen
#-----[ FIND ]-----
function bbencode_second_pass($text, $uid)
{
global $lang, $bbcode_tpl;
#-----[ REPLACE WITH ]-----
function bbencode_second_pass($text, $uid)
{
global $lang, $bbcode_tpl, $userdata;
#-----[ FIND ]-----
// matches a [url]xxxx://www.phpbb.com[/url] code..
$patterns[] = "#\[url\]([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url1'];
// [url]www.phpbb.com[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url\]((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url2'];
// [url=xxxx://www.phpbb.com]phpBB[/url] code..
$patterns[] = "#\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url3'];
// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url=((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url4'];
// [email]user@domain.tld[/email] code..
$patterns[] = "#\[email\]([a-z0-9&\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#si";
$replacements[] = $bbcode_tpl['email'];
#-----[ REPLACE WITH ]-----
// matches a [url]xxxx://www.phpbb.com[/url] code..
$patterns[] = "#\[url\]([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\[/url\]#is";
if (!$userdata['session_logged_in'] )
{
$replacements[] = $lang['BBCode_NO_LINK'];
}
else
{
$replacements[] = $bbcode_tpl['url1'];
}
// [url]www.phpbb.com[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url\]((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\[/url\]#is";
if (!$userdata['session_logged_in'] )
{
$replacements[] = $lang['BBCode_NO_LINK'];
}
else
{
$replacements[] = $bbcode_tpl['url2'];
}
// [url=xxxx://www.phpbb.com]phpBB[/url] code..
$patterns[] = "#\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
if (!$userdata['session_logged_in'] )
{
$replacements[] = $lang['BBCode_NO_LINK'];
}
else
{
$replacements[] = $bbcode_tpl['url3'];
}
// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url=((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
if (!$userdata['session_logged_in'] )
{
$replacements[] = $lang['BBCode_NO_LINK'];
}
else
{
$replacements[] = $bbcode_tpl['url4'];
}
// [email]user@domain.tld[/email] code..
$patterns[] = "#\[email\]([a-z0-9&\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#si";
if (!$userdata['session_logged_in'] )
{
$replacements[] = $lang['BBCode_NO_LINK'];
}
else
{
$replacements[] = $bbcode_tpl['email'];
}
language/xxx/lang_main.php
Code: Alles auswählen
#-----[ FIND ]-----
?>
#-----[ BEFORE, ADD ]-----
$lang['BBCode_NO_LINK'] = '[Platzhalter für ein Link]';
Nicht vergessen die Datei lang_main.php für alle installierten Sprachen zu ändern.
Resultat der Änderung:
Nicht eingeloggte Besucher sehen anstelle des Links nur den Text, der in der Sprachdatei unter $lang['BBCode_NO_LINK'] angegeben ist.
Es werden mit dieser Änderung auch alle MailTo-Links ersetzt, wenn dieses nicht geschehen soll, dann lässt du einfach folgenden Teil der Datei includes/bbcode.php unverändert:
Code: Alles auswählen
// [email]user@domain.tld[/email] code..
$patterns[] = "#\[email\]([a-z0-9&\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#si";
$replacements[] = $bbcode_tpl['email'];
Grüße
MagMo
Verfasst: 29.12.2005 15:51
von Naughty-Boy7
Hi,
Wow danke echt nett von dir

Verfasst: 10.01.2006 00:57
von Natheedo
Hi,
möchte mich an der Stelle auch bei dir bedanken, habe genau sowas gesucht.
Leider ist mir aber auch gleichzeitig ein kleiner "Fehler" aufgefallen - Also der Mod funktioniert schon, aber nur bei den Links in [*url*]bla bla[*/url*]
Wenn man normale Links postet also lediglich
www.test.de dann hat das keine Wirkung.
Könnte man das noch irgendwie erweitern?
Wäre super !
Vielen Dank !
Natheedo
Verfasst: 10.01.2006 08:11
von MagMo
Hi,
Natheedo hat geschrieben:Wenn man normale Links postet also lediglich
www.test.de dann hat das keine Wirkung.
Könnte man das noch irgendwie erweitern?
Problem erkannt und behoben. Die Lösung des Problems findest du für normale Links
hier, für die eMail-Links
hier.
Grüße
MagMo
Verfasst: 10.01.2006 11:31
von Natheedo
Vielen Dank
Natheedo
Verfasst: 10.01.2006 11:54
von Highwayman
Hallo MagMo
Bei deinem Code habe ich ein kleinbers Problem mit den rlink:
Code: Alles auswählen
#-----[ FIND ]-----
$ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);
#-----[ REPLACE WITH ]-----
if (!$userdata['session_logged_in'] )
{
$ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1".$lang['BBCode_NO_LINK'], $ret);
}
else
{
$ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);
}
#-----[ FIND ]-----
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);
#-----[ REPLACE WITH ]-----
if (!$userdata['session_logged_in'] )
{
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1".$lang['BBCode_NO_LINK'], $ret);
}
else
{
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);
}
Hier ist der rlink bereits am hantieren. kannst du da für uns mit rlink was machen?
schon mal danke!
Verfasst: 10.01.2006 12:59
von Natheedo
Dumme Frage aber was ist mit rLink gemeint ?
Natheedo
Verfasst: 10.01.2006 13:11
von Highwayman
Natheedo hat geschrieben:Dumme Frage aber was ist mit rLink gemeint ?
Natheedo
Man klicke hier
Verfasst: 10.01.2006 13:15
von Natheedo
Aso danke, das ist dann aber mehr störend in meinen Augen, dachte es wäre ne Standardfunktion oder so
Natheedo