diff --git a/packages/ep_theme/Configuration/TCA/Overrides/tt_content_element_contact.php b/packages/ep_theme/Configuration/TCA/Overrides/tt_content_element_contact.php new file mode 100644 index 0000000..e95880a --- /dev/null +++ b/packages/ep_theme/Configuration/TCA/Overrides/tt_content_element_contact.php @@ -0,0 +1,46 @@ + 'Ansprechpartner', + 'value' => 'contact', + 'icon' => 'content-image' + ], + 'teaser_booking_link', + 'after' + ); + + $GLOBALS['TCA']['tt_content']['columns']['tx_eptheme_contact'] = [ + 'exclude' => 0, + 'label' => 'Mitarbeiter', + 'config' => [ + 'type' => 'select', + 'default' => 0, + 'renderType' => 'selectSingle', + 'foreign_table' => 'tx_epproducts_domain_model_teammember', + 'foreign_table_where' => 'ORDER BY name', + 'minitems' => 1, + 'maxitems' => 1, + ] + ]; + + $GLOBALS['TCA']['tt_content']['types']['contact'] = [ + 'showitem' => ' + --palette--;' . $frontendLanguageFilePrefix . 'palette.general;general, + tx_eptheme_contact, + --div--;' . $frontendLanguageFilePrefix . 'tabs.access, + hidden;' . $frontendLanguageFilePrefix . 'field.default.hidden, + --div--;' . $frontendLanguageFilePrefix . 'tabs.extended + ', + ]; + +}); diff --git a/packages/ep_theme/Configuration/TCA/Overrides/tt_content_element_disrupter.php b/packages/ep_theme/Configuration/TCA/Overrides/tt_content_element_disrupter.php new file mode 100644 index 0000000..2060251 --- /dev/null +++ b/packages/ep_theme/Configuration/TCA/Overrides/tt_content_element_disrupter.php @@ -0,0 +1,55 @@ + 'Störer (neu)', + 'value' => 'disrupter', + 'icon' => 'content-image' + ], + 'teaser_product', + 'after' + ); + + $GLOBALS['TCA']['tt_content']['columns']['tx_eptheme_disrupter'] = [ + 'exclude' => 0, + 'label' => 'Störer', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'foreign_table' => 'tx_eptheme_domain_model_disrupter', + 'maxitems' => 1, + 'minitems' => 1, + 'foreign_table_where' => 'ORDER BY headline ASC', + 'MM' => 'tx_eptheme_ttcontent_tx_eptheme_disrupter_mm', + ], + ]; + + $GLOBALS['TCA']['tt_content']['types']['disrupter'] = [ + 'showitem' => ' + --palette--;' . $frontendLanguageFilePrefix . 'palette.general;general, tx_eptheme_disrupter, + --div--;' . $frontendLanguageFilePrefix . 'tabs.appearance, + layout;' . $frontendLanguageFilePrefix . 'layout_formlabel, tx_eptheme_background, + --div--;' . $frontendLanguageFilePrefix . 'tabs.access, + hidden;' . $frontendLanguageFilePrefix . 'field.default.hidden, + --div--;' . $frontendLanguageFilePrefix . 'tabs.extended + ', + 'columnsOverrides' => [ + ] + ]; + + ExtensionManagementUtility::addPiFlexFormValue( + '*', + 'FILE:EXT:ep_theme/Configuration/FlexForms/flexform_disturber.xml', + 'disrupter' + ); + +}); diff --git a/packages/ep_theme/Configuration/TCA/Overrides/tt_content_element_gmap.php b/packages/ep_theme/Configuration/TCA/Overrides/tt_content_element_gmap.php new file mode 100644 index 0000000..e4c45d8 --- /dev/null +++ b/packages/ep_theme/Configuration/TCA/Overrides/tt_content_element_gmap.php @@ -0,0 +1,32 @@ + 'Google Map', + 'value' => 'gmap', + 'icon' => 'content-image' + ], + 'ytvideo', + 'after' + ); + + $GLOBALS['TCA']['tt_content']['types']['gmap'] = [ + 'showitem' => ' + --palette--;' . $frontendLanguageFilePrefix . 'palette.general;general, + tx_eptheme_context_region, tx_eptheme_context_hotel, + --div--;' . $frontendLanguageFilePrefix . 'tabs.access, + hidden;' . $frontendLanguageFilePrefix . 'field.default.hidden, + --div--;' . $frontendLanguageFilePrefix . 'tabs.extended + ', + ]; + +}); diff --git a/packages/ep_theme/Configuration/TCA/Overrides/tt_content_element_ytvideo.php b/packages/ep_theme/Configuration/TCA/Overrides/tt_content_element_ytvideo.php new file mode 100644 index 0000000..48de1c9 --- /dev/null +++ b/packages/ep_theme/Configuration/TCA/Overrides/tt_content_element_ytvideo.php @@ -0,0 +1,40 @@ + 'YouTube/Vimeo Video', + 'value' => 'ytvideo', + 'icon' => 'content-image' + ], + 'textmedia', + 'after' + ); + + $GLOBALS['TCA']['tt_content']['types']['ytvideo'] = [ + 'showitem' => ' + --palette--;' . $frontendLanguageFilePrefix . 'palette.general;general, + layout, header_link, + --div--;' . $frontendLanguageFilePrefix . 'tabs.access, + hidden;' . $frontendLanguageFilePrefix . 'field.default.hidden, + --div--;' . $frontendLanguageFilePrefix . 'tabs.extended + ', + 'columnsOverrides' => [ + 'header_link' => [ + 'label' => 'YouTube URL/Vimeo ID', + ], + 'layout' => [ + 'label' => 'Typ', + ], + ], + ]; + +}); diff --git a/packages/ep_theme/Configuration/TCA/tx_eptheme_domain_model_disrupter.php b/packages/ep_theme/Configuration/TCA/tx_eptheme_domain_model_disrupter.php new file mode 100644 index 0000000..d374aa7 --- /dev/null +++ b/packages/ep_theme/Configuration/TCA/tx_eptheme_domain_model_disrupter.php @@ -0,0 +1,198 @@ + [ + 'title' => 'Störer', + 'default_sortby' => 'ORDER BY headline', + 'label' => 'headline', + 'tstamp' => 'tstamp', + 'crdate' => 'crdate', + 'dividers2tabs' => true, + 'versioningWS' => true, + 'languageField' => 'sys_language_uid', + 'transOrigPointerField' => 'l10n_parent', + 'transOrigDiffSourceField' => 'l10n_diffsource', + 'delete' => 'deleted', + 'enablecolumns' => [ + 'disabled' => 'hidden', + 'starttime' => 'starttime', + 'endtime' => 'endtime', + ], + 'searchFields' => 'headline,text', + 'iconfile' => 'EXT:ep_theme/Resources/Public/images/icon_ce.svg', + ], + 'types' => [ + '1' => [ + 'showitem' => 'sys_language_uid, hidden, layout, headline, text, image, pi_flexform', + ], + ], + 'palettes' => [ + ], + '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_disrupter', + 'foreign_table_where' => 'AND tx_eptheme_domain_model_disrupter.pid=###CURRENT_PID### AND tx_eptheme_domain_model_disrupter.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, + ], + ], + ], + + 'headline' => [ + 'exclude' => 0, + 'label' => 'Headline', + 'config' => [ + 'type' => 'input', + 'size' => 30, + 'eval' => 'trim' + ], + ], + 'layout' => [ + 'exclude' => 0, + 'label' => 'Layout', + 'config' => [ + 'type' => 'select', + 'renderType' => 'selectSingle', + 'items' => [ + ['label' => 'klein', 'value' => 0], + ['label' => 'groß', 'value' => 1], + ['label' => 'Event klein', 'value' => 2], + ['label' => 'Event groß', 'value' => 3], + ], + ], + ], + 'text' => [ + 'exclude' => 0, + 'label' => 'Text', + 'config' => [ + 'type' => 'text', + 'cols' => 40, + 'rows' => 5, + 'eval' => 'trim', + 'enableRichtext' => true, + ], + ], + 'image' => [ + 'exclude' => 0, + 'label' => 'Bild', + 'config' => [ + 'type' => 'file', + 'allowed' => 'jpg,jpeg', + 'appearance' => [ + 'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference', + 'fileUploadAllowed' => false, + ], + 'overrideChildTca' => [ + 'types' => [ + FileType::IMAGE->value => [ + 'showitem' => ' + --palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, + --palette--;;filePalette' + ], + ], + 'columns' => [ + 'crop' => [ + 'config' => [ + 'cropVariants' => [ + 'default' => [ + 'title' => 'Alle Geräte', + 'allowedAspectRatios' => [ + 'square' => [ + 'title' => 'quadratisch', + 'value' => 1, + ], + 'free' => [ + 'title' => 'Frei', + 'value' => 'NaN', + ], + ], + ], + ], + ], + ], + ], + ], + 'maxitems' => 1, + 'minitems' => 1, + ], + ], + 'pi_flexform' => [ + 'exclude' => 0, + 'label' => 'Buttons', + 'config' => [ + 'type' => 'flex', + 'ds' => [ + 'default' => 'FILE:EXT:ep_theme/Configuration/FlexForms/flexform_disturber.xml', + ], + ] + ], + 'tt_content' => [ + 'exclude' => 0, + 'config' => [ + 'type' => 'passthrough', + ], + ], + ], +]; diff --git a/packages/ep_theme/Configuration/TypoScript/ContentElements/contact.typoscript b/packages/ep_theme/Configuration/TypoScript/ContentElements/contact.typoscript new file mode 100644 index 0000000..919d6b7 --- /dev/null +++ b/packages/ep_theme/Configuration/TypoScript/ContentElements/contact.typoscript @@ -0,0 +1,23 @@ +tt_content.contact =< lib.contentElement +tt_content.contact { + templateName = Contact + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 10 { + table = tx_epproducts_domain_model_teammember + where.data = field:tx_eptheme_contact + where.wrap = uid=| + pidInList = {$plugin.tx_eptheme.settings.teamMemberStoragePid} + as = contact + + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = image + references.table = tx_epproducts_domain_model_teammember + as = image + } + } + } + } +} diff --git a/packages/ep_theme/Configuration/TypoScript/ContentElements/disrupter.typoscript b/packages/ep_theme/Configuration/TypoScript/ContentElements/disrupter.typoscript new file mode 100644 index 0000000..cffda85 --- /dev/null +++ b/packages/ep_theme/Configuration/TypoScript/ContentElements/disrupter.typoscript @@ -0,0 +1,28 @@ +tt_content.disrupter =< lib.contentElement +tt_content.disrupter { + templateName = Disrupter + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 10 { + table = tx_eptheme_domain_model_disrupter + pidInList = {$plugin.tx_eptheme.settings.disrupterStoragePid} + join = tx_eptheme_ttcontent_tx_eptheme_disrupter_mm ON tx_eptheme_ttcontent_tx_eptheme_disrupter_mm.uid_foreign = tx_eptheme_domain_model_disrupter.uid + where { + data = field:uid + intval = 1 + wrap = tx_eptheme_ttcontent_tx_eptheme_disrupter_mm.uid_local=| + } + as = disrupter + + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor + 10 { + references.fieldName = image + references.table = tx_eptheme_domain_model_disrupter + as = image + } + 20 = EP\EpTheme\DataProcessing\FlexFormProcessor + } + } + } +} diff --git a/packages/ep_theme/Configuration/TypoScript/ContentElements/gmap.typoscript b/packages/ep_theme/Configuration/TypoScript/ContentElements/gmap.typoscript new file mode 100644 index 0000000..c141099 --- /dev/null +++ b/packages/ep_theme/Configuration/TypoScript/ContentElements/gmap.typoscript @@ -0,0 +1,23 @@ +tt_content.gmap =< tt_content.teaser_product +tt_content.gmap { + templateName = Gmap + dataProcessing { + 10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 10 { + table = tx_epproducts_domain_model_hotel + where.data = field:tx_eptheme_context_hotel + where.wrap = uid=| + pidInList = {$plugin.tx_epproducts.settings.hotelsStoragePid} + as = hotel + } + 20 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor + 20 { + table = tx_epproducts_domain_model_region + where.data = field:tx_eptheme_context_region + where.wrap = uid=| + pidInList = {$plugin.tx_epproducts.settings.destinationsStoragePid} + recursive = 2 + as = region + } + } +} diff --git a/packages/ep_theme/Configuration/TypoScript/ContentElements/ytvideo.typoscript b/packages/ep_theme/Configuration/TypoScript/ContentElements/ytvideo.typoscript new file mode 100644 index 0000000..2107bc1 --- /dev/null +++ b/packages/ep_theme/Configuration/TypoScript/ContentElements/ytvideo.typoscript @@ -0,0 +1,4 @@ +tt_content.ytvideo =< lib.contentElement +tt_content.ytvideo { + templateName = YoutubeVideo +} diff --git a/packages/ep_theme/Configuration/TypoScript/Extensions/FluidStyledContent.typoscript b/packages/ep_theme/Configuration/TypoScript/Extensions/FluidStyledContent.typoscript index 35ac04b..4437f36 100644 --- a/packages/ep_theme/Configuration/TypoScript/Extensions/FluidStyledContent.typoscript +++ b/packages/ep_theme/Configuration/TypoScript/Extensions/FluidStyledContent.typoscript @@ -10,4 +10,6 @@ lib.contentElement { settings.mapTileUrl = {$plugin.tx_eptheme.settings.mapTileUrl} settings.mapApiKey = {$plugin.tx_eptheme.settings.mapApiKey} settings.mapAttribution = {$plugin.tx_eptheme.settings.mapAttribution} + # As on TYPO3 10: headers with the default layout are not shown (editors rely on it) + settings.defaultHeaderType = } diff --git a/packages/ep_theme/Resources/Private/Partials/Disrupter/Large.html b/packages/ep_theme/Resources/Private/Partials/Disrupter/Large.html new file mode 100644 index 0000000..38230a7 --- /dev/null +++ b/packages/ep_theme/Resources/Private/Partials/Disrupter/Large.html @@ -0,0 +1,63 @@ + + +