How to use iframes in Joomla!

Advertisement:

iFrames in Joomla!: so funktioniert’s

Ich arbeite noch nicht lang mit Joomla!, aber im Grunde genommen ist es eben ein Content-Management-System wie jedes andere: es hat so seine Vorteile (von denen ich jetzt noch keinen so richtig gefunden habe) und seine Nachteile und Herausforderungen. Aber was wäre Webseitenprogrammierung ohne Herausforderungen?

Eine Herausforderung vor der ich stand, war das einbinden von “fremden” Webseiteninhalten auf einer anderen Seite. Dabei geht es nicht um den berühmten “Content-Klau“, nein. Ich wollte, bzw. ich muss, bestimmte Inhalts-Texte an verschiedenen Stellen und in verschiedenen Gesamt-Kontexten darstellen. Am Beispiel: In jedem Online-Shop gibt es ja die gefürchtete Widerrufsrechts-Belehrung. Diese muss sowohl in den AGB vorkommen, als auch separat abrufbar sein und vor jedem Absenden einer Bestellung nochmal eingeblendet und bestätigt (per Checkbox o.ä.) werden.

Ich wollte tunlichst vermeiden, dass ich an drei verschiedenen Stellen die Widerrufsrechtsbelehrung manuell eingebe (okay, da gäbe es Copy & Paste, aber:) und womöglich bei einer Änderung einer dieser Texte vergessen wird. Ich dachte mir: Hey, im Grunde erstellst du eine Seite mit nur diesem Text (und sonst nichts) und blendest den dann als iframe eben an den jeweiligen Stellen ein. So musst du nur einmalig die originäre Seite ändern.

An dieser Stelle jedoch macht es Joomla! dem “Webmaster” (oh man, der Begriff ist so 90er) aber nicht einfach. Aufgrund eines Sicherheitspatches von vor irgendwann, fiel die Einbettung von iframes in Beitragsseiten raus. In der Praxis kann man sich dann im Editor die Finger wund tippen, der Editor schmeisst die -Tags immer raus – und natürlich alles, was dazwischen steht. Auch das umstellen vom Rich-Text-Editor auf “Kein Editor”, wie an vielen Stellen vorgeschlagen, half mir nicht.

Ich wurde heute dann endlich im Joomla!-Forum fündig. Die Lösung ist an sich ganz simpel, macht auf mich aber eher den Eindruck eines beabsichtigten Work-Arounds, statt einer richtigen Lösung.

Step-By-Step: Ein iframe in einem Joomla!-Beitrag einbinden

Grundsätzlich heissen in Joomla! die iframes wohl “Wrapper“. Um einen solchen hinzuzufügen:

  1. Im Joomla!-Menü unter “Erweiterungen” -> “Module” -> “Neu” den Wrapper auswählen.
  2. Einen Titel und die Position auf der Seite festlegen. Ich habe eine eigene (unique) Position für jeden iframe verwendet.
  3. Unter den Moduleigenschaften die URL festlegen. Leider funktioniert nur eine absolute URL, das heisst, der ganze vollständige Pfad mit http:// usw. muss angegeben werden.
  4. Speichern
  5. In dem Beitrag, in dem der iframe stehen soll, mit der Textzeile {loadposition position} die jeweilige Seite laden. Statt position einfach die im Wrapper vergebene Position aufrufen.

Bei mir funktioniert es damit. Der Befehl {loadposition position} ist eigentlich dazu gedacht, ein Modul in einem Beitrag anzuzeigen und wird genau so in der Joomla!-Dokumenation erklärt.

Leider wird die Funktion “Autohöhe”, die der Wrapper zur Wahl stellt, nicht richtig umgesetzt. In dem Layout in dem ich mich befinde, wird der umliegende div(?)-Container nicht automatisch vergrössert. So muss ich die Höhe manuell festlegen. Auch, dass die URL-Pfade nur vollständig und absolut funktionieren, finde ich unschön. Bei Dateien bzw. Seiten, die auf dem gleichen Server liegen … ach naja, was soll ich mich drüber ärgern. Ändert ja doch nichts.

Bonus-Tipp

Falls ihr ein iframe von eurer eigenen (Joomla!-) Seite einbauen wollt und feststellt, dass ihr mit o.g. Methode die Seite im kompletten Layout einbindet, versucht statt der Seite ../index.php?article&id=4 einfach mal index2.php?article&id=4. Das bindet nur die jeweilige Seite, ohne das Layoutgerüst drum herum ein. Den “option=com_content&view=”-Teil vom URL-String kann man in beiden Fällen getrost weglassen.

Like this post? Share it!
Advertisement:

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>