Aktuelle Informationen rund um TYPO3

Archiv zur KategorieFrontend

HOWTO: Lightbox ohne Extension in TYPO3

Durch Neuerungen in TYPO3 4.5 ist es einfacher geworden, die integrierte “Enlarge on Click” Funktion als Lightbox umzusetzen. Hier ist nun eine kurze Anleitung, wie man eine solche Funktion umsetzen kann und dabei sogar ohne Extension auskommt.

Um Bilder per Klick größer anzeigen zu lassen, gibt einem TYPO3 die Möglichkeit, bei den Content-Elementen Bild bzw. Text/Bild die Funktion “Enlage on Click” zu setzen. Dies veranlasst TYPO3, bei einem Klick auf ein Bild dieses in einem Popup in der Originalgröße anzuzeigen. Eine nicht ganz zeitgemäße Funktion.

Häufiger wird deswegen diese Funktion umgebaut, so dass die größere Ansicht des Bildes in einer Lightbox angezeigt wird. Hierfür hat man früher häufig Extensions wie beispielsweise “perfect_lightbox” eingesetzt. Durch Erweiterungen an den TypoScript-Eigenschaften einer Image-Resource ist die Verwendung einer Extension nun nicht mehr nötig.

Flagbit Büro

Beispiel für eine Lightbox mit einem Bild des Flagbit-Büros


weiterlesen »

TemplaVoila Preview in Vorschau ausblenden

Wenn man in seiner TYPO3-Instanz TemplaVoila verwendet und sich eine verstecke Seite in der Vorschau anzeigt bzw. mit Workspaces arbeitet, werden in der Preview Infofenster angezeigt, welche durchaus auch mal sehr nervig sein können oder gleich das ganze Layout zerschießen, wenn man mit der Maus über entsprechende Elemente fährt. Jedoch lässt sich dieses Feature ganz einfach ausschalten. In dem CObject des Page-Objektes setzt man die Option disableExplosivePreview auf 1. Beispiel:

page.10 = USER
page.10.userFunc = tx_templavoila_pi1->main_page
page.10.disableExplosivePreview = 1

Will man auch noch das von TYPO3 angezeigte kleine rote Schild “Preview” deaktivieren, kann man folgende Eigenschaft in TYPOScript setzen:

config {
    # Disable Preview Message in FE
    #message_preview = <!-- -->
}

Eine vergessene Funktion: substituteMarkerArrayCached

TYPO3 stellt diverse Funktionen zur Verfügung, die die Erstellung von Extensions deutlich vereinfachen. Dabei gibt es auch einige, die selten genutzt werden, obwohl sie bestimmte Probleme deutlich vereinfachen.

Eine dieser Funktionen ist substituteMarkerArrayCached. Sie dient dem vereinfachten Austausch von Markern, Subparts und sogenannten Wrapped Subparts. Marker lassen sich zugegebenermaßen auch über substituteMarkerArray, Subparts über substituteSubparts austauschen. Auf die Vorteile dieser Funktion werde ich im Nachfolgenden kurz eingehen.

Zunächst vermag sie, wie bereits angedeutet Wrapped Subparts auszutauschen (soweit ich das bisher gesehen habe, ist es überhaupt die einzige). Mit solchen Wrapped Subparts ist es möglich, Elemente im Template in durch PHP zu umrahmen, was sich inbesondere bei Verlinkungen auszahlen kann. Was das bedeutet, sollen folgende Codeschnipsel andeuten:

  1. <!– ###LINK_ITEM### –>Weitere Informationen<!– ###LINK_ITEM### –>

Nun lässt sich mit nachfolgendem Code bequem ein Link um das “Weitere Informationen” setzen:

  1.         $wrappedSubparts[‘###LINK_ITEM###’] = explode(‘|’, $this->pi_linkTP_keepPIvars(‘|’, array(‘function’ => ‘var’), $value));
  2.         $content .= $this->cObj->substituteMarkerArrayCached($template, $markerArray, $subparts, $wrappedSubparts);

Wie gezeigt werden im Gegensatz zu normalen Markern und Subparts nicht einzelne Inhalte, sondern jeweils zwei übergeben, die vor bzw. hinter dem Elemente eingefügt werden. Da substituteMarkerArrayCached nicht allzu verbreitet ist, wurde diese Funktionalität bisher relativ oft über die Kombination von getSubpart und substituteSubpart realisiert. Dies führt nicht zuletzt auch zu deutlich unübersichtlicherem und unlesbarerem Code.

Außerdem hilft die Funktion auch punktuell die Performance der Verarbeitung der Strings zu verbessern. Dies wird über Überprüfung und Caching des übergebenen Template-Code und den Daten-Arrays vor der Verarbeitung gewährleistet. Dies sollte sicher nicht überbewertet werden, kann sich bei konsequenter Anwendung aller Caching-Mechanismen jedoch auch positiv auswirken.

Insgesamt wird mit substituteMarkerArrayCached ein Werkzeug an die Entwicklerhand gegeben, die das Leben durchaus erleichtern kann. Ein genauerer Blick kann sich also durchaus lohnen!

PS: Wir sind durchaus offen für weitere vorstellungswürdige Funktionen, die in TYPO3 versteckt schlummern und auf ihre Nutzung warten.