Link-Hider für Unregistrierte..

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt um einen neuen Mod zu entwicklen, geht's in phpBB 2.0: Mods in Entwicklung weiter.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
Natheedo
Mitglied
Beiträge: 139
Registriert: 14.07.2003 13:21

Beitrag von Natheedo »

*erledigt war ein Fehler beim kopieren*

Natheedo
Benutzeravatar
MagMo
Ehemaliges Teammitglied
Beiträge: 584
Registriert: 30.10.2005 16:06
Wohnort: Köln
Kontaktdaten:

Beitrag von MagMo »

Hi,
Highwayman hat geschrieben:Bei deinem Code habe ich ein kleinbers Problem mit den rlink
Hier ist der rlink bereits am hantieren. kannst du da für uns mit rlink was machen?
du brauchst da lediglich in meiner vorgeschlagenen Änderung die beiden regulären Ausdrücke durch die von rlink ersetzen (Achtung die kommen jeweils mehr als einmal vor):

Code: Alles auswählen

$ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href="\\2" target="_blank">\\2</a>", $ret);
ersetzen durch

Code: Alles auswählen

$ret = preg_replace("#(^|[\n ])([\w]+?://[^ "\n\r\t<]*)#is", "\\1<a href="http://www.deinforum.ch/phpBB2/rlink/rlink.php?url=\\2" target="_blank">\\2</a>", $ret);
und

Code: Alles auswählen

$ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href="http://\\2" target="_blank">\\2</a>", $ret);
ersetzen durch

Code: Alles auswählen

$ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ "\t\n\r<]*)#is", "\\1<a href="http://www.deinforum.ch/phpBB2/rlink/rlink.php?url=http://\\2" target="_blank">\\2</a>", $ret);
Das sollte eigentlich schon alles sein. NICHT vergessen http://www.deinforum.ch/phpBB2/rlink/ durch den tatsächlichen Pfad zu ersetzen.

Grüße
MagMo
Benutzeravatar
Natheedo
Mitglied
Beiträge: 139
Registriert: 14.07.2003 13:21

Beitrag von Natheedo »

Sorry MagMo das ich dich doch nochmal belästigen muss, aber wie es scheint war es doch kein Fehler beim kopieren ...

Also ich hab die Email + Link Geschichte zusammengefügt - Da kommt das dabei raus :

Code: Alles auswählen

# 
#-----[ OPEN ]------------------------------------------ 
# 

includes/bbcode.php

#
#-----[ 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_EMailLink'];
   }
   else
   {
      $replacements[] = $bbcode_tpl['email'];
   }

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

function make_clickable($text)
{

# 
#-----[ ADD AFTER ]------------------------------------------ 
# 

global $lang, $userdata;

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

   $ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a 

href=\"mailto:\\2@\\3\">\\2@\\3</a>", $ret); 

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

   if (!$userdata['session_logged_in'] )
   {
      $ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1".$bbcode_tpl['email'], $ret);
   }
   else
   {
      $ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a 

href=\"mailto:\\2@\\3\">\\2@\\3</a>", $ret);
   }

#
#-----[ 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);
   }


# 
#-----[ OPEN ]------------------------------------------ 
# 

language/lang_german/lang_main.php

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

?> 

#
#-----[ BEFORE, ADD ]----- 
#

$lang['BBCode_NO_LINK'] = '[Platzhalter für ein Link]';
$lang['BBCode_NO_EMailLink'] = '[Platzhalter für einen MailTo-Link]';


# 
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------ 
# 
Links funktionieren einwandfrei, sowohl die in URL als auch ohne.
Bei Emails hab ich allerdings das Problem das für registrierte Benutzer die Emails angezeigt werden, für Gäste jedoch steht gar nix da - So als ob da gar nix gestanden ist. Also der Platzhalter fehlt komplett ... !?!

Ich hab jetzt alles mehrfach kontrolliert, bekomme es aber nicht selbst hin.

Natheedo
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

MagMo hat geschrieben:Das sollte eigentlich schon alles sein. NICHT vergessen http://www.deinforum.ch/phpBB2/rlink/ durch den tatsächlichen Pfad zu ersetzen.
Relativer Pfad tuts aber auch. :wink: easy
Highwayman
Mitglied
Beiträge: 549
Registriert: 21.04.2005 15:52
Wohnort: Thailand
Kontaktdaten:

Beitrag von Highwayman »

MagMo

Vielen Dank
Hat super geklappt, so wie es nun aussieht!
gehe nun einen auf dein Wohl trinken und dann gute Nacht!
Benutzeravatar
MagMo
Ehemaliges Teammitglied
Beiträge: 584
Registriert: 30.10.2005 16:06
Wohnort: Köln
Kontaktdaten:

Beitrag von MagMo »

Hi,
Highwayman hat geschrieben:Bei Emails hab ich allerdings das Problem das für registrierte Benutzer die Emails angezeigt werden, für Gäste jedoch steht gar nix da - So als ob da gar nix gestanden ist. Also der Platzhalter fehlt komplett ... !?!
Jetzt wo du es sagst. Da ist mir ein kleiner Fehler unterlaufen. :oops:
Ziemlich weit unten im dem von dir angegebenen Code steht:

Code: Alles auswählen

if (!$userdata['session_logged_in'] ) 
{ 
      $ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1".$bbcode_tpl['email'], $ret); 
}
das ist falsch und müsste heißen:

Code: Alles auswählen

if (!$userdata['session_logged_in'] )
{
      $ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1".$lang['BBCode_NO_EMailLink'], $ret);
}
Also anstellen von $bbcode_tpl['email'] gehört da $lang['BBCode_NO_EMailLink'] hin.
easygo hat geschrieben:Relativer Pfad tuts aber auch. :wink: easy
Stimmt. Ich habe allerdings einfach den Code aus der Installationsanleitung von rlink via Copy&Past übernommen. Ob absolut oder relativ ist Geschmacksache, oder in diesem Fall Faulheit. :)

Grüße
MagMo
Benutzeravatar
Natheedo
Mitglied
Beiträge: 139
Registriert: 14.07.2003 13:21

Beitrag von Natheedo »

Das wars, ich danke dir vielmals !!!! :)

Natheedo
Onnicon
Mitglied
Beiträge: 48
Registriert: 18.03.2003 17:10
Kontaktdaten:

Beitrag von Onnicon »

ich muus das hier auch nochmal aufgreifen...

habe mir das auch soweit eingebaut...mit einer kleinen änderung... wenn gäste in einem forum schreibrechte haben, dann können sie in diesem forum nun auch ganznormal die links sehen... ich fand es etwas blöd, wenn gäste in einem bereich posten dürfen, aber keine links sehen konnten...

soweit habe ich das auch nun alles am laufen... nur mein prob ist, das es für das portal nicht geht...

gebe ich ein post aus einem forum wo die gäste keine schreibrechte haben als news in mein portal, dann werden die links durch den platzhalter ausgetauscht für gäste... soweit alles richtig... :)

gebe ich nun aber ein post aus einem forum als news in das portal wo gäste posten dürfen (da können ja gäste die links sehen im forum) dann wird im portal für gäste aber der platzhaler eingeblendet.. da sollten aber dann die links zu sehen sein...

ich glaube mal, dass er im portal die schreibrechte der foren nicht kennt, wofür auch normal... aber für meine änderung brauche ich sie...

hat da einer eine lösung... oder eine idee wie ich das hinbekomme..
karstenkurt
Mitglied
Beiträge: 568
Registriert: 06.03.2005 14:11
Kontaktdaten:

Beitrag von karstenkurt »

Hallo,

bei www.oxpus.de gibt es den Hide Mod, welcher genau dis tut und ebenfalls einen ode mitbringt, Texte nur für Admiistratoren sichtbar zu machen.
Onnicon
Mitglied
Beiträge: 48
Registriert: 18.03.2003 17:10
Kontaktdaten:

Beitrag von Onnicon »

danke für deine antwort, aber das ist nicht das was ich suche.... der hide mod ist dafür da bestimmte texte oder sonst was "manuell" ausblenden zu lassen.

bei mir werden aber alle geposteten links automatisch dur Platzhalter ausgetauscht so bald ein gast ein thema liest, wo er aber keine schreibrechte hat. das geht auch super... also keine probs..

nun habe ich das etwas erweitert... da ich mir gedacht habe

wenn gäste in einem bereich schreibrechte haben, dann ist es ja blöd, wenn da auch die links ausgetauscht werden. da schreibt dann ein gast einen link und kann ihn danach selber nicht mehr lesen...
also habe ich es so gemacht, dass in foren wo gäste schreiben dürfen sie auch die links sehen können.... geht bis hier auch alles super....

nun schreibe ich in einem forum wo gäste keine schreibberechtigung haben eine ankündigung, die auch im portal dargestellt wird... alle links die darin vorkommen werden auch im portal für gäste sofort durch den platzhalter ausgetauscht...bis hier hin auch alles super...

dann schreibe ich eine ankündigung in einem forum wo gäste schreibrechte haben... da kommt nun mein prob... die links werden durch den platzhalter ausgetauscht, obwohl sie ja dann bleiben sollten.....

das prob wird sein, das er im portal bzw. in der news.php die einzelnen schreibrechte der foren nicht kennt und dadurch das nicht berücksichtigt

ich hoffe irgendeiner versteht was ich meine.... :lol: :roll:
Antworten

Zurück zu „phpBB 2.0: Mod Suche/Anfragen“