Plugin Remotecontent_XH für CMSimple_XH

Mit der Funktionserweiterung Remotecontent_XH kann man externe / fremde Inhalte in die eigene Website einbinden, ohne dafür iFrames nutzen zu müssen.

Oft ist es gewünscht, dass z.B. Listen mit Spielergebnissen o.ä. Content von anderen Websites auf der eigenen Website anzeigt werden.

Hinweis: Hier entsteht Doppelter Content (External Duplicate Content), falls diese Inhalte mehrfach auf verschiedenen Websites benutzt werden.

 

Beispielsweise im Einsatz auf:

Leider gibt es offensichtlich immer wieder Probleme, wenn das Plugin bzw. natürlich CMSimple_XH beim Provider Strato gehostet ist.
Bei anderen Providern scheinen derartige Probleme nicht aufzutreten bzw. sind mir bisher nicht bekannt.

 

Die per Plugin 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, wenn vorhanden, auf dem Quellserver angepasst werden.
Normalerweise sind diese Dateien per .htaccess vor allen externen Zugriffen geschützt.

Als Beispiel:

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
#
<IfModule mod_rewrite.c>
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, 6 oder x Stellen.

Wird mod_rewrite nicht unterstützt, dann bleiben nur die IP-Adressen. Es ist in Zeiten von Shared-Hosting, wenn auch unwahrscheinlich, 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 (Boilerplate_XH-Dokumente) so nicht möglich.

 

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.

 

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, bzw. können die bisherigen Ausführungen auch auf Dokumente angewendet werden, die nicht mit Boilerplate_XH erstellt oder bearbeitet 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', ''); } } }

 

Bei den { und } im Beispielcode sind immer Leerzeichen enthalten, um das hier darstellen zu können. Diese müssen beim Einbinden natürlich weggelassen werden.

 

  


 Konfiguration

  


 Installation

PHP ab Version 5.3
(Sie sollten min. Version 5.6 einsetzen!, Stand 01/2018)

Der Server muss cURL unterstützen.

Für CMSimple_XH Versionen 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:

geändert werden (0666), falls man diese über das Backend bearbeiten möchte.

 

Die Ordner:

benötigen 0777.

 

Alle Voraussetzungen lassen sich auf der Startseite des Plugins prüfen.

Und so sollte es aussehen.

System Check Remotecontent_XH

 


 

 https://filezilla-project.org

FileZilla Client Tutorial (de)

 


 

Bei der Nutzung bitte die Urheberrechte beachten!

Logo Remotecontent_XH Fragen, Hinweise, Fehlermeldungen zu Remotecontent_XH

 Remotecontent_XH im CMSimple_XH Forum

Gern nehme ich auch Informationen entgegen, auf welchen Seiten das Plugin Remotecontent_XH eingesetzt wird. 
Ich möchte keine Statistik führen oder gar veröffentlichen. Es geht einfach darum, zu wissen, ob weiteres Arbeiten an diesem Plugin sinnvoll ist.

 

Remotecontent_XH kann unter Einhaltung der GPLv3 verwendet werden.

 

Version 1.1 für CMSimple_XH Versionen 1.6.10 - 1.7.2 (auch als Update für Version 1.0).

 

Softwareentwicklung ist teilweise sehr aufwendig und findet, für jede hier angebotene Software, in meiner Freizeit statt. Daher freue ich mich über jede Unterstützung. Zum Teil wird damit z.B. einfach diese Website finanziert.
Außerdem bringt eine kleine Anerkennung zwischendurch immer wieder etwas Schwung in die Entwicklung.

 Kaf­fee­kas­se