Skip to content
Snippets Groups Projects
tx_nlmenubuilder_domain_model_menuitem.php 12.7 KiB
Newer Older
  • Learn to ignore specific revisions
  • $ll = 'LLL:EXT:nl_menubuilder/Resources/Private/Language/locallang_db.xlf';
    $accessTab = "--div--;$ll:tabs.access, starttime, endtime, sys_language_uid, l10n_parent, l10n_diffsource, hidden";
    
    return [
        'ctrl' => [
    
            'title' => "$ll:tx_nlmenubuilder_domain_model_menuitem",
    
            'label' => 'title',
            'tstamp' => 'tstamp',
            'crdate' => 'crdate',
            'cruser_id' => 'cruser_id',
            'versioningWS' => true,
            'languageField' => 'sys_language_uid',
            'transOrigPointerField' => 'l10n_parent',
            'transOrigDiffSourceField' => 'l10n_diffsource',
            'delete' => 'deleted',
            'enablecolumns' => [
                'disabled' => 'hidden',
                'starttime' => 'starttime',
                'endtime' => 'endtime',
            ],
    
            'searchFields' => 'title,subtitle,page,link,content',
            'iconfile' => 'EXT:nl_menubuilder/Resources/Public/Icons/tx_nlmenubuilder_domain_model_menuitem.gif',
            'type' => 'type',
            'typeicon_column' => 'type',
            'typeicon_classes' => [
                'default' => 'ext-menubuilder-menuitem-type-page',
                '1' => 'ext-menubuilder-menuitem-type-link',
                '2' => 'ext-menubuilder-menuitem-type-content',
                '3' => 'ext-menubuilder-menuitem-type-submenu',
            ],
    
        'interface' => ['showRecordFieldList' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, type, title, subtitle, image, page, link, content'],
    
            '0' => ['showitem' => "type, title, subtitle, page, image, $accessTab"],    // page
            '1' => ['showitem' => "type, title, subtitle, image, link, $accessTab"],    // link
            '2' => ['showitem' => "type, title, content, $accessTab"],                  // content
            '3' => ['showitem' => "type, title, submenu, $accessTab"],                  // submenu
    
        ],
        'columns' => [
            'sys_language_uid' => [
                'exclude' => true,
                'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language',
                'config' => [
                    'type' => 'select',
                    'renderType' => 'selectSingle',
                    'special' => 'languages',
                    'items' => [
                        [
                            'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.allLanguages',
                            -1,
                            'flags-multiple'
                        ]
                    ],
                    'default' => 0,
                ],
            ],
            'l10n_parent' => [
                'displayCond' => 'FIELD:sys_language_uid:>:0',
                'exclude' => true,
                'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.l18n_parent',
                'config' => [
                    'type' => 'select',
                    'renderType' => 'selectSingle',
                    'default' => 0,
                    'items' => [
                        ['', 0],
                    ],
                    'foreign_table' => 'tx_nlmenubuilder_domain_model_menuitem',
                    'foreign_table_where' => 'AND {#tx_nlmenubuilder_domain_model_menuitem}.{#pid}=###CURRENT_PID### AND {#tx_nlmenubuilder_domain_model_menuitem}.{#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' => true,
                'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.visible',
                'config' => [
                    'type' => 'check',
                    'renderType' => 'checkboxToggle',
                    'items' => [
                        [
                            0 => '',
                            1 => '',
                            'invertStateDisplay' => true
                        ]
                    ],
                ],
            ],
            'starttime' => [
                'exclude' => true,
                'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.starttime',
                'config' => [
                    'type' => 'input',
                    'renderType' => 'inputDateTime',
                    'eval' => 'datetime,int',
                    'default' => 0,
                    'behaviour' => [
                        'allowLanguageSynchronization' => true
                    ]
                ],
            ],
            'endtime' => [
                'exclude' => true,
                'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.endtime',
                'config' => [
                    'type' => 'input',
                    'renderType' => 'inputDateTime',
                    'eval' => 'datetime,int',
                    'default' => 0,
                    'range' => [
                        'upper' => mktime(0, 0, 0, 1, 1, 2038)
                    ],
                    'behaviour' => [
                        'allowLanguageSynchronization' => true
                    ]
                ],
            ],
    
            'type' => [
                'exclude' => false,
    
                'label' => "$ll:tx_nlmenubuilder_domain_model_menuitem.type",
    
                'config' => [
                    'type' => 'select',
                    'renderType' => 'selectSingle',
                    'items' => [
    
                        ["$ll:tx_nlmenubuilder_domain_model_menuitem.page", 0, 'ext-menubuilder-menuitem-type-page'],
                        ["$ll:tx_nlmenubuilder_domain_model_menuitem.link", 1, 'ext-menubuilder-menuitem-type-link'],
                        ["$ll:tx_nlmenubuilder_domain_model_menuitem.content", 2, 'ext-menubuilder-menuitem-type-content'],
                        ["$ll:tx_nlmenubuilder_domain_model_menuitem.submenu", 3, 'ext-menubuilder-menuitem-type-submenu'],
    
                    ],
                    'fieldWizard' => [
                        'selectIcons' => [
                            'disabled' => false,
                        ],
                    ],
                    'size' => 1,
                    'maxitems' => 1,
                    'eval' => 'required'
                ],
            ],
    
            'title' => [
                'exclude' => false,
    
                'label' => "$ll:tx_nlmenubuilder_domain_model_menuitem.title",
    
                'config' => [
                    'type' => 'input',
                    'size' => 30,
                    'eval' => 'trim,required'
                ],
            ],
    
                'exclude' => false,
    
                'label' => "$ll:tx_nlmenubuilder_domain_model_menuitem.subtitle",
    
                    'type' => 'input',
                    'size' => 30,
                    'eval' => 'trim'
                ],
            ],
            'image' => [
                'exclude' => false,
    
                'label' => "$ll:tx_nlmenubuilder_domain_model_menuitem.image",
    
                'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
                    'image',
                    [
                        'appearance' => [
                            'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
                        ],
                        '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' => '
                                --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
                                --palette--;;filePalette'
                            ],
                            \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' => '
                                --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
                                --palette--;;filePalette'
                            ],
                            \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' => '
                                --palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
                                --palette--;;filePalette'
                            ]
                        ],
                        'foreign_match_fields' => [
                            'fieldname' => 'image',
                            'tablenames' => 'tx_nlmenubuilder_domain_model_menuitem',
                            'table_local' => 'sys_file',
                        ],
                        'maxitems' => 1
    
                    $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
                ),
    
            ],
            'page' => [
                'exclude' => false,
    
                'label' => "$ll:tx_nlmenubuilder_domain_model_menuitem.page",
    
                    'type' => 'group',
                    'internal_type' => 'db',
                    'allowed' => 'pages',
                    'maxitems' => 1,
                    'minitems' => 1,
                    'size' => 1,
                    'default' => 0,
                    'suggestOptions' => [
                        'default' => [
                            'additionalSearchFields' => 'nav_title, alias, url',
                            'addWhere' => 'AND pages.doktype IN (1, 3, 4)'
                        ]
                    ]
    
                ],
            ],
            'link' => [
                'exclude' => false,
    
                'label' => "$ll:tx_nlmenubuilder_domain_model_menuitem.link",
    
                'config' => [
                    'type' => 'input',
    
                    'renderType' => 'inputLink',
    
                    'eval' => 'required',
                    'fieldControl' => [
                        'linkPopup' => [
                            'options' => [
                                'blindLinkOptions' => 'page'
                            ],
                        ]
                    ]
    
                ],
            ],
            'content' => [
                'exclude' => false,
    
                'label' => "$ll:tx_nlmenubuilder_domain_model_menuitem.content",
    
                    'type' => 'inline',
                    'allowed' => 'tt_content',
                    'foreign_table' => 'tt_content',
                    'foreign_sortby' => 'sorting',
                    'minitems' => 1,
                    'maxitems' => 99,
                    'appearance' => [
                        'collapseAll' => true,
                        'expandSingle' => true,
                        'levelLinksPosition' => 'bottom',
                        'useSortable' => true,
                        'showPossibleLocalizationRecords' => true,
                        'showRemovedLocalizationRecords' => true,
                        'showAllLocalizationLink' => true,
                        'showSynchronizationLink' => true,
                        'enabledControls' => [
                            'info' => false,
                        ]
    
                'label' => "$ll:tx_nlmenubuilder_domain_model_menuitem.submenu",
    
                    'type' => 'select',
                    'renderType' => 'selectMultipleSideBySide',
    
                    'foreign_table' => 'tx_nlmenubuilder_domain_model_menu',
    
                    'size' => 10,
                    'autoSizeMax' => 30,
                    'maxitems' => 1,
    
                    'multiple' => 0,
                    'fieldControl' => [
                        'editPopup' => [
                            'disabled' => false,
                        ],
                        'addRecord' => [
                            'disabled' => false,
                        ],
                        'listModule' => [
                            'disabled' => true,
                        ],
                    ],
    
                    'enableMultiSelectFilterTextfield' => true,
    
            'menu' => [
                'config' => [
                    'type' => 'passthrough',
                ],
            ],
        ],
    ];