15.01.2011, 03:05
Hallo zusammen,
auch wenn in unserem Forum die Fremdverlinkung von Bildern untersagt ist, bleibt es doch immer wieder nicht aus, dass es passiert. Ich versuche derzeit, Codeänderungen vorzunehmen, dass entsprechende img-Tags nur als Link angezeigt werden.
Hierzu habe ich zum Einen in der editor.js die Funktion imsertIMG wie folgt abgeändert:
Das funktioniert soweit auch ganz gut. Allerdings hilft das natürlich nichts, wenn der User die Tags von Hand eingibt, oder ein entsprechender Beitrag zitiert wird. Also dachte ich mir, in der class_parser.php den Bereich für den img-Code wie folgt zu ändern:
Allerdings funktioniert dieser Code nur bedingt, nämlich dann, wenn nur 1 entsprechend fremd verlinktes Bild vorhanden ist. Dieses wird dann als URL angezeigt.
Sobald aber ein Bild-Link vorhanden ist, der sich auf unser Forum bezieht (Attachment), wird das fremd verlinkte Bild so angezeigt: [Bild: 123.jpg]
Wenn sich z.B. zwei fremd verlinkte Bilder im Beitrag befinden, dann wird der 1. gar nicht mehr angezeigt, der zweite wird richtig, als URL, umgesetzt.
Über einen Hinweis, was da schief läuft oder ob mein Unterfangen aussichtslos ist, wäre ich Euch dankbar.
auch wenn in unserem Forum die Fremdverlinkung von Bildern untersagt ist, bleibt es doch immer wieder nicht aus, dass es passiert. Ich versuche derzeit, Codeänderungen vorzunehmen, dass entsprechende img-Tags nur als Link angezeigt werden.
Hierzu habe ich zum Einen in der editor.js die Funktion imsertIMG wie folgt abgeändert:
PHP-Code:
insertIMG: function()
{
image = prompt(this.options.lang.enter_image, "http://");
var Ergebnis = image.search(/\bhttp:\/\/www.MeineURL.com\w*/gi);
if(Ergebnis != -1)
{
this.performInsert("[img]"+image+"[/img]", "", true);
}
else
{
alert("Fremdverlinkte Bilder sind nicht erlaubt. Gib bitte nur den Link im folgenden Fenster ein.");
this.insertURL(image);
}
},
Das funktioniert soweit auch ganz gut. Allerdings hilft das natürlich nichts, wenn der User die Tags von Hand eingibt, oder ein entsprechender Beitrag zitiert wird. Also dachte ich mir, in der class_parser.php den Bereich für den img-Code wie folgt zu ändern:
PHP-Code:
// Convert images when allowed.
if($options['allow_imgcode'] != 0)
{
$pattern = "#\[im(.*)\]http://www.MeineURL.com/(.*?)\[/img\]#ise";
if(preg_match($pattern, $message)){
$message = preg_replace("#\[img\](\r\n?|\n?)(https?://([^<>\"']+?))\[/img\]#ise", "\$this->mycode_parse_img('$2')\n", $message);
$message = preg_replace("#\[img=([0-9]{1,3})x([0-9]{1,3})\](\r\n?|\n?)(https?://([^<>\"']+?))\[/img\]#ise", "\$this->mycode_parse_img('$4', array('$1', '$2'));", $message);
$message = preg_replace("#\[img align=([a-z]+)\](\r\n?|\n?)(https?://([^<>\"']+?))\[/img\]#ise", "\$this->mycode_parse_img('$3', array(), '$1');", $message);
$message = preg_replace("#\[img=([0-9]{1,3})x([0-9]{1,3}) align=([a-z]+)\](\r\n?|\n?)(https?://([^<>\"']+?))\[/img\]#ise", "\$this->mycode_parse_img('$5', array('$1', '$2'), '$3');", $message);
}
else{
$message = preg_replace("#\[im(.*)\](https?://([^<>\"']+?))\[/img\]#ise", "\$this->mycode_parse_url('$2')\n", $message);
return $message;
}
}
return $message;
Sobald aber ein Bild-Link vorhanden ist, der sich auf unser Forum bezieht (Attachment), wird das fremd verlinkte Bild so angezeigt: [Bild: 123.jpg]
Wenn sich z.B. zwei fremd verlinkte Bilder im Beitrag befinden, dann wird der 1. gar nicht mehr angezeigt, der zweite wird richtig, als URL, umgesetzt.
Über einen Hinweis, was da schief läuft oder ob mein Unterfangen aussichtslos ist, wäre ich Euch dankbar.