diff --git a/packages/ep_theme/Configuration/TCA/Overrides/tt_content_element_lineup.php b/packages/ep_theme/Configuration/TCA/Overrides/tt_content_element_lineup.php new file mode 100644 index 0000000..4b57a5a --- /dev/null +++ b/packages/ep_theme/Configuration/TCA/Overrides/tt_content_element_lineup.php @@ -0,0 +1,52 @@ + 'Lineup', + 'value' => 'lineup', + 'icon' => 'content-image' + ], + 'gmap', + 'after' + ); + + $GLOBALS['TCA']['tt_content']['columns']['tx_eptheme_lineup'] = [ + 'exclude' => 0, + 'label' => 'LLL:EXT:ep_theme/Resources/Private/Language/locallang_db.xlf:tx_eptheme_domain_model_lineup.items', + 'config' => [ + 'type' => 'inline', + 'foreign_table' => 'tx_eptheme_domain_model_lineup', + 'foreign_field' => 'tt_content', + 'foreign_sortby' => 'sorting', + 'maxitems' => 99, + 'appearance' => [ + 'useSortable' => 1, + 'collapseAll' => 1, + 'levelLinksPosition' => 'top', + 'showSynchronizationLink' => 0, + 'showPossibleLocalizationRecords' => 0, + 'showAllLocalizationLink' => 0 + ], + ], + ]; + + $GLOBALS['TCA']['tt_content']['types']['lineup'] = [ + 'showitem' => ' + --palette--;' . $frontendLanguageFilePrefix . 'palette.general;general, + tx_eptheme_lineup, + --div--;' . $frontendLanguageFilePrefix . 'tabs.access, + hidden;' . $frontendLanguageFilePrefix . 'field.default.hidden, + --div--;' . $frontendLanguageFilePrefix . 'tabs.extended + ', + ]; + +}); diff --git a/packages/ep_theme/Configuration/TCA/tx_eptheme_domain_model_lineup.php b/packages/ep_theme/Configuration/TCA/tx_eptheme_domain_model_lineup.php new file mode 100644 index 0000000..3cace51 --- /dev/null +++ b/packages/ep_theme/Configuration/TCA/tx_eptheme_domain_model_lineup.php @@ -0,0 +1,210 @@ + [ + 'title' => 'LLL:EXT:ep_theme/Resources/Private/Language/locallang_db.xlf:tx_eptheme_domain_model_lineup', + 'default_sortby' => 'ORDER BY name', + 'label' => 'name', + 'tstamp' => 'tstamp', + 'crdate' => 'crdate', + 'dividers2tabs' => true, + 'versioningWS' => true, + 'hideTable' => true, + 'languageField' => 'sys_language_uid', + 'transOrigPointerField' => 'l10n_parent', + 'transOrigDiffSourceField' => 'l10n_diffsource', + 'delete' => 'deleted', + 'enablecolumns' => [ + 'disabled' => 'hidden', + 'starttime' => 'starttime', + 'endtime' => 'endtime', + ], + 'searchFields' => 'headline,subline', + 'iconfile' => 'EXT:ep_theme/Resources/Public/images/icon_ce.svg', + ], + 'types' => [ + '1' => [ + 'showitem' => 'hidden, name, description, image, --palette--;;social', + ], + ], + 'palettes' => [ + 'social' => ['showitem' => 'facebook_url, twitter_url, youtube_url, instagram_url, soundcloud_url'], + ], + 'columns' => [ + + 'sys_language_uid' => [ + 'exclude' => 0, + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language', + 'config' => ['type' => 'language'], + ], + 'l10n_parent' => [ + 'displayCond' => 'FIELD:sys_language_uid:>:0', + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent', + 'config' => [ + 'type' => 'select', + 'default' => 0, + 'renderType' => 'selectSingle', + 'items' => [ + ['label' => '', 'value' => 0], + ], + 'foreign_table' => 'tx_eptheme_domain_model_lineup', + 'foreign_table_where' => 'AND tx_eptheme_domain_model_lineup.pid=###CURRENT_PID### AND tx_eptheme_domain_model_lineup.sys_language_uid IN (-1,0)', + ], + ], + 'l10n_diffsource' => [ + 'config' => [ + 'type' => 'passthrough', + ], + ], + + 't3ver_label' => [ + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.versionLabel', + 'config' => [ + 'type' => 'input', + 'size' => 30, + 'max' => 255, + ] + ], + + 'hidden' => [ + 'exclude' => 0, + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.hidden', + 'config' => [ + 'type' => 'check', + ], + ], + 'starttime' => [ + 'exclude' => 0, + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.starttime', + 'config' => [ + 'type' => 'datetime', + 'size' => 13, + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true, + ], + ], + ], + 'endtime' => [ + 'exclude' => 0, + 'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.endtime', + 'config' => [ + 'type' => 'datetime', + 'size' => 13, + 'checkbox' => 0, + 'default' => 0, + 'behaviour' => [ + 'allowLanguageSynchronization' => true, + ], + ], + ], + 'sorting' => [ + 'config' => [ + 'type' => 'passthrough' + ], + ], + + 'name' => [ + 'exclude' => 0, + 'label' => 'LLL:EXT:ep_theme/Resources/Private/Language/locallang_db.xlf:tx_eptheme_domain_model_lineup.name', + 'config' => [ + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim,required' + ], + ], + 'description' => [ + 'exclude' => 0, + 'label' => 'LLL:EXT:ep_theme/Resources/Private/Language/locallang.xlf:tx_eptheme_domain_model_lineup.description', + 'config' => [ + 'type' => 'text', + 'cols' => 40, + 'rows' => 10, + 'eval' => 'trim', + 'enableRichtext' => true, + ], + ], + 'image' => [ + 'exclude' => 0, + 'label' => 'LLL:EXT:ep_theme/Resources/Private/Language/locallang_db.xlf:tx_eptheme_domain_model_lineup.image', + 'config' => [ + 'type' => 'file', + 'allowed' => 'common-image-types', + 'appearance' => [ + 'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference', + 'useSortable' => false, + ], + 'overrideChildTca' => [ + 'types' => [ + FileType::IMAGE->value => [ + 'showitem' => ' + --palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, + --palette--;;filePalette', + ], + ], + ], + 'maxitems' => 1 + ], + ], + 'facebook_url' => [ + 'exclude' => 0, + 'label' => 'Facebook URL', + 'config' => [ + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim' + ], + ], + 'twitter_url' => [ + 'exclude' => 0, + 'label' => 'Twitter URL', + 'config' => [ + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim' + ], + ], + 'instagram_url' => [ + 'exclude' => 0, + 'label' => 'Instagram URL', + 'config' => [ + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim' + ], + ], + 'youtube_url' => [ + 'exclude' => 0, + 'label' => 'YouTube URL', + 'config' => [ + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim' + ], + ], + 'soundcloud_url' => [ + 'exclude' => 0, + 'label' => 'Soundcloud URL', + 'config' => [ + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim' + ], + ], + 'tt_content' => [ + 'exclude' => 0, + 'label' => 'LLL:EXT:ep_theme/Resources/Private/Language/locallang_db.xlf:tx_eptheme_domain_model_lineup.tt_content', + 'config' => [ + 'type' => 'select', + 'default' => 0, + 'renderType' => 'selectSingle', + 'foreign_table' => 'tt_content', + 'minitems' => 0, + 'maxitems' => 1, + ], + ], + ], +]; diff --git a/packages/ep_theme/Configuration/TypoScript/ContentElements/lineup.typoscript b/packages/ep_theme/Configuration/TypoScript/ContentElements/lineup.typoscript new file mode 100644 index 0000000..f5b0872 --- /dev/null +++ b/packages/ep_theme/Configuration/TypoScript/ContentElements/lineup.typoscript @@ -0,0 +1,24 @@ +tt_content.lineup =< lib.contentElement +tt_content.lineup { + templateName = Lineup + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 10 { + table = tx_eptheme_domain_model_lineup + where.data = field:uid + where.wrap = tt_content=| + orderBy = sorting + as = items + + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = image + references.table = tx_eptheme_domain_model_lineup + as = image + } + } + } + } +} + diff --git a/packages/ep_theme/Resources/Private/Templates/FluidStyledContent/Lineup.html b/packages/ep_theme/Resources/Private/Templates/FluidStyledContent/Lineup.html new file mode 100644 index 0000000..7ec6f5f --- /dev/null +++ b/packages/ep_theme/Resources/Private/Templates/FluidStyledContent/Lineup.html @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + {item.data.name -> f:format.raw()} + + + {item.data.description -> f:format.html()} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +