Typo3 zurechtgeschnitzt – Teil 2: Implementierung einer Extension

Im ersten Teil ging es um die Bereitstellung von Typo3-Extensions im Typo3-Backend. An dieser Stelle will ich mit der Implementierung weiter fortfahren.

teaserList

Das kann die Typo3-Extension „pw_teaser 2.2.7“

Noch sind nicht alle vorhandenen Extensions mit Typo3 6.2 LTS kompatibel. Ich habe die Extension „pw_teaser“ schon einmal an die neuen Anforderungen angepasst. Im weiteren zeige ich wie man die Extension implementiert und für die eigenen Bedürfnisse abändert. Der pw_teaser soll im weiteren Verlauf des Beitrages eine dynamische Seite von Angeboten darstellen, die wiederum auf den ganzen Artikel verweisen.

Implementierung der Extension

Zuerst muss im Root-Template das dazugehörige „Static Template“ inkludiert werden, damit die Default-Einstellungen der Extension im TypoScript geladen werden können. Am Rande erwähnt: TypoScript ist eine Konfigurationssprache, mit der sich Aussehen und Verhalten von Typo3 steuern lässt.

typo3BackendStaticTemplate

Nun lässt sich mit einem Content-Element vom Typ „Insert-Plugin“ einer Seite das Plugin „pw_teaser“ zuweisen. Anschließend wählt man unter „General preferences“ die „Teaser-Source: [Childpages of current page]“ aus.

typo3BackendPwTeaser

Als letzter Konfigurationsschritt muss noch der Pfad des HTML-Templates angegeben werden, um im Anschluss Anpassungen des Seiten-Layouts per Fluid (Namespace) vornehmen zu können.

typo3BackendPwTeaderTemplate

Gelegentlich ist auch gewünscht, die Sortierung der Teaser-Liste zu verändern, die Anzahl der Artikel zu beschränken und Seiten zu ignorieren. Diese und sonstige Einstellungsmöglichkeiten sind im Reiter „Visibility options“ zu finden.

Fluid-Template erstellen

Für die Ausgabe von Inhalten und Daten, die von einer Extension erzeugt werden, verwendet man die Template-Engine Fluid, die auf dem Framework Extbase basiert. Fluid-Templates lassen sich nicht nur mit HTML strukturieren, sondern beinhalten auch  einen eigenen Namespace zur Datenausgabe. Hierzu ein paar Tipps:

  • Um sich einen Überblick aller Variablen im Fluid zu verschaffen ist das globale Array „_all“ die einzige Möglichkeit.
<f:debug>{_all}</f:debug>
  • Wie oben zu sehen, werden Variablen in geschweiften Klammern geschrieben. Soll ein nicht globales Array ausgegeben werden, ist hierzu eine for-each-Schleife nötig.
<f:for each="{categories}" as="category"> 
  <h1>{category.name}</h1> 
  <p>{category.description}</p>
</f:for>
  • Sinnvoll ist es, den Angebotsposten zum Artikel zu verweisen. Dazu bietet uns Fluid den „Page-Link“ an. In das Attribut „pageUid“ wird die UID der zu verlinkenden Seite eingetragen.
<f:link.page pageUid="23">Contact</f:link.page>

Wie sieht das Ganze aus? Ich zeige euch das hier mal an diesem Beispiel:

FluidTemplate

Jetzt sollte eigentlich alles klar sein, wenn ihr Fluid-Templates für den pw_teaser erstellen wollt.

Und wie sieht es bei euch aus? Schreibt mir doch eure Erfahrungen mit Fluid in die Kommentare.

5 Gedanken zu „Typo3 zurechtgeschnitzt – Teil 2: Implementierung einer Extension

  1. Gratulation zu einem gelungenen zweiten Teil über Typo 3 und das Fluid-Template. Alles wird wieder klar und verständlich erklärt und ausführlich mit Screenshots dokumentiert. Weiter so! Freue mich schon auf teil 3.

  2. Hi Steffen,

    ich bin auf der Suche nach Lösung eines Problems mit der pw_teaser Extension auf deine Seite gestoßen, da du dich auch mit dieser Extension beschäftigt hast.

    Die Extension läuft bem mir soweit wie Sie soll (mit css_styled_content) – allerdings gibts jetzt ein Problem mit Umstellung auf fluid_styled_content. Bei Ausgabe der Content-Elemente werden keine Images mehr ausgegeben bzw. beim debuggen wir angezeigt, daß content.image leer ist.

    image => TYPO3\CMS\Extbase\Persistence\ObjectStorageprototypeobject (empty)

    Das hat wohl damit zu tun, daß fluid_styled_content einiges bei der Bereitstellung der Images aus Inhaltselementen ändert – (textmedia assets (?))
    Habe schon versucht, mit vhs viewhelper das Problem zu Lösen, krieg kein Image der Content Elemente in die Ausgabe – wohl auch unmöglich solange mein image als (empty) angezeigt wird und leer ist. Da muß ich wohl etwas bei der Datei Tx_PwTeaser_Domain_Model_Content ändern (?) – Nur wie und was? Für eine solche Anpassung sind meine Kenntnisse zu gering. Hast du dich damit schon beschäftigt und evtl. eine Lösung bzw. kannst mir einen Tipp geben?

    Die Ausgabe von Images aus den Seiten Resources klappt problemlos aber die verflixten Images aus den Content-Elementen wollen einfach nicht. Und da auf GitHub zu sehen ist, daß seit 3 Jahren nichts an dieser Extension gändert wurde, vermute ich mal, es wird wohl keine Anpassung an die Verwendung von fluid_styled_content anstatt css_styled_content vom Entwickler geben. Die Extension ist aber klasse und ich würde sie gerne verwenden – allerdings mit fluid_styled_content.

    Vielen Dank für deine Antwort.

    • Hallo Emil,

      die Frage ist gar nicht so leicht zu beantworten, wir setzen die Erweiterung nicht in einer solchen Konfiguration ein. Schicke uns doch mal den Fluid-Debug-Output für {_all} und Screeshots zu deinen Einstellungen am PW-Tesaser-Plugin per E-Mail an info@doctima.de zu. Wir schauen uns das Ganze mal an und können dir dann vielleicht einen Tipp geben. Verwende bitte die E-Mail-Adresse, die du bei deinen Kommentar angegeben hast.

      Viele Grüße

      Christian

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.