From a357bbfd9bd02bf304ac2182ae0a75f114ade367 Mon Sep 17 00:00:00 2001 From: Fabian Galinski <fabian@sgalinski.de> Date: Tue, 21 Jun 2016 19:38:33 +0200 Subject: [PATCH] [FEATURE] Restructuring of the tca creation --- .../Domain/Repository/AbstractRepository.php | 2 - Configuration/TCA/Overrides/pages.php | 376 ++++++++++-------- ext_localconf.php | 2 + ext_tables.sql | 5 + 4 files changed, 210 insertions(+), 175 deletions(-) diff --git a/Classes/Domain/Repository/AbstractRepository.php b/Classes/Domain/Repository/AbstractRepository.php index 4a6a18b..e9ccf00 100644 --- a/Classes/Domain/Repository/AbstractRepository.php +++ b/Classes/Domain/Repository/AbstractRepository.php @@ -79,5 +79,3 @@ abstract class AbstractRepository extends Repository { return $statement; } } - -?> \ No newline at end of file diff --git a/Configuration/TCA/Overrides/pages.php b/Configuration/TCA/Overrides/pages.php index 3588bae..c3bdb1e 100644 --- a/Configuration/TCA/Overrides/pages.php +++ b/Configuration/TCA/Overrides/pages.php @@ -1,207 +1,223 @@ <?php -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns( - 'pages', [ - 'tx_sgnews_author' => [ - 'exclude' => TRUE, - 'l10n_exclude' => TRUE, - 'label' => 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_author', - 'config' => [ - 'type' => 'select', - 'minitems' => 0, - 'foreign_table' => 'fe_users', - 'foreign_table_where' => 'ORDER BY fe_users.name', - 'items' => [ - ['', ''], - ], - 'wizards' => [ - 'edit' => [ - 'type' => 'popup', - 'title' => 'Edit', - 'module' => ['name' => 'wizard_edit'], - 'icon' => 'edit2.gif', - 'popup_onlyOpenIfSelected' => 1, - ], - 'suggest' => [ - 'type' => 'suggest', - ], - ], - ], - ], - 'tx_sgnews_related_news' => [ - 'exclude' => TRUE, - 'l10n_exclude' => TRUE, - 'label' => 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_related_news', - 'config' => [ - 'type' => 'group', - 'internal_type' => 'db', - 'allowed' => 'pages', - 'size' => 5, - 'minitems' => 0, - 'maxitems' => 99, - 'wizards' => [ - 'suggest' => [ - 'type' => 'suggest', - ], - ], - ], - ], - 'tx_sgnews_highlighted' => [ - 'displayCond' => 'FIELD:tx_sgnews_never_highlighted:=:0', - 'exclude' => TRUE, - 'l10n_exclude' => TRUE, - 'label' => 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_highlighted', - 'config' => [ - 'type' => 'check', - ], - ], - 'tx_sgnews_never_highlighted' => [ - 'displayCond' => 'FIELD:tx_sgnews_highlighted:=:0', - 'exclude' => TRUE, - 'l10n_exclude' => TRUE, - 'label' => 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_never_highlighted', - 'config' => [ - 'type' => 'check', - ], - ], - 'tx_sgnews_teaser1_header_color' => [ - 'exclude' => TRUE, - 'l10n_exclude' => TRUE, - 'label' => 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_teaser1_header_color', - 'config' => [ - 'type' => 'select', - 'items' => [ - [ - 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_teaser1_header_color.white', - 0 - ], - [ - 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_teaser1_header_color.green', - 1 - ], - ], - ], - ], - 'tx_sgnews_teaser2_header_color' => [ - 'exclude' => TRUE, - 'l10n_exclude' => TRUE, - 'label' => 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_teaser2_header_color', - 'config' => [ - 'type' => 'select', - 'items' => [ - [ - 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_teaser1_header_color.white', - 0 - ], - [ - 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_teaser1_header_color.green', - 1 - ], - ], - ], - ], - 'lastUpdated' => [ - 'exclude' => TRUE, - 'label' => 'LLL:EXT:cms/locallang_tca.xlf:pages.lastUpdated', - 'config' => [ - 'type' => 'input', - 'size' => '13', - 'max' => '20', - 'eval' => 'datetime', - 'default' => $GLOBALS['EXEC_TIME'], - ] - ], - // @todo Set the image crop ratio for both sgnews images. - 'tx_sgnews_teaser1_image' => [ - 'exclude' => TRUE, - 'l10n_mode' => 'exclude', - 'label' => 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_teaser1_image', - 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( - 'tx_sgnews_teaser1_image', - [ - 'maxitems' => 1, - 'foreign_types' => [ - '0' => [ - 'showitem' => ' +// @todo: Keep in touch, if the image elements still won't copy on translation. 20.06.2016 +$imageColumns = [ + // @todo Set the image crop ratio for both sgnews images. + 'tx_sgnews_teaser1_image' => [ + 'exclude' => TRUE, + 'label' => 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_teaser1_image', + 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( + 'tx_sgnews_teaser1_image', + [ + 'maxitems' => 1, + 'foreign_types' => [ + '0' => [ + 'showitem' => ' --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, --palette--;;filePalette' - ], - \TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [ - 'showitem' => ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [ + 'showitem' => ' --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, --palette--;;filePalette' - ], - \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ - 'showitem' => ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ + 'showitem' => ' --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, --palette--;;filePalette' - ], - \TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [ - 'showitem' => ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [ + 'showitem' => ' --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, --palette--;;filePalette' - ], - \TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [ - 'showitem' => ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [ + 'showitem' => ' --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, --palette--;;filePalette' - ], - \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [ - 'showitem' => ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [ + 'showitem' => ' --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, --palette--;;filePalette' - ] ] ], - $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] - ), - ], - 'tx_sgnews_teaser2_image' => [ - 'exclude' => TRUE, - 'l10n_mode' => 'exclude', - 'label' => 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_teaser2_image', - 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( - 'tx_sgnews_teaser2_image', - [ - 'maxitems' => 1, - 'foreign_types' => [ - '0' => [ - 'showitem' => ' + 'appearance' => [ + 'showPossibleLocalizationRecords' => TRUE, + 'showRemovedLocalizationRecords' => TRUE, + 'showSynchronizationLink' => TRUE, + 'showAllLocalizationLink' => TRUE, + ], + ], + $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] + ), + ], + 'tx_sgnews_teaser2_image' => [ + 'exclude' => TRUE, + 'label' => 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_teaser2_image', + 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( + 'tx_sgnews_teaser2_image', + [ + 'maxitems' => 1, + 'foreign_types' => [ + '0' => [ + 'showitem' => ' --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, --palette--;;filePalette' - ], - \TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [ - 'showitem' => ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [ + 'showitem' => ' --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, --palette--;;filePalette' - ], - \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ - 'showitem' => ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [ + 'showitem' => ' --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, --palette--;;filePalette' - ], - \TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [ - 'showitem' => ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [ + 'showitem' => ' --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, --palette--;;filePalette' - ], - \TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [ - 'showitem' => ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [ + 'showitem' => ' --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, --palette--;;filePalette' - ], - \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [ - 'showitem' => ' + ], + \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [ + 'showitem' => ' --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette, --palette--;;filePalette' - ] ] ], - $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] - ), + 'appearance' => [ + 'showPossibleLocalizationRecords' => TRUE, + 'showRemovedLocalizationRecords' => TRUE, + 'showSynchronizationLink' => TRUE, + 'showAllLocalizationLink' => TRUE, + ], + ], + $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] + ), + ], +]; + +$columns = array_merge([ + 'tx_sgnews_author' => [ + 'exclude' => TRUE, + 'l10n_exclude' => TRUE, + 'label' => 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_author', + 'config' => [ + 'type' => 'select', + 'minitems' => 0, + 'foreign_table' => 'fe_users', + 'foreign_table_where' => 'ORDER BY fe_users.name', + 'items' => [ + ['', ''], + ], + 'wizards' => [ + 'edit' => [ + 'type' => 'popup', + 'title' => 'Edit', + 'module' => ['name' => 'wizard_edit'], + 'icon' => 'edit2.gif', + 'popup_onlyOpenIfSelected' => 1, + ], + 'suggest' => [ + 'type' => 'suggest', + ], + ], + ], + ], + 'tx_sgnews_related_news' => [ + 'exclude' => TRUE, + 'l10n_exclude' => TRUE, + 'label' => 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_related_news', + 'config' => [ + 'type' => 'group', + 'internal_type' => 'db', + 'allowed' => 'pages', + 'size' => 5, + 'minitems' => 0, + 'maxitems' => 99, + 'wizards' => [ + 'suggest' => [ + 'type' => 'suggest', + ], + ], + ], + ], + 'tx_sgnews_highlighted' => [ + 'displayCond' => 'FIELD:tx_sgnews_never_highlighted:=:0', + 'exclude' => TRUE, + 'l10n_exclude' => TRUE, + 'label' => 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_highlighted', + 'config' => [ + 'type' => 'check', + ], + ], + 'tx_sgnews_never_highlighted' => [ + 'displayCond' => 'FIELD:tx_sgnews_highlighted:=:0', + 'exclude' => TRUE, + 'l10n_exclude' => TRUE, + 'label' => 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_never_highlighted', + 'config' => [ + 'type' => 'check', + ], + ], + 'tx_sgnews_teaser1_header_color' => [ + 'exclude' => TRUE, + 'label' => 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_teaser1_header_color', + 'config' => [ + 'type' => 'select', + 'items' => [ + [ + 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_teaser1_header_color.white', + 0 + ], + [ + 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_teaser1_header_color.green', + 1 + ], + ], ], - ] -); + ], + 'tx_sgnews_teaser2_header_color' => [ + 'exclude' => TRUE, + 'label' => 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_teaser2_header_color', + 'config' => [ + 'type' => 'select', + 'items' => [ + [ + 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_teaser1_header_color.white', + 0 + ], + [ + 'LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_teaser1_header_color.green', + 1 + ], + ], + ], + ], + 'lastUpdated' => [ + 'exclude' => TRUE, + 'label' => 'LLL:EXT:cms/locallang_tca.xlf:pages.lastUpdated', + 'config' => [ + 'type' => 'input', + 'size' => '13', + 'max' => '20', + 'eval' => 'datetime', + 'default' => $GLOBALS['EXEC_TIME'], + ] + ], +], $imageColumns); + +// # +// # Pages +// # + +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('pages', $columns); $GLOBALS['TCA']['pages']['palettes']['editorialWithNewsAuthor'] = [ 'showitem' => 'tx_sgnews_author;LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tx_sgnews_author.inPalette, @@ -284,9 +300,19 @@ if (!\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('realurl')) { ); } +// # +// # Pages Overlay +// # + +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('pages_language_overlay', $imageColumns); + $GLOBALS['TCA']['pages_language_overlay']['types'][116] = [ 'showitem' => '--palette--;LLL:EXT:cms/locallang_tca.xlf:pages.palettes.standard;standard, subtitle, description, tx_realurl_pathsegment, + --div--;LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tabs.image, + tx_sgnews_teaser2_image, + --div--;LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tabs.image2, + tx_sgnews_teaser1_image, --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.metadata, --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.abstract;abstract, tx_seo_titletag,tx_seo_canonicaltag, @@ -298,6 +324,10 @@ $GLOBALS['TCA']['pages_language_overlay']['types'][116] = [ $GLOBALS['TCA']['pages_language_overlay']['types'][117] = [ 'showitem' => '--palette--;LLL:EXT:cms/locallang_tca.xlf:pages.palettes.standard;standard, title, tx_realurl_pathsegment, + --div--;LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tabs.image, + tx_sgnews_teaser2_image, + --div--;LLL:EXT:sg_news/Resources/Private/Language/locallang_db.xlf:pages.tabs.image2, + tx_sgnews_teaser1_image, --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.metadata, --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.abstract;abstract, tx_seo_titletag,tx_seo_canonicaltag, diff --git a/ext_localconf.php b/ext_localconf.php index 3c2a28d..4287c51 100644 --- a/ext_localconf.php +++ b/ext_localconf.php @@ -4,6 +4,8 @@ if (!defined('TYPO3_MODE')) { die('Access denied.'); } +$GLOBALS['TYPO3_CONF_VARS']['FE']['pageOverlayFields'] .= ',tx_sgnews_teaser1_image,tx_sgnews_teaser2_image'; + /** @noinspection PhpUndefinedVariableInspection */ $extPath = \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('sg_news'); diff --git a/ext_tables.sql b/ext_tables.sql index 34afb07..e55a5c7 100644 --- a/ext_tables.sql +++ b/ext_tables.sql @@ -10,3 +10,8 @@ CREATE TABLE pages ( KEY author (tx_sgnews_author) ); + +CREATE TABLE pages_language_overlay ( + tx_sgnews_teaser1_image int(11) unsigned DEFAULT '0' NOT NULL, + tx_sgnews_teaser2_image int(11) unsigned DEFAULT '0' NOT NULL +); -- GitLab