Für die individuellen Content Elemente wird idealerweise eine eigene Extension erstellt. Ebenso ist die Integration in bestehende Extensions möglich. Wir verwenden hier die erste Variante. Nachfolgend die erforderlichen Dateien (im Extension Verzeichnis) einer fiktiven Extension "Custom Content Elements" (Extension Key "cce") mit einem individuellen Inhaltselement "Teaser".
Die Daten des Inhaltsementes stehen im Fluid-Template in der Variablen "{data}" zur Verfügung. Bei der Ausgabe von Bildern muss, sofern diese FAL (File Abstraction Layer) nutzen, ein zusätzlicher ViewHelper implementiert werden. Beispiele finden sich ausreichend im Netz, z.B. unter dem Suchbegriff "FalViewHelper".
ext_tables.php
<?php
if (!defined('TYPO3_MODE')) {
die ('Access denied.');
}
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'Custom Content Elements');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig('
mod.wizards.newContentElement.wizardItems.common.elements {
cce_teaser {
icon = gfx/c_wiz/regular_text.gif
title = Teaser
description = Teaser (Custom Content Elements)
tt_content_defValues.CType = cce_teaser
}
}
mod.wizards.newContentElement.wizardItems.common.show := addToList(cce_teaser)
');
$TCA['tt_content']['columns']['CType']['config']['items'][] =
array(
'Custom Content Elements',
'--div--'
);
$TCA['tt_content']['columns']['CType']['config']['items'][] =
array(
'Teaser (Custom Content Elements)',
'cce_teaser',
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath($_EXTKEY) . 'ext_icon.gif'
);
$TCA['tt_content']['types']['cce_teaser']['showitem'] = '
--palette--;LLL:EXT:cms/locallang_ttc.xml:palette.general;general,
--palette--;LLL:EXT:cms/locallang_ttc.xml:palette.header;header,
--div--;Text,
bodytext;Text;;richtext:rte_transform[flag=rte_enabled|mode=ts_css], rte_enabled;LLL:EXT:cms/locallang_ttc.xml:rte_enabled_formlabel,
--div--;Bilder,
image,
--div--;LLL:EXT:cms/locallang_ttc.xml:tabs.access,
--palette--;LLL:EXT:cms/locallang_ttc.xml:palette.visibility;visibility,
--palette--;LLL:EXT:cms/locallang_ttc.xml:palette.access;access,
';
?>
Configuration/TypoScript/setup.txt
tt_content.cce_teaser = COA
tt_content.cce_teaser {
10 = FLUIDTEMPLATE
10 {
file = EXT:cce/Resources/Private/Templates/Teaser.html
partialRootPath = EXT:cce/Resources/Private/Partials
layoutRootPath = EXT:cce/Resources/Private/Layouts
}
}
Resources/Private/Templates/Teaser.html
<f:debug>{data}</f:debug>
Kommentare
Shouldn't the mod.wizard have the same identifier "cce_teaser" ? right now it shows ccc_teaser.