Mit fluid_styled_content, wie benutzerdefinierte Inhaltselemente in TYPO3 7.5 und 7 LTS erstellt werden?

8

Mir wurde gesagt, dass es einfach ist, in TYPO3 7.5 benutzerdefinierte, strukturierte Inhaltselemente für das Backend einzurichten, die die neue Systemerweiterung fluid_styled_content verwenden.

Nachdem ich mich bei sysext/fluid_styled_content und sysext/backend angesehen habe, konnte ich es selbst nicht herausfinden. Irgendwelche Hinweise?

    
Urs 07.10.2015, 13:29
quelle

1 Antwort

18

Informationsquelle: fluid_styled_slider auf Github

Diese Informationen sind auch hier verfügbar: Ссылка

Die offiziellen Dokumente sind auch online: Ссылка

PageTSconfig

Damit unser Inhaltselement im Assistenten für neue Inhaltselemente angezeigt wird, müssen wir es über PageTSconfig

hinzufügen %Vor%

TCA

Nun müssen wir TYPO3 mitteilen, welche Felder im Backend angezeigt werden sollen. Daher müssen wir die TCA-Konfiguration von tt_content erweitern. Dieses Zeug ist jetzt im Ordner Configuration/TCA/Override fertig. Fügen wir zuerst unseren neuen CType hinzu (dies könnte auch in ext_tables.php gemacht werden):

%Vor%

Jetzt bestimmen wir, welche Felder für unseren CType angezeigt werden sollen:

%Vor%

TypoScript

Der neue CType fs_slider benötigt eine Renderdefinition. Das ist ziemlich einfach:

%Vor%

Das lib.fluidContent ist nicht viel mehr als die Initialisierung eines FLUIDCONTENT -Objekts. Wir ändern nur den Vorlagennamen (Stellen Sie sicher, dass Sie zumindest Ihren Vorlagenpfad zu lib.fluidContent.templateRootPaths hinzufügen) und geben Sie an, welche DatenProzessoren wir verwenden werden. Ach richtig, dataProcessors.

Datenprozessoren

Das sind PHP-Klassen, die die Daten erhalten, bevor sie an das fluidtemplate übergeben werden. Sie können die Daten manipulieren oder hinzufügen in der Vorlage vorhanden sein. Der Code% Zum Beispiel werden alle angehängten Medienelemente für uns aufgelöst, so dass wir auf die FileReference-Objekte in der Ansicht zugreifen können. TYPO3\CMS\Frontend\DataProcessing\FilesProcessor ist ein benutzerdefinierter Prozessor, um zu veranschaulichen, wie dies funktioniert.

%Vor%

DataProcessors sind jedoch optional.

Die Fluidvorlage

Das letzte Puzzleteil ist das eigentliche Template, das am Ende die von allen angegebenen DataProcessors verarbeiteten Daten erhält. Das ist einfach fließend, wie wir es kennen und lieben:

%Vor%

Natürlich können wir hier auch Layouts und Partials verwenden. Beachten Sie, wie DanielGoerz\FluidStyledSlider\DataProcessing\FluidStyledSliderProcessor die Zeile tt_content aus dem gerenderten enthält Inhaltselement. {data} wird von {files} hinzugefügt und enthält das angehängte Medium als richtige Objekte. TYPO3\CMS\Frontend\DataProcessing\FilesProcessor wird von unserem eigenen DataProcessor hinzugefügt.

Optional: Vorschau in Page Module

Wir wollen wahrscheinlich eine Art Vorschau für unsere Redakteure im Seitenmodul. Es gibt zwei bemerkenswerte Möglichkeiten, dies zu erreichen:

Fluidvorlage über PageTSconfig

Wir können einfach eine flüssige Vorlage angeben, die in PageTSconfig als Vorschau gerendert werden soll:

%Vor%

Diese Vorlage erhält alle Felder der Zeile tt_content direkt. So enthält {slider.width} den Header, {header} enthält den Header Bodytext und so weiter.

tt_content_drawItem Haken

Wenn wir anspruchsvollere Dinge tun möchten, wie zum Beispiel die Auflösung von Kinddatensätzen, können wir uns beim {bodytext} Hook anmelden so:

%Vor%

Unsere Klasse muss tt_content_drawItem implementieren.

%Vor%

Was immer wir in \TYPO3\CMS\Backend\View\PageLayoutViewDrawItemHookInterface schreiben, wird im Seitenmodul in unserem Inhaltselement gerendert.

    
Daniel 10.10.2015, 15:54
quelle