Öffne die bbcode.php zu finden im includes Ordner.
Hier gibt es eine Funktion mit dem Namen "bbencode_second_pass($text, $uid)". Diese Funktion ist dafür verantwortlich, dass die bbCodes so angezeigt werden, wie das vom Forum aus vorgesehen ist.
In dieser Funktion findet sich für den IMG Tag dieser Code:
Code: Alles auswählen
// [img]image_url_here[/img] code..
// This one gets first-passed..
$patterns[] = "#\[img:$uid\]([^?](?:[^\[]+|\[(?!url))*?)\[/img:$uid\]#i";
$replacements[] = $bbcode_tpl['img'];
Code: Alles auswählen
global $userdata;
//Eingeloggt?
if($userdata['session_logged_in'] && $userdata['user_id'] != ANONYMOUS)
{
$eingeloggt = true;
}
else
{
$eingeloggt = false;
}
Nun können wir uns an den IMG Code wagen. Im Prinzip machen wir hier nichts anderes als eine Fallunterscheidung. Wenn der User eingeloggt ist, dann benutzen wir den Code so wie er ist, ansonsten führen wir etwas anderes durch. Damit andere Tags nicht beeinflusst werden werden wir die Verzweigung nur beim IMG Tag einbauen.
Fragen wir also durch einfügen von
Code: Alles auswählen
if($eingeloggt)
{
Code: Alles auswählen
}
Code: Alles auswählen
else
{
// [img]image_url_here[/img] code..
//Replacement for not logged in Users
$patterns[] =. "#\[img:$uid\]([^?](?:[^\[]+|\[(?!url))*?)\[/img:$uid\]#i";
$replacements[] = $bbcode_tpl['b_open'].' Um dieses Bild sehen zu können musst du dich einloggen '.$bbcode_tpl['b_close'];
}
Im Prinzip 1:1 lässt sich das auf [url] übertragen, bei den anderen Codes wären wohl nur geringfügige Änderungen nötig.
Ich denke es ist unnötig zu sagen, dass du vorher ein vollständiges Backup des Forums erstellen solltest um möglichen Datenverlust zu vermeiden. Ich habe das jetzt so einigermaßen aus dem Kopf heruntergeschrieben und es ist nicht ausgeschlossen dass noch kleinere Fehler enthalten sind.