Archiv der Kategorie: Typo3

TYPO3: BodyTag mit CSS Klassen für Page Id und Page Template

Folgend ein kleiner TypoScript Snippet um den BodyTag mit zusätzlichen Klassen zu rendern.

Eine ist mehr informativ und gibt die Page ID aus z.B. „pid-123“. Die andere gibt das aktuell ausgewählte bzw. „vererbte“ Seitentemplate von fluidpages aus und kann für Stylingzwecke gut gebraucht werden.

Der TypoScript Kenner kann dies leicht z.B. für FLUIDTEMPLATE umschreiben.

 

TYPO3: Fluid Powered TYPO3 – Custom Flux Controller

FluidTYPO3 alleine ist schon eine geniale Lösung. Damit ist es ein leichtes Seitentemplates und Contentelemente anzulegen.

Im Hintergrund arbeitet Flux und übergibt automatisch die wichtigsten Daten für das Frontendrendering.

Bei Seiten sind dies alle benötigten Daten zu Seiteneigenschaften, bei Contentelementen alle benötigten Daten aus den gepflegten Feldern der Flexform des Contentelements und noch einiges mehr.

Für den Fall dass dies nicht ausreichen sollte gibt es die Möglichkeit in der Providerextension einen „Custom Flux Controller“ anzulegen.

In diesem ist es möglich zusätzliche Daten an die View zu übergeben, die nicht durch Flux geliefert werden.

Wie dies genutzt werden kann will ich folgend kurz beschreiben.

Zunächst müssen im Ordner „Classes/Controller“ zwei Controller Dateien angelegt werden:

  • ContentController.php
  • PageController.php

Beispielcode zum ContentController:

Beispielcode zum PageController:

Dies allein sollte schon ausreichen um einen Custom Flux Controller für Page und Content anzulegen.

Für den Fall dass dies nicht ausreichen sollte muss wie hier beschrieben im Ordner „Migrations/Code“ die Datei ClassAliasMap.php angelegt werden.

 

Fluid Powered TYPO3 auf Github.

TYPO3: Fluid Powered TYPO3

Ich möchte hier kurz Fluid Powered TYPO3 vorstellen. Dieses war mir schön länger bekannt, nur leider habe ich die Genialität dahinter nicht verstanden. Mit dem Gedanken „wer braucht den bitte Flux“ habe ich dieses Thema immer schnell abgehakt.

FluidTYPO3 besteht aus einer Kombination diverser Extensions für TYPO3 CMS. flux, fluidcontent, fluidcontent_core, fluidpages und vhs bilden zusammen ein sehr geniales gespannt.

Diese müssen natürlich nicht allesamt genutzt werden. flux und fluidcontent alleine reichen schon aus um schnell flexible Contentelemente anzulegen. fluidpages weitet das ganze auf Seitentemplateebene aus. fluidcontent_core ersetzt css_styled_content. vhs selbst ist eine Sammlung von oft benötigten ViewHelpern.

Wie auf der Homepage von FluidTYPO3 zu lesen ist steht „convention-over-configuration“ im Vordergrund. Und das ist auch sehr genial umgesetzt.

Doch wie findet man einen einfachen Einstieg um dies zu nutzen? Fast ein wenig versteckt ist in der sehr umfangreichen Dokumentation die Extension „builder“ erwähnt. Ich persönlich hätte den builder mehr in einem QuickStart Tutorial hervor gehoben.

fluidtypo3-builder

Mit dieser ist es möglich wie zu den alten Extension Kickstarter Zeiten eine FluidTYPO3 „provider extension“ zu erstellen. Dies ist über ein Backend Modul möglich oder man nutzt dazu den CLI Dispatcher auf der Kommandozeile. Deren Grundgerüst sieht dann wie folgt aus:

provider-extension

Dies ist auf den ersten Blick eine ganz normale Extbase Ordnerstruktur, in der Datei ext_tables.php wird diese Extension als „Provider Extension“ bei Flux registriert und die Magie beginnt.

Als Beispiel sind über den Builder dort schon zwei Templates angelegt worden, diese sind zum einen ein Seiten-Template und zum anderen ein Contentelement-Template. Jedes weitere Template das im Ordner „Page“ oder „Content“ angelegt wird, wird automatisch im TYPO3 Backend als Seitentemplate oder als Contentelement zur Verfügung gestellt.

Hinzu kommt dass in diesen Template Dateien die komplette Konfiguration enthalten ist. Configuration (BE Eingabe), Preview (BE) und Main (FE rendering) sind dort zentral in einer Datei enthalten. Und das alles ohne eine einzige Zeile TypoScript!

Beispiel Konfigurationsdatei für ein Seitentemplate:

Beispiel einer Konfigurationsdatei für ein Contentelement:

Im Hintergrund kümmert sich flux um alles und übergibt automatisch an die Templates (Views) alle benötigten Objekte für das Rendering im Frontend.

Wie schon erwähnt ein in meinen Augen ziemlich geniales Gespann mit dem man einfach, schnell und flexibel Seitentemplates und Contentelemente (FCE’s) anlegen kann.

Fluid Powered TYPO3 auf Github

TYPO3: RTE – Javascript in href nutzen

Manchmal möchte man gerne anstatt der zur Verfügung stehenden Linkmöglichkeiten des Wizards in RTE direkt eine Javascript Funktion aufrufen.

Wechselt man z.B. im Textelement im RTE in die HTML Ansicht, kann unten stehendes Markup einkopiert werden. Mit den zusätzlichen Attributen lässt der RTE das href Attribut in Ruhe und lässt dieses so wie es ist.

 

Typoscript: csc stdWrap abhängig von CType entfernen

Ist zwar Abartig, aber es geht ^^ Hier ein paar Beispiele.

 

TYPO3: MySQL strict modes und TYPO3

TYPO3 Version 6.2 LTS ist gerade frisch raus und ich wollte dieses lokal auf meinen Rechner ausprobieren. Die Installation war schnell erledigt. Doch beim ersten einfügen eines Contentelements kam die Fehlermeldung „SQL error: ‚Field ‚filelink_sorting‘ doesn’t have a default value‘ (tt_content:NEW……..)“ im BE?

WTF, was ist das… bei einer gerade eben frisch eingerichteten TYPO3 Installation. Google war gnädig und hat mich dann doch gleich zum richtigen Ergebnis geleitet:

Document that TYPO3 CMS is not compatible with MySQL strict modes

Anscheinend gibt es Probleme mit der MySql Datenbank wenn diese mit Mode „STRICT_TRANS_TABLES“ oder „STRICT_ALL_TABLES“ konfiguriert ist.

Der Vollständigkeit halber noch unten wie man diesen Modus setzt.

Weiterführende Links:
http://forge.typo3.org/issues/54883
http://forge.typo3.org/issues/52206
https://www.netbrothers.de/typo3-projekte/typo3-tipps/typo3-mysql-strict-mode/

 

Extbase / Fluid: Inline Javascript einfügen?

Schön ist es vielleicht nicht wenn man in Extbase/Fluid Inline JavaScript ins Fluid-Template mit aufnehmen will. Aber in manchen Fällen kommt man einfach nicht drum herum ;-) Die Stelle an der es tricky wird ist wenn dynamische Werte mit der geschweiften Klammer in das JavaScript mit aufgenommen werden sollen.

In diesem Fall muss mit einem <![CDATA[ … ]]> gearbeitet werden.

Ein anderes Szenario ist wenn die eingefügten Inhalte ebenfalls JavaScript oder Json enthalten. Hier müssen die Daten mit dem Fluid „format.html“ ViewHelper eingefügt werden.

 

TYPO3: Extbase – alternatives Fluid Template in der Controller Action

Manchmal ist vielleicht nötig programmatisch in der Extbase Controller Action ein anderes FLUID Template zu laden.