Remotecontent_XH
Mit diesem Plugin kann man externe Inhalte in die Webseite einbinden, ohne dafür iFrames nutzen zu müssen.
Oft ist es gewünscht, dass z.B. Listen mit Spielergebnissen o.ä. von anderen Webseiten auf der eigenen Webseite anzeigt werden.
Hinweis: Hier entsteht doppelter Content (Externer Duplicate Content), falls diese Inhalte mehrfach auf verschiedenen Webseiten benutzt werden.
Die über Remotecontent_XH eingebundenen Inhalte werden auch von der seiteninternen Suche berücksichtigt.
Einbinden kann man reine Textdateien, vollständige HTML-Dateien, oder auch Textblöcke von Boilerplate_XH.
Um Textblöcke von Boilerplate_XH einzubinden, muss der Zugriffsschutz auf dem Quellserver angepasst werden.
Normalerweise sind diese Dateien mit .htaccess vor allen externen Zugriffen geschützt.
Als Beispiel:
- Eine Verzeichnis z.B. /userfiles/extern_content/ anlegen und diesen dann Boilerplate_XH als Speicherordner zuweisen!
- in diesem Ordner eine .htaccess mit folgendem Inhalt erstellen!
(Ebenfalls Beispieldaten. Es kann, durch ungewollte Zeilenumbrüche, zu Darstellungsfehlern kommen.)
Order deny,allow Deny from all # #Webseite von Max Muster Allow from zzz.zzz.zzz.zzz # #Webseite von Rudi Rumpel (bei Strato scheinen die Aufrufe (cURL) #von einer anderen IP zu kommen, nicht von der IP der eigentlichen Webseite) Allow from xxx.xxx.xxx.xxx Allow from yyy.yyy.yyy.yyy #RewriteEngine On #besser nur mit einem Useragent, dafür mit mehreren Authtoken arbeiten! # #extern_m_muster, 16-stelliges_token1 # #extern_r_rumpel, 16-stelliges_token2 # RewriteCond %{HTTP_USER_AGENT} !^(extern_m_muster|extern_r_rumpel)$ [OR,NC] RewriteCond %{QUERY_STRING} !^(.*)?authtoken=(16-stell._token1|16-stell._token2)$ [NC] RewriteRule .* – [R=403,L]
Damit kann nur noch auf Dateien in diesem Ordner zugegriffen werden wenn, die IP zzz...., xxx... oder yyy...,
die Browserkennung extern_m_muster oder extern_r_rumpel und das Authentifizierungstoken 16-stell._token1 oder 16-stell._token2 ist.
16 Stellen für das Authentifizierungstoken sind ganz willkürlich gewählt. Es funktioniert natürlich auch mit nur 4 oder 6 Stellen.
Boilerplate_XH legt seine Dateien mit den Rechten 0600 an. Das muss, nach dem Anlegen oder Bearbeiten einer Datei, per FTP auf 0644 geändert werden.
Um das ständige Ändern der Rechte zu umgehen, in (/plugins/boilerplate/classes/model.php) nach der Zeile 150 (fclose($fp);) eine zusätzliche Zeile einfügen (chmod($fn, 0644);).
Mit dieser Änderung werden die Rechte beim Anlegen und Bearbeiten direkt von Boilerplate_XH auf 0644 gesetzt
Damit ist Boilerplate_XH als Quelle vorbereitet und trotzdem noch sicher genug.
Wird mod_rewrite nicht unterstützt, dann bleiben nur die IP-Adressen.
Es ist in Zeiten von Shared-Hosting natürlich nicht ganz auszuschließen, dass dann auch mal ein Unberechtigter zugreifen könnte.
Wenn eine eigene .htaccess gar nicht unterstützt wird, dann ist eine Absicherung der Quelldaten so nicht möglich.
Eingebunden wird das Ganze dann mit folgendem Pluginaufruf:
{{{op_extern_content('http://domain.tld/userfiles/extern_content/boilerplatetext.htm', '16-stelliges_token2', 'extern_r_rumpel', 'html', '');}}}
Es kann natürlich auch jede andere Webseite eingebunden werden.
Wenn die Browserkennung und das Authtoken nicht benötigt werden, dann reicht:
{{{op_extern_content('http://domain.tld/irgendeineSeite.html', '', '', 'fullhtml', '');}}}
Soll JavaScript erhalten bleiben, dann den letzten Parameter setzen:
{{{op_extern_content('http://domain.tld/irgendeineSeite.html', '', '', 'fullhtml', 'js');}}}
Reine Textdateien bindet man ein mit:
{{{op_extern_content('http://domain.tld/textdatei.txt', '', '', 'txt', '');}}}
So lässt sich auch problemslos die Druckausgabe einer CMSimple_XH Webseite einbinden.
{{{op_extern_content('http://domain.tld/?EineSeite&print', '', '', 'fullhtml', '');}}}
Parameter:
- txt
Zeilenumbrüche werden umgewandelt, anderenfalls kommt der gesamte Text in einer Zeile.
Der Inhalt wird in blockquote-Tags gesetzt und ein Quelleverweis wird angegeben. - html
Es werden:
- Pluginaufrufe,
- CMSimple Scripting,
- Javascript (konfigurierbar per Parameter)
- html-Kommentare
- iFrames
entfernt. - fullhtml
Wie html; Zusätzlich wird alles, was außerhalb der body-Tags liegt entfernt, inkl. der body-Tags.
Der Inhalt wird in blockquote-Tags gesetzt und ein Quelleverweis wird angegeben. - js
ist dieser Parameter gesetzt, bleibt JavaScript aus der Quelle erhalten,
sonst wird es entfernt
Konfiguration:
- Maxredirs
- max. Anzahl von Weiterleitungen, denen Remotecontent_XH folgt - ConnectTimeout
- Sekunden, bis zum Timeout beim Verbinden, Standard 4 - Timeout
- Sekunden, bis zum Timeout (gesamt), Standard 6 - Ssl verifyhost
- false - kein Test, 2 Übereinstimmung Zertifikat mit Hostnahmen, Standard 2 - Cache
- Cachezeit, Standard 604800 (eine Woche) - Verbose
- gibt erweiterte Informationen aus
- dient zur Fehlerfindung
- nach Deaktivieren Cache löschen!
Der Server muss cURL unterstützen.
Für CMSimple_XH ab Version 1.6.10. Frühere Versionen wurden nicht getestet.
Bei der Nutzung bitte die Urheberrechte beachten!
Installation:
PHP ab Version 5.3 (Sie sollten min. Version 5.6 einsetzen! (Stand 01/2018)
Für CMSimple_XH Version 1.6.10 - 1.7.2. Frühere Versionen wurden nicht getestet.
Um das Plugin zu installieren, einfach den entpackten Ordner remotecontent in den Pluginordner laden.
Möglicherweise, abhängig vom Webserver, müssen noch Rechte für:
- die Konfigurationsdatei /plugins/remotecontent/config/config.php,
- den Stylesheet /plugins/remotecontent/css/stylesheet.css
- und die entsprechende(n) Sprachdatei(en) /plugins/remotecontent/languages/xx.php
geändert werden (0666), falls man diese über das Backend bearbeiten möchte.
Die Ordner:
- /plugins/remotecontent/languages/
- /plugins/remotecontent/config/
- /plugins/remotecontent/cache/
benötigen 0777.
Alle Voraussetzungen lassen sich auf der Startseite des Plugins prüfen.
Remotecontent_XH, Copyright © 2016 - 2018 Olaf Penschke
Gern nehme ich auch Informationen entgegen, auf welchen Seiten das Plugin eingesetzt wird.
Remotecontent_XH kann unter Einhaltung der GPLv3 verwendet werden.
Adapted for CMSimple_XH 1.6.10 - 1.7.2 by cmsimple-xh.org