Zum Inhalt springen

Andi Portmann – Web, Print, iPhone

Thickbox anstatt altmodische Popups verwenden

2. Februar 2009, 7 Kommentar(e)

Bilder in einem neuen Browserfenstern (Popup) vergrössert darzustellen ist Schule von gestern. Heutzutage wird dies schicker und vor allem barrierefrei gelöst.

Um kleine Vorschaubilder bei Mausklick ansehnlich im Grossformat zu präsentieren, gibt es inzwischen viele verschiedene Lösungen. In der folgenden Anleitung wird Thickbox in ein bestehendes Sefrengo-Template integriert.

Arbeitsweise

Sefrengo bietet die Möglichkeit, Javascript- und CSS-Dateien mit Hilfe des Systems zu verwalten. Da das CSS-System veraltet ist und die Dateibearbeitung nicht sonderlich intuitiv ist, werden im nachfolgenden Beispiel sämtliche Dateien «hart» im Layout eingebunden. Somit findet die Dateiverwaltung über einen FTP-Clien statt.

Dateien beschaffen und hochladen

Als Erstes müssen die benötigten Dateien von der Thickbox-Website bezogen werden. Es ist anzuraten, sowohl von jQuery wie auch von Thickbox die komprimierte Variante zu verwenden, um nicht unnötige Ressourcen zu verschenken.

Folgende Dateien werden für die nächsten Schritte benötigt:

Als nächstes müssen die Dateien auf den FTP geladen werden. Folgende Ablage ist zu empfehlen:

Dateien anpassen und einbinden

An den bestehenden Dateien müssen noch zwei Pfadangaben angepasst werden. In der Datei projekt/cms/js/thickbox-compressed.js muss in Zeile 8 der Pfad zu der Grafik, welche während dem Laden des Bildes angezeigt wird, angepasst werden. Im vorliegenden Fall ist var tb_pathToImage = "cms/img/loadingAnimation.gif"; die korrekte Pfadangabe.
Ebenso benötigt die Datei projekt/cms/css/thickbox.css eine kleine Änderung. In Zeile 37 muss der Pfad für das Bild «macFFBgHack.png» in url(../img/macFFBgHack.png) geändert werden. Gleichzeitig kann in der Klasse .TB_overlayBG die Farbe für den Abblendeeffekt festgelegt werden.

Nun sind die nötigen Anpassungen erledigt und die Dateien können im Sefrengo-Backend unter dem Bereich «Layout» eingebunden werden. Wird die Thickbox nur auf wenigen Seiten der Website verwendet, lohnt sich der Einsatz des Plugins Add Headerelement in Zusammenarbeit mit dem Modul ChangeHeader. Mit dieser Kombination können die benötigten Dateien nur auf denjenigen Seiten eingebunden werden, auf welchen sie auch wirklich benötigt werden.

Wird die Thickbox durch die ganze Website verwendet, so bindet man die benötigten Dateien fest im Layout ein. Zu beachten sind die Pfadangaben sowie die Reihenfolge der Javascript-Dateien.

<link rel="stylesheet" href="cms/css/thickbox.css" type="text/css" media="screen" />
<script type="text/javascript" src="cms/js/jquery-latest.pack.js"></script>
<script type="text/javascript" src="cms/js/thickbox-compressed.js"></script>

Thickbox verwenden

Nun sind sämtliche Vorbereitungen abgeschlossen und die Thickbox kann verwendet werden. Grundsätzlich geschieht dies über die Ergänzung der Klasse «Thickbox» bei einem beliebigen Link, welcher ein «grosses Bild» als Ziel hat.

In Contentflex könnte ein Template wie folgt aussehen:

<a class="thickbox" href="{imageurl:1}">{imagethumb:1}</a>

Die Thickbox kann auch mittels WYSIWYG-Editor verwendet werden. Das nachfolgende Beispiel geht von dem Editor TinyMCE aus, welcher sich mit dem TinyMCE4SF-Hack in Sefrengo integrieren lässt. Mit dem Standard-Editor FCKeditor dürfte der Weg ähnlich sein.

Um die Klasse nicht immer manuell eintragen zu müssen, gibt es im TinyMCE-Verzeichnis die Datei tinymce4sf_content_overwrite.css. Hier kann eine leere Klassen (.thickbox {}) angelegt werden, welche danach im Editor zur Verfügung steht. Voraussetzung dafür ist jedoch, dass in der Konfigurationsdatei tinymce4sf_config.php die Funktion $TinyMCE4SFconfig['DisableSFCSSclasses'] in Zeile 34 auf true gesetzt ist.

Schlagwörter: , , ,

Verwandte Artikel: Keyword- und Description-Meta nachträglich anpassen, Die Finale 1.4.1 erschienen, Vorabversion von Version 1.4.1 verfügbar, Benutzername in einer neuen Installation, Dateirechte für Ordner einstellen

Zurück zum Seitenanfang
Lupe
Vergrösserungen von Vorschaubildern lassen sich in Sefrengo einfach realisieren mit jQuery und Thickbox.

RSS Abonnemente

Suche

Gezwitscher

Folge «aportmann» auf Twitter

Reaktionen

  1. Holger, 2. Februar 2009, 21:43 #

    Vielen Dank für das schöne Tutorial. Das wird vielen Anfängern bestimmt helfen. :)

  2. Ulrich, 15. Februar 2009, 13:58 #

    Vielen Dank auch von mir. Kannst Du vielleicht auch noch mal erklären, wie man Thickbox mit dem Fotoalbum 1.4.3 einsetzen kann?

    Grüße,
    Uli

  3. Andi Portmann 16. Februar 2009, 08:19 #

    Hallo Uli.
    Wie ich gesehen habe, hast du dich im Forum gemeldet. Schauen wir, ob wir da eine Lösung finden. Grundsätzlich setzt du die Thickbox korrekt ein, das Problem scheint an einem anderen Ort zu liegen.

  4. Forono, 27. Februar 2009, 14:48 #

    Hallo, sehr schöner Artickel … Danke!

    Noch eine Frage dazu, ich möchte ein anderes loadingAnimation.gif einsetzen z.B. das von LightBox. Wie und wo kann ich das einsetzten. Im *.js habe ich es schon gefunden nur wenn ich Thickbox starte kommt immer ein Schlitz (nicht lachen) wo die eigentliche loadingAnimation.gif abgeschpielt wird. Ist es den möglich das zu ändern und wie kriege ich das hin?

    Danke …

  5. Andi Portmann 27. Februar 2009, 14:51 #

    Hallo Forono
    Einfach die Datei loadingAnimation.gif mit einem animated-gif deiner Wahl überschreiben sollte reichen.

  6. Carsten, 14. September 2010, 11:10 #

    Hallo Forono und alle anderen,

    interessanter Artikel! Die thickbox läuft bei mir ganz gut, ich würde gerne das unter dem Bild wenn es geöffnet ist ein downloadlink erscheint…Hast Du (Ihr) ne Ahnung wo ich da im Code ansetzen muss

  7. Andi Portmann 14. September 2010, 12:24 #

    Sali Carsten

    Da kann ich dir leider nicht weiterhelfen. Grundsätzlich denke ich jedoch, dass dies nicht möglich ist, da der Text aus dem Title-Attribut bezogen wird, welcher widerum aus reinem Text bestehen muss.

Kommentar schreiben

HTML-Tags werden entfernt. Formatierung bitte mit Textile. *Fett* | _kursiv_ | Link setzen durch "Linktext":http://www.domain.tld.

Zurück zum Seitenanfang

Zurück zum Seitenanfang