Nur Bilder von der eigenen Website per [img] einbindbar

In diesem moderierten Forum werden Code-Schnipsel, die zu klein sind, um richtige Mods zu sein, abgelegt.
Snippets können über unser Kontaktformular eingereicht werden (bitte als vollständiger, Copy&Paste fähiger Beitrag).
Bei Fragen oder Problemen benutze bitte das Forum [3.0.x] Mod Support.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12735
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Nur Bilder von der eigenen Website per [img] einbindbar

Beitragvon Pyramide » 11.11.2010 19:01

Wer verhindern möchte, dass Bilder von fremden Webseiten mit dem [img] BBCode eingebunden werden, diesen jedoch nicht komplett deaktivieren kann, weil er weiterhin Bilder von der eigenen Website einbinden möchte, kann das folgende Snippet verwenden. Wenn jemand ein Bild von einer fremden Website einbindet, wird dieses stattdessen als [ externer Link] angezeigt.

Beachte, dass die Änderung auch rückwirkend für alle bereits geposteten Beiträge gilt. Umgekehrt werden, falls du das Snippet später wieder ausbaust, auch die zwischenzeitlich geposteten Bilder wieder sichtbar.

Siehe auch: Direktes Einbinden von externen Bildern nicht mehr möglich (Ankündigung auf phpBB.de)


Öffne: includes/bbcode.php

Suche: (3.0.7-PL1: Zeile 239)

Code: Alles auswählen

               if ($user->optionget('viewimg'))
               {
                  $this->bbcode_cache[$bbcode_id] = array(
                     'preg' => array(
                        '#\[img:$uid\](.*?)\[/img:$uid\]#s'      => $this->bbcode_tpl('img', $bbcode_id),
                     )
                  );
               }

Ersetze mit:

Code: Alles auswählen

               if ($user->optionget('viewimg'))
               {
                  $this->bbcode_cache[$bbcode_id] = array(
                     'preg' => array(
                        //nur Bilder von phpBB.de direkt anzeigen
                        '#\[img:$uid\](https://www\.phpbb\.de/.*?)\[/img:$uid\]#s'      => $this->bbcode_tpl('img', $bbcode_id),
                        //alle anderen durch [ externes Bild ] ersetzen
                        '#\[img:$uid\](.*?)\[/img:$uid\]#s'      => str_replace('$2', '[ externes Bild ]', $this->bbcode_tpl('url', $bbcode_id, true)),
                     )
                  );
               }

Anstatt https://www.phpbb.de/ musst du natürlich die Basis-URL deiner eigenen Website eintragen.

Benutzeravatar
redbull254
Valued Contributor
Beiträge: 10362
Registriert: 05.01.2006 13:01
Kontaktdaten:

Re: Nur Bilder von der eigenen Website per [img] einbindbar

Beitragvon redbull254 » 05.03.2011 23:57

Hinweis:

Achtet beim Ersetzen der URL auch darauf, ggf. dass „https://“ durch „http://“ zu ersetzen.

Nicht jeder benutzt dieses Protokoll:
Das HTTPS-Protokoll wird zur Verschlüsselung und zur Authentifizierung der Kommunikation zwischen Webserver und Browser im World Wide Web verwendet.

Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12735
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Nur Bilder von der eigenen Website per [img] einbindbar

Beitragvon Pyramide » 24.12.2011 02:01

Erweiterung von Blackhawk87: Wenn man den Link zum externen Bild mit einer eigenen CSS-Klasse versehen möchte, dann fügt man anstatt dieser Zeile

Code: Alles auswählen

'#\[img:$uid\](.*?)\[/img:$uid\]#s'      => str_replace('$2', '[ externes Bild ]', $this->bbcode_tpl('url', $bbcode_id, true)),

stattdessen die folgende Zeile ein:

Code: Alles auswählen

'#\[img:$uid\](.*?)\[/img:$uid\]#s'      => '<a href="$1" class="extimglink">[ externes Bild ]</a>',

Somit kann man dem Link ein Bild oder sonstige Formatierung verpassen, mit einer Ergänzung in der links.css, z.B. so:

Code: Alles auswählen

.extimglink {
 background-image: url (... );
 background-position: left center;
 background-repeat: no-repeat;
 padding-left: 12px;
}


Nach der Änderung der .css Datei muss ggf. einmal im ACP das Style aktualisiert werden.


Zurück zu „[3.0.x] Snippets“