Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Fremdverlinkung von Bildern unterbinden
#1
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:
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
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. Smile
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren


Nachrichten in diesem Thema
Fremdverlinkung von Bildern unterbinden - von Jockl - 15.01.2011, 04:05
RE: Fremdverlinkung von Bildern unterbinden - von NetHunter - 12.10.2013, 18:43
RE: Fremdverlinkung von Bildern unterbinden - von NetHunter - 13.10.2013, 00:29

Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Thread anzeige per Hook unterbinden? baeckerman83 5 2.057 09.09.2015, 14:11
Letzter Beitrag: baeckerman83
  FancyZoom bei allen Bildern Abys 2 1.565 26.04.2015, 01:48
Letzter Beitrag: MrBrechreiz
  anonymen Foren-Login unterbinden Manni 2 1.558 16.01.2010, 15:32
Letzter Beitrag: Manni
  Inventory Shop - 1.1.0 RC2 by Ryan Ashbrook - mit Bildern!? sleepoholic 0 1.278 17.11.2007, 23:26
Letzter Beitrag: sleepoholic
  [Gelöst]Eigene Antwort unterbinden Jan 22 8.144 01.04.2006, 13:43
Letzter Beitrag: Garlant