<?php

defined('TYPO3') || die('Access denied.');
$ll = 'LLL:EXT:grossmarkt/Resources/Private/Language/locallang_db.xlf:';

$GLOBALS['TCA']['tx_news_domain_model_news']['ctrl']['label_userFunc'] = Uhura\Grossmarkt\Userfuncs\Tca::class . '->modifyLabel';
$columns = [

	'sub_title' => [
		'exclude' => true,
		'label' => $ll . 'tx_news_domain_model_news.sub_title',
		'config' => [
			'type' => 'input',
			'size' => 60,
			'max' => 255,
			'behaviour' => [
				'allowLanguageSynchronization' => true,
			],
		],
	],
	'short_description' => [
		'exclude' => true,
		'label' => $ll . 'tx_news_domain_model_news.short_description',
		'config' => [
			'type' => 'text',
			'enableRichtext' => true,
			'behaviour' => [
				'allowLanguageSynchronization' => true,
			],
		],
	],
	'vacancy' => [
		'exclude' => true,
		'label' => $ll . 'tx_news_domain_model_news.vacancy',
		'config' => [
			'type' => 'input',
			'size' => 60,
			'max' => 255,
			'eval' => 'required',
			'behaviour' => [
				'allowLanguageSynchronization' => true,
			],
		],
	],
	'holiday' => [
		'exclude' => true,
		'label' => $ll . 'tx_news_domain_model_news.holiday',
		'config' => [
			'type' => 'input',
			'size' => 60,
			'max' => 255,
			'eval' => 'int',
			'behaviour' => [
				'allowLanguageSynchronization' => true,
			],
		],
	],
	'job_type' => [
		'exclude' => true,
		'label' => $ll . 'tx_news_domain_model_news.job_type',
		'config' => [
			'type' => 'input',
			'size' => 60,
			'max' => 255,
			'behaviour' => [
				'allowLanguageSynchronization' => true,
			],
		],
	],
	'contact' => [
		'exclude' => true,
		'label' => $ll . 'tx_news_domain_model_news.contact',
		'config' => [
			'type' => 'group',
			'allowed' => 'tx_grossmarkt_domain_model_contact_person',
			'foreign_table' => 'tx_grossmarkt_domain_model_contact_person',
			'size' => 1,
			'minitems' => 0,
			'maxitems' => 1,
			'behaviour' => [
				'allowLanguageSynchronization' => true,
			],
		],
	],
	'use_contact_email' => [
		'exclude' => true,
		'label' => $ll . 'tx_news_domain_model_news.use_contact_email',
		'config' => [
			'type' => 'check',
			'renderType' => 'checkboxToggle',
			'default' => 0,
		],
	],
	'dealer' => [
		'exclude' => true,
		'label' => $ll . 'dealer',
		'config' => [
			'type' => 'select',
			'renderType' => 'selectSingle',
			'items' => [
				[
					'label' => '',
					'value' => '',
				],
			],
			'MM_opposite_field' => 'related_job',
			'MM' => 'tx_news_domain_model_news_related_dealer_job_mm',
			'suggestOptions' => [
				'default' => [
					'suggestOptions' => true,
					'addWhere' => ' AND tx_news_domain_model_news.uid != ###THIS_UID###',
				],
			],
			'foreign_table' => 'tx_news_domain_model_news',
			'foreign_table_where' => 'AND tx_news_domain_model_news.pid = 2 AND tx_news_domain_model_news.sys_language_uid = ###REC_FIELD_sys_language_uid###',
		],
	],
	'related_job' => [
		'exclude' => true,
		'label' => $ll . 'tx_news_domain_model_news.related_job',
		'config' => [
			'type' => 'group',
			'allowed' => 'tx_news_domain_model_news',
			'foreign_table' => 'tx_news_domain_model_news',
			'size' => 5,
			'minitems' => 0,
			'maxitems' => 100,
			'MM' => 'tx_news_domain_model_news_related_dealer_job_mm',
			'readOnly' => 1,
			'foreign_table_where' => 'AND tx_news_domain_model_news.sys_language_uid = ###REC_FIELD_sys_language_uid### AND tx_news_domain_model_news.pid=###CURRENT_PID### ORDER BY tx_news_domain_model_news.title',
		],
	],
	'related_job_teaser' => [
		'exclude' => true,
		'label' => $ll . 'tx_news_domain_model_news.related_job_teaser',
		'config' => [
			'type' => 'input',
			'size' => 60,
			'max' => 255,
			'behaviour' => [
				'allowLanguageSynchronization' => true,
			],
		],
	],
	'email' => [
		'exclude' => false,
		'l10n_mode' => 'prefixLangTitle',
		'label' => $ll.'tx_grossmarkt_domain_model_contact_person.email',
		'config' => [
			'type' => 'email',
		],
	],
	'phone' => [
		'exclude' => false,
		'l10n_mode' => 'prefixLangTitle',
		'label' => $ll.'tx_news_domain_model_news.phone',
		'config' => [
			'type' => 'input',
		],
	],
	'coordinates' => [
		'exclude' => false,
		'l10n_mode' => 'prefixLangTitle',
		'label' => $ll.'tx_news_domain_model_news.coordinates',
		'config' => [
			'type' => 'input',
		],
	],
	'coordinates_link' => [
		'exclude' => false,
		'l10n_mode' => 'prefixLangTitle',
		'label' => $ll.'tx_news_domain_model_news.coordinates_link',
		'config' => [
			'type' => 'link',
			'allowedTypes' => ['url'],
		],
	],
	'address' => [
		'exclude' => false,
		'l10n_mode' => 'prefixLangTitle',
		'label' => $ll.'tx_news_domain_model_news.address',
		'config' => [
			'type' => 'input',
		],
	],
	'address_link' => [
		'exclude' => false,
		'l10n_mode' => 'prefixLangTitle',
		'label' => $ll.'tx_news_domain_model_news.stand_link',
		'config' => [
			'type' => 'link',
			'allowedTypes' => ['page', 'url', 'record'],
		],
	],
	'stand_link' => [
		'exclude' => false,
		'l10n_mode' => 'prefixLangTitle',
		'label' => $ll.'tx_news_domain_model_news.address_link',
		'config' => [
			'type' => 'link',
			'allowedTypes' => ['page', 'url', 'record'],
		],
	],
	'social_link' => [
		'exclude' => false,
		'l10n_mode' => 'prefixLangTitle',
		'label' => $ll.'tx_news_domain_model_news.social_link',
		'config' => [
			'type' => 'link',
			'allowedTypes' => ['url'],
		],
	],
	'owner' => [
		'exclude' => false,
		'label' => $ll.'tx_news_domain_model_news.owner',
		'config' => [
			'type' => 'select',
			'renderType' => 'selectSingle',
			'allowed' => 'be_users',
			'foreign_table' => 'be_users',
			'items' => [
				[
					'label' => 'Without owner',
					'value' => '',
				],
			],
			'behaviour' => [
				'allowLanguageSynchronization' => true,
			],
		],
//		'displayCond' => 'HIDE_FOR_NON_ADMINS'
	],
	'plan_position' => [
		'exclude' => false,
		'label' => $ll.'tx_news_domain_model_news.plan_position',
		'config' => [
			'type' => 'select',
			'renderType' => 'selectSingle',
			'items' => [
				[
					'label' => 'Do not show on the plan',
					'value' => 0,
				]
			],
			'itemsProcFunc' => Uhura\Grossmarkt\Userfuncs\Tca::class . '->planPositionItems',
			'behaviour' => [
				'allowLanguageSynchronization' => true,
			],
		],
	],
	'show_title' => [
		'exclude' => true,
		'label' => $ll . 'tx_news_domain_model_news.show_title',
		'config' => [
			'type' => 'check',
			'renderType' => 'checkboxToggle',
			'default' => 0,
			'items' => [
				['label' => '', 'value' => ''],
			],
		],
	],

    'fal_media_dealers' => [
        'exclude' => true,
        'label' => $ll. 'tx_news_domain_model_news.fal_media_dealers',
        'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
            'fal_media_dealers',
            [
                'behaviour' => [
                    'allowLanguageSynchronization' => true,
                ],
                'appearance' => [
                    'createNewRelationLinkTitle' => $ll . 'tx_news_domain_model_news.fal_media.add',
                    'showPossibleLocalizationRecords' => true,
                    'showRemovedLocalizationRecords' => true,
                    'showAllLocalizationLink' => true,
                    'showSynchronizationLink' => true
                ],
                'foreign_match_fields' => [
                    'fieldname' => 'fal_media_dealers',
                    'tablenames' => 'tx_news_domain_model_news',
                ],
                'maxitems' => 4,
                // custom configuration for displaying fields in the overlay/reference table
                // to use the newsPalette and imageoverlayPalette instead of the basicoverlayPalette
                'overrideChildTca' => [
                    'types' => [
                        \TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [
                            'showitem' => '
                                    --palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;newsPalette,
                                    --palette--;;imageoverlayPalette,
                                    --palette--;;filePalette'
                        ],
                        \TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
                            'showitem' => '
                                    --palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;newsPalette,
                                    --palette--;;imageoverlayPalette,
                                    --palette--;;filePalette'
                        ],
                        \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
                            'showitem' => '
                                    --palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;newsPalette,
                                    --palette--;;imageoverlayPalette,
                                    --palette--;;filePalette'
                        ],
                        \TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
                            'showitem' => '
                                    --palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;newsPalette,
                                    --palette--;;audioOverlayPalette,
                                    --palette--;;filePalette'
                        ],
                        \TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
                            'showitem' => '
                                    --palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;newsPalette,
                                    --palette--;;videoOverlayPalette,
                                    --palette--;;filePalette'
                        ],
                        \TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
                            'showitem' => '
                                    --palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;newsPalette,
                                    --palette--;;imageoverlayPalette,
                                    --palette--;;filePalette'
                        ]
                    ],
                ],
            ],
            $GLOBALS['TYPO3_CONF_VARS']['SYS']['mediafile_ext']
        )
    ],
    'uri_dealers' => [
        'exclude' => false,
        'label' => $ll . 'tx_news_domain_model_news.uri',
        'config' => [
            'type' => 'input',
            'renderType' => 'inputLink',
            'placeholder' => $ll . 'tx_news_domain_model_news.uri.placeholder',
            'size' => 30,
            'eval' => 'trim',
            'softref' => 'typolink',
            'behaviour' => [
                'allowLanguageSynchronization' => true,
            ],
        ],
    ],
];

$GLOBALS['TCA']['tx_news_domain_model_news']['palettes']['mainInfo']['showitem'] = '
vacancy,--linebreak--,holiday,--linebreak--,job_type,--linebreak--,dealer,
--linebreak--,contact,--linebreak--,use_contact_email,--linebreak--,email,--linebreak--,phone,--linebreak--,address,--linebreak--,address_link,--linebreak--,stand_link,--linebreak--,coordinates,--linebreak--,coordinates_link,social_link,--linebreak--,plan_position,
';


\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tx_news_domain_model_news', $columns);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
	'tx_news_domain_model_news',
	'--div--;'.$ll.'tx_news_domain_model_news.mainInfo'.',--palette--;;mainInfo,',
	'',
	'after:bodytext');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
	'tx_news_domain_model_news',
	'related_job',
	'',
	'before:tags');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
	'tx_news_domain_model_news',
	'related_job_teaser',
	'',
	'before:related_job');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
	'tx_news_domain_model_news',
	'sub_title',
	'',
	'after:title');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
	'tx_news_domain_model_news',
	'short_description',
	'',
	'before:bodytext');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
	'tx_news_domain_model_news',
	'owner',
	'',
	'before:hidden');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
	'tx_news_domain_model_news',
	'show_title',
	'',
	'after:title');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
    'tx_news_domain_model_news',
    '--div--;'.$ll.'tx_news_domain_model_news.premiumDealers'.',--palette--;;premiumDealers,',
    '',
    'after:plan_position');

//Extend TCA of records like news etc.
$tempColumns = [
	'tx_csseo' => [
		'exclude' => 0,
		'label' => 'LLL:EXT:cs_seo/Resources/Private/Language/locallang_db.xlf:tx_csseo_domain_model_meta',
		'config' => [
			'type' => 'inline',
			'foreign_table' => 'tx_csseo_domain_model_meta',
			'foreign_field' => 'uid_foreign',
			'foreign_table_field' => 'tablenames',
			'maxitems' => 1,
			'appearance' => [
				'collapseAll' => false,
				'showPossibleLocalizationRecords' => true,
				'showSynchronizationLink' => true,
			],
			'behaviour' => [
				'localizationMode' => 'select',
			],
		],
	]
];

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tx_news_domain_model_news', $tempColumns);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
	'tx_news_domain_model_news',
	'--div--;SEO,tx_csseo',
	'',
	'after:bodytext'
);
