Mittwoch, 23. März 2011

TYPO3 Lightwindow: Ganze Seiten oder Inhaltselemente in Lightbox anzeigen

Die TYPO3 Erweiterung wt_lightwindow bietet die Möglichkeit, beliebige Inhaltselemente oder ganze Seiten in einer Lightbox darzustellen. Die verschiedenen Lightbox-Erweiterungen stellen diese Funktionalität ja meist nur für Grafiken zur Verfügung. Ich werde hier zeigen, wie sich wt_lightwindow in Verbindung mit powermail verwenden lässt. Damit lassen sich Kontaktformulare in einer Lightbox anzeigen, wie auf folgendem Screenshot dargestellt:


Kontaktformular in Lightbox anzeigen mit lightwindow und powermail
Kontaktformular in Lightbox mit Lightwindow und Powermail




In diesem Beispiel verwende ich wt_lightwindow 0.5.0 und powermail 1.6.2.



1. wt_lightwindow installieren

a. Erweiterung wt_lightwindow über den Erweiterungsmanager importieren und danach installieren

b. Das statische Template "Add JS files (wt_lightwindow)" einbinden

c. Cache leeren


2. powermail installieren

a. Erweiterung powermail über den Erweiterungsmanager importieren, installieren und die nötigen Updates machen.

b. Das statische Template "Powermail" und ggf. noch z.B. "Powermail Fancy CSS" einbinden.

c. Cache leeren


3. Formular erstellen

a. Auf der Seite, wo das Formular erscheinen soll, ein Inhaltselement vom Typ powermail anlegen.

b. Das Inhaltselement bearbeiten und das Formular und die Formularfelder anlegen.


4. Link auf das Formular mit lightwindow

Jetzt muss nur noch auf das Formular verlinkt werden. Der Link muss folgende Form haben, damit sich das Formular in einer Lightbox öffnet:

<a href="index.php?id=4" class="lightwindow">Link zum Formular</a>

Es muss also nur die Klasse "lightwindow" hinzugefügt werden. Man kann aber auch noch weitere Optionen hinzufügen:

<a href="index.php?id=4" class="lightwindow page-options" params="lightwindow_type=external,lightwindow_width=730,lightwindow_height=570,lightwindow_show_images=2">Link zum Formular</a>

lightwindow_type=external bewirkt, dass der Link wie ein externer Link behandelt wird. Dies ist wohl notwendig, damit man auch innerhalb der Lightbox auf Links oder Buttons klicken kann, ohne dass sich die Lightbox wieder schließt. Aber keine Sorge, der Link öffnet sich trotzdem im selben Tab!

lightwindow_width=730 gibt die Breite der Lightbox an, hier 730 Pixel.

lightwindow_height=570 gibt die Höhe der Lightbox an, hier 570 Pixel.


Nur Content in Lightbox anzeigen, nicht die gesamte Seite

Hier gibt es vermutlich verschiedene Möglichkeiten. Für mich hat hier eine Templateweiche funktioniert. Ich habe einfach ein neues HTML-Template erstellt, in welchem nur der Marker für den Content gesetzt ist. Für die Seite mit dem Formular habe ich ein eigenes TypoScript-Template erstellt, in dem in einer Konstante der Pfad zu dem neuen Contant-Template angegeben ist.

1 Kommentar:

sportsreport.de hat gesagt…

Schöne Anleitung für lightwindow! Ich habe eine kleine Ergänzung: lightwindow hat einen schönheitsfehler – es ist nicht valide (selbst transitional nicht). Das liegt daran dass es das params attribut nutzt welches gar keines offizielles attribut ist. Eine liste der erlaubten attribute findet ihr hier: http://www.w3schools.com/tags/tag_a.asp

Ich habe eine kleine Anleitung bei stackoverflow.com geschrieben um lightwindow valide zu machen, in dem man das selten verwendete rev attribut verwenden verwendet. zugegeben vielleicht ein bisschen ein hack, aber das ist ja params auch: http://stackoverflow.com/questions/9239930/how-to-validate-lightwindow/9239962#9239962

Kommentar veröffentlichen