<?php
defined('TYPO3') or die();

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('pages',
    [
        'custom_css_class' => [
            'exclude' => 0,
            'label' => 'CSS-Klasse(n) im Menü',
			'config' => [
		        'type' => 'input',
		        'default' => null,
				'eval' => 'alphanum_x',
		    ],
		],
    ]
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette('pages', 'layout', '--linebreak--,custom_css_class');

// Register new page type "Reference Page"
$referencePageType = 100;

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem(
    'pages',
    'doktype',
    [
        'Referenz',
        $referencePageType,
        'EXT:energize/Resources/Public/Icons/Content/content-panel.svg'
    ],
    '1',
    'after'
);

\TYPO3\CMS\Core\Utility\ArrayUtility::mergeRecursiveWithOverrule(
    $GLOBALS['TCA']['pages'],
    [
        'ctrl' => [
            'typeicon_classes' => [
                $referencePageType => 'apps-pagetree-referencePage',
            ],
        ],
    ]
);

$GLOBALS["TCA"]["pages"]["types"]["100"] = $GLOBALS["TCA"]["pages"]["types"]["1"];

// add new tab Hero to the reference page
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('pages', 
    [
        'quote' => [
            'exclude' => true,
            'label' => 'Zitat',
            'l10n_mode' => 'prefixLangTitle',
            'l10n_cat' => 'text',
            'config' => [
                'type' => 'text',
                'rows' => '10'
            ],
			'displayCond' => 'FIELD:doktype:=:100',
        ],
        'author_reference' => [
            'exclude' => true,
            'label' => 'Autor',
            'config' => [
                'type' => 'input',
                'size' => 50,
            ],
            'displayCond' => 'FIELD:doktype:=:100',
        ],
        'author_image' => array(
            'label' => 'Author Bild',
            'config' => [
                ### !!! Watch out for fieldName different from columnName
                'type' => 'file',
                'allowed' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'],
                'foreign_match_fields' => [
                    'fieldname' => 'author_image'
                ],
                'overrideChildTca' => [
                    'types' => [
                        '0' => [
                            'showitem' => '
                                --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
                                --palette--;;filePalette'
                        ],
                        \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
                            'showitem' => '
                                --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
                                --palette--;;filePalette'
                        ],
                    ],
                    'columns' => [
                        'crop' => [
                            'config' => [
                                'cropVariants' => [
                                    'default' => [
                                        'title' => 'Author',
                                        'selectedRatio' => '1:1',
                                        'allowedAspectRatios' => [
                                            '1:1' => [
                                                'title' => '1:1',
                                                'value' => 1 / 1
                                            ],
                                        ],
                                    ],
                                ]
                            ]
                        ]
                    ]
                ],
            ],
            'maxitems' => 1,
            'displayCond' => 'FIELD:doktype:=:100',
		),
        'background_image' => [
            'label' => 'Hintergrundbild',
            'config' => [
                ### !!! Watch out for fieldName different from columnName
                'type' => 'file',
                'allowed' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'],
                'foreign_match_fields' => [
                    'fieldname' => 'background_image'
                ],
                'overrideChildTca' => [
                    'types' => [
                        '0' => [
                            'showitem' => '
                                --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
                                --palette--;;filePalette'
                        ],
                        \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
                            'showitem' => '
                                --palette--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
                                --palette--;;filePalette'
                        ],
                    ],
                    'columns' => [
                        'crop' => [
                            'config' => [
                                'cropVariants' => [
                                    'default' => [
                                        'disabled' => true,
                                    ],
                                    'desktop' => [
                                        'title' => 'Desktop',
                                        'selectedRatio' => '9:4',
                                        'allowedAspectRatios' => [
                                            '9:4' => [
                                                'title' => '9:4',
                                                'value' => 9 / 4
                                            ],
                                            '16:5' => [
                                                'title' => '16:5',
                                                'value' => 16 / 5
                                            ]
                                        ]
                                    ],
                                    'tablet' => [
                                        'title' => 'Tablet',
                                        'selectedRatio' => '16:9',
                                        'allowedAspectRatios' => [
                                            '16:9' => [
                                                'title' => '16:9',
                                                'value' => 16 / 9
                                            ]
                                        ]
                                    ],
                                    'mobile' => [
                                        'title' => 'Mobile',
                                        'selectedRatio' => '1:1',
                                        'allowedAspectRatios' => [
                                            '1:1' => [
                                                'title' => '1:1',
                                                'value' => 1 / 1
                                            ],
                                            '4:3' => [
                                                'title' => '4:3',
                                                'value' => 4 / 3
                                            ]
                                        ]
                                    ]
                                ]
                            ]
                        ]
                    ]
                ],
            ],
            'maxitems' => 1,
            'displayCond' => 'FIELD:doktype:=:100',
        ],
    ]
);

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes('pages', '
            --div--;Referenz,
				header,
				quote,
				author_reference,
                author_image,
                background_image,
');

