MyBB.de Forum
Fremdverlinkung von Bildern unterbinden - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html)
+--- Thema: Fremdverlinkung von Bildern unterbinden (/thread-17677.html)

Seiten: Seiten: 1 2


RE: Fremdverlinkung von Bildern unterbinden - doylecc - 12.10.2013

(12.10.2013, 21:33)Jockl schrieb: Das wäre auch machbar, allerdings würden dann die fremd verlinkten Bilder nicht mehr als URL ausgeführt sondern als MyCode dargestellt.

Ach so, ja das stimmt. Dann wäre es vllt besser, nur in der Funktion mycode_parse_img anzusetzen, zB unter:

PHP-Code:
    function mycode_parse_img($url$dimensions=array(), $align='')
    {
        global 
$lang;
        
$url trim($url);
        
$url str_replace("\n"""$url);
        
$url str_replace("\r"""$url); 

einfügen:

PHP-Code:
        $pattern "#http://www.MeineURL.com/(.*?)#isU";
        if(
preg_match($pattern$url))
        { 

und dann am Ende unter:

PHP-Code:
            else
            {
                return 
"<img src=\"{$url}\" border=\"0\" alt=\"{$alt}\"{$css_align} />";
            } 

einfügen:

PHP-Code:
        }
        else
        {
            
$url htmlspecialchars_uni($url);
            return 
"<a href=\"{$url}\" target=\"_blank\">{$url}</a>";
        } 

Dann sollten eigentlich die fremden Bilder ohne sichtbaren MyCode verlinkt werden.


RE: Fremdverlinkung von Bildern unterbinden - NetHunter - 12.10.2013

Perfekt Waldo! Ich hatte mich auch schon drangesetzt. Auf den Lösungsweg bin ich nicht gekommen.


RE: Fremdverlinkung von Bildern unterbinden - frostschutz - 12.10.2013

Ohne Codeänderung auch bedingt möglich... [img] Tag deaktivieren (in den Foreneinstellungen) und dann eigenen [img] MyCode.

Code:
\[img\]http://localhost/(.*?)\[/img\] zu <img src="http://localhost/$1" />, parse order 1
\[img\](.*?)\[/img\] zu <a href="$1">$1</a>, parse order 2

Durch die parse order des MyCodes kommen die lokalen Images zuerst dran, alle anderen werden dann durch Links ersetzt.

Dadurch verliert man allerdings erstmal die zusätzlichen Features des img-Tags, man kann ja auch eine Größe usw. angeben mit [img=...]. Auf der anderen Seite nutzt das kaum jemand.

Der MyCode hat auch leichtes Mißbrauchspotential, da MyBB selbst die Links ja in einer verkürzten Fassung schreibt wenn sie zu lang sind (mit http://der...link ), kann dieser MyCode für ungekürzte Links genommen werden... da müsste man etwas tricksen um aus der RegExp auch einen kürzeren Teilstring herauszubekommen...

Vielleicht so (ungetestet) in der Art um den Link auf 32 Zeichen zu kürzen...

Code:
\[img\]([^\[]{32})?(.*?)\[/img\] zu <a href="$1$2">Bild: $1...</a>



RE: Fremdverlinkung von Bildern unterbinden - Jockl - 13.10.2013

Hallo zusammen,

ich danke Euch ganz sakrisch für Eure Unterstützung!!!! Smile

Sowohl waldos, als auch frostschutz' Vorschläge führen zum Ziel. Ich habe mich aber für waldos Anpassung der class_parser.php entschieden, auch wenn das bei jedem Update wieder eine Anpassung notwendig macht. Der Lösungsvorschlag von frostschutz wäre hier einfacher umzusetzen, zeigt aber den bereits erwähnten Nachteil, dass die zusätzlichen Features des img-Tags nicht mehr genutzt werden können. Es stimmt zwar, dass diese kaum genutzt werden, aber ich nutze sie gerne. Wink

Die o.a. Zeilen
PHP-Code:
}
else
{
   
$url htmlspecialchars_uni($url);
   return 
"<a href=\"{$url}\" target=\"_blank\">{$url}</a>";

habe ich noch durch folgende ersetzt
PHP-Code:
}
else
{
   
$url htmlspecialchars_uni($url);
   
$name $url;
   if(
$name == $url && (!isset($this->options['shorten_urls']) || $this->options['shorten_urls'] != 0))
   {
     if(
my_strlen($url) > 55)
     {
        
$name my_substr($url040)."...".my_substr($url, -10);
     }
   }
   return 
"<a href=\"{$url}\" target=\"_blank\">{$name}</a>";

Dadurch wird noch der Name des a-Tags entsprechend gekürzt.

Danke Euch allen! Smile