Work-Commit
This commit is contained in:
0
packages/vitec/Configuration/FlexForms/Container.xml
Normal file → Executable file
0
packages/vitec/Configuration/FlexForms/Container.xml
Normal file → Executable file
0
packages/vitec/Configuration/Icons.php
Normal file → Executable file
0
packages/vitec/Configuration/Icons.php
Normal file → Executable file
0
packages/vitec/Configuration/TCA/Overrides/pages.php
Normal file → Executable file
0
packages/vitec/Configuration/TCA/Overrides/pages.php
Normal file → Executable file
0
packages/vitec/Configuration/TCA/Overrides/tt_content_vitec_cols_25_25_25_25.php
Normal file → Executable file
0
packages/vitec/Configuration/TCA/Overrides/tt_content_vitec_cols_25_25_25_25.php
Normal file → Executable file
0
packages/vitec/Configuration/TCA/Overrides/tt_content_vitec_cols_33_33_33.php
Normal file → Executable file
0
packages/vitec/Configuration/TCA/Overrides/tt_content_vitec_cols_33_33_33.php
Normal file → Executable file
0
packages/vitec/Configuration/TCA/Overrides/tt_content_vitec_cols_33_66.php
Normal file → Executable file
0
packages/vitec/Configuration/TCA/Overrides/tt_content_vitec_cols_33_66.php
Normal file → Executable file
0
packages/vitec/Configuration/TCA/Overrides/tt_content_vitec_cols_50_50.php
Normal file → Executable file
0
packages/vitec/Configuration/TCA/Overrides/tt_content_vitec_cols_50_50.php
Normal file → Executable file
0
packages/vitec/Configuration/TCA/Overrides/tt_content_vitec_cols_66_33.php
Normal file → Executable file
0
packages/vitec/Configuration/TCA/Overrides/tt_content_vitec_cols_66_33.php
Normal file → Executable file
0
packages/vitec/Configuration/TCA/Overrides/tt_content_vitec_container.php
Normal file → Executable file
0
packages/vitec/Configuration/TCA/Overrides/tt_content_vitec_container.php
Normal file → Executable file
0
packages/vitec/Configuration/TCA/Overrides/tt_content_vitec_shared.php
Normal file → Executable file
0
packages/vitec/Configuration/TCA/Overrides/tt_content_vitec_shared.php
Normal file → Executable file
0
packages/vitec/Configuration/TCA/tx_vitec_domain_model_product.php
Normal file → Executable file
0
packages/vitec/Configuration/TCA/tx_vitec_domain_model_product.php
Normal file → Executable file
@@ -0,0 +1,541 @@
|
||||
<?php
|
||||
return [
|
||||
'ctrl' => [
|
||||
'title' => 'VITEC Product',
|
||||
'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,slug',
|
||||
'iconfile' => 'EXT:vitec/Resources/Public/Icons/tx_vitec_domain_model_product.gif',
|
||||
'security' => [
|
||||
'ignorePageTypeRestriction' => true,
|
||||
],
|
||||
],
|
||||
'types' => [
|
||||
'1' => ['showitem' => 'title, subtitle, slug, teaser, description, applications, highlights, contentelement, contentelementcta, downloads,
|
||||
--div--;SEO, seotitle, urltitle, seometa, keywords, structureddata,
|
||||
--div--;Images and Videos, productimage, ogimage, video,
|
||||
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, categories,
|
||||
--div--;Visibility, hideonapp, hideonwebsite, hideondatasheets, hideonproducts, shortcut, shortcutpid,
|
||||
--div--;Misc, legacy, supportproduct, subproduct, relatedprodukt,
|
||||
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, hidden, starttime, endtime'],
|
||||
],
|
||||
'columns' => [
|
||||
'sys_language_uid' => [
|
||||
'exclude' => true,
|
||||
'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',
|
||||
'renderType' => 'selectSingle',
|
||||
'default' => 0,
|
||||
'items' => [
|
||||
['', 0],
|
||||
],
|
||||
'foreign_table' => 'tx_vitec_domain_model_product',
|
||||
'foreign_table_where' => 'AND {#tx_vitec_domain_model_product}.{#pid}=###CURRENT_PID### AND {#tx_vitec_domain_model_product}.{#sys_language_uid} IN (-1,0)',
|
||||
],
|
||||
],
|
||||
'l10n_diffsource' => [
|
||||
'config' => [
|
||||
'type' => 'passthrough',
|
||||
],
|
||||
],
|
||||
'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
|
||||
]
|
||||
],
|
||||
],
|
||||
'categories' => [
|
||||
'config' => [
|
||||
'type' => 'category'
|
||||
]
|
||||
],
|
||||
'title' => [
|
||||
'exclude' => false,
|
||||
'label' => 'LLL:EXT:vitec/Resources/Private/Language/locallang_db.xlf:tx_vitec_domain_model_product.title',
|
||||
'description' => 'LLL:EXT:vitec/Resources/Private/Language/locallang_db.xlf:tx_vitec_domain_model_product.title.description',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'eval' => 'trim',
|
||||
'required' => true,
|
||||
'default' => ''
|
||||
],
|
||||
],
|
||||
'slug' => [
|
||||
'exclude' => false,
|
||||
'label' => 'LLL:EXT:vitec/Resources/Private/Language/locallang_db.xlf:tx_vitec_domain_model_product.slug',
|
||||
'description' => 'LLL:EXT:vitec/Resources/Private/Language/locallang_db.xlf:tx_vitec_domain_model_product.slug.description',
|
||||
'config' => [
|
||||
'type' => 'slug',
|
||||
'size' => 50,
|
||||
'generatorOptions' => [
|
||||
'fields' => ['title'], // TODO: adjust this field to the one you want to use
|
||||
'fieldSeparator' => '-',
|
||||
'replacements' => [
|
||||
'/' => '',
|
||||
],
|
||||
],
|
||||
'fallbackCharacter' => '-',
|
||||
'eval' => 'uniqueInPid',
|
||||
],
|
||||
|
||||
],
|
||||
'seotitle' => [
|
||||
'exclude' => false,
|
||||
'label' => 'SEO-Title',
|
||||
'description' => 'SEO specific title, used for sharing options',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'eval' => 'trim',
|
||||
'default' => ''
|
||||
],
|
||||
],
|
||||
'urltitle' => [
|
||||
'exclude' => false,
|
||||
'label' => 'URL-Title',
|
||||
'description' => 'LLL:EXT:vitec/Resources/Private/Language/locallang_db.xlf:tx_vitec_domain_model_product.urltitle.description',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'eval' => 'trim',
|
||||
'default' => ''
|
||||
],
|
||||
],
|
||||
'video' => [
|
||||
'exclude' => false,
|
||||
'label' => 'Product Video - just the Youtube Clip ID',
|
||||
'description' => 'Product Video - just the Youtube Clip ID',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'eval' => 'trim',
|
||||
'default' => ''
|
||||
],
|
||||
],
|
||||
'downloads' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Downloads',
|
||||
'config' => [
|
||||
'type' => 'select',
|
||||
'renderType' => 'selectMultipleSideBySide',
|
||||
'foreign_table' => 'tx_vitec_domain_model_download',
|
||||
'MM' => 'tx_vitec_product_download_mm', // Define the MM table for the relation
|
||||
'size' => 10,
|
||||
'maxitems' => 9999,
|
||||
'minitems' => 0,
|
||||
'enableMultiSelectFilterTextfield' => true, // Optional: Adds a search box for filtering
|
||||
],
|
||||
],
|
||||
'structureddata' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Structured Data in JSON Format',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'cols' => 40,
|
||||
'rows' => 15,
|
||||
'eval' => 'trim'
|
||||
]
|
||||
],
|
||||
'keywords' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Keywords',
|
||||
'description' => 'Keywords for SEO, separated by commas',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'cols' => 40,
|
||||
'rows' => 15,
|
||||
'eval' => 'trim'
|
||||
]
|
||||
],
|
||||
'seometa' => [
|
||||
'exclude' => true,
|
||||
'label' => 'SEO Meta Description',
|
||||
'description' => 'SEO specific meta description, used for sharing options',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'cols' => 40,
|
||||
'rows' => 15,
|
||||
'eval' => 'trim'
|
||||
]
|
||||
],
|
||||
'teaser' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Short Teaser (optional)',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'eval' => 'trim',
|
||||
'default' => ''
|
||||
],
|
||||
],
|
||||
|
||||
'subtitle' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Subtitle',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'eval' => 'trim',
|
||||
'default' => ''
|
||||
],
|
||||
],
|
||||
'hideonapp' => [
|
||||
'exclude' => true,
|
||||
'label' => 'If checked - Product will not be shown on App',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'renderType' => 'checkboxToggle',
|
||||
'items' => [
|
||||
[
|
||||
0 => '',
|
||||
1 => '',
|
||||
'invertStateDisplay' => false
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
'hideonwebsite' => [
|
||||
'exclude' => true,
|
||||
'label' => 'If checked - Product will not be shown on Website',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'renderType' => 'checkboxToggle',
|
||||
'items' => [
|
||||
[
|
||||
0 => '',
|
||||
1 => '',
|
||||
'invertStateDisplay' => false
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'hideonproducts' => [
|
||||
'exclude' => true,
|
||||
'label' => 'If checked - Product will not be shown on Product Section',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'renderType' => 'checkboxToggle',
|
||||
'items' => [
|
||||
[
|
||||
0 => '',
|
||||
1 => '',
|
||||
'invertStateDisplay' => false
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'hideondatasheets' => [
|
||||
'exclude' => true,
|
||||
'label' => 'If checked - Product will not be shown on Datasheets Page',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'renderType' => 'checkboxToggle',
|
||||
'items' => [
|
||||
[
|
||||
0 => '',
|
||||
1 => '',
|
||||
'invertStateDisplay' => false
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'applications' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Applications',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'enableRichtext' => 'true',
|
||||
'eval' => 'trim',
|
||||
'default' => ''
|
||||
],
|
||||
'defaultExtras' => 'richtext:rte_transform[mode=ts_css]'
|
||||
],
|
||||
'description' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Description',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'enableRichtext' => 'true',
|
||||
'eval' => 'trim',
|
||||
'default' => ''
|
||||
],
|
||||
'defaultExtras' => 'richtext:rte_transform[mode=ts_css]'
|
||||
],
|
||||
|
||||
'highlights' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Highlights',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'enableRichtext' => 'true',
|
||||
'eval' => 'trim',
|
||||
'default' => ''
|
||||
],
|
||||
'defaultExtras' => 'richtext:rte_transform[mode=ts_css]'
|
||||
],
|
||||
|
||||
'shortcut' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Does this Product have a custom Page',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'renderType' => 'checkboxToggle',
|
||||
'items' => [
|
||||
[
|
||||
0 => '',
|
||||
1 => '',
|
||||
'invertStateDisplay' => false
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
'shortcutpid' => [
|
||||
'exclude' => false,
|
||||
'label' => 'Page ID',
|
||||
'description' => 'PID of the custom page',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'eval' => 'trim',
|
||||
'default' => ''
|
||||
],
|
||||
],
|
||||
|
||||
'legacy' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Is this a legacy produc?',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'renderType' => 'checkboxToggle',
|
||||
'items' => [
|
||||
[
|
||||
0 => '',
|
||||
1 => '',
|
||||
'invertStateDisplay' => false
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'supportproduct' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Is this a support product?',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'renderType' => 'checkboxToggle',
|
||||
'items' => [
|
||||
[
|
||||
0 => '',
|
||||
1 => '',
|
||||
'invertStateDisplay' => false
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'subproduct' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Product is a sub-products',
|
||||
'description' => 'This Product will not be shown as a main product',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'renderType' => 'checkboxToggle',
|
||||
'items' => [
|
||||
[
|
||||
0 => '',
|
||||
1 => '',
|
||||
'invertStateDisplay' => false
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
'relatedprodukt' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Related Products',
|
||||
'description' => 'Select related products for this product',
|
||||
'config' => [
|
||||
'type' => 'select',
|
||||
'renderType' => 'selectMultipleSideBySide',
|
||||
'foreign_table' => 'tx_vitec_domain_model_product', // Reference the same table
|
||||
'MM' => 'tx_vitec_product_related_mm', // Define the MM table for the relation
|
||||
'size' => 10,
|
||||
'maxitems' => 9999,
|
||||
'minitems' => 0,
|
||||
'enableMultiSelectFilterTextfield' => true, // Optional: Adds a search box for filtering
|
||||
],
|
||||
],
|
||||
'productimage' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Product Image(s)',
|
||||
'config' => [
|
||||
'type' => 'inline',
|
||||
'foreign_table' => 'sys_file_reference',
|
||||
'foreign_field' => 'uid_foreign',
|
||||
'foreign_sortby' => 'sorting_foreign',
|
||||
'foreign_table_field' => 'tablenames',
|
||||
'foreign_match_fields' => [
|
||||
'fieldname' => 'productimage',
|
||||
],
|
||||
'appearance' => [
|
||||
'collapseAll' => true,
|
||||
'levelLinksPosition' => 'top',
|
||||
'showSynchronizationLink' => true,
|
||||
'showPossibleLocalizationRecords' => true,
|
||||
'showAllLocalizationLink' => true,
|
||||
],
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
'filter' => [
|
||||
[
|
||||
'userFunc' => \TYPO3\CMS\Core\Resource\Filter\FileExtensionFilter::class . '->filterInlineChildren',
|
||||
'parameters' => [
|
||||
'allowedFileExtensions' => 'jpg,jpeg,png,gif',
|
||||
],
|
||||
],
|
||||
],
|
||||
'maxitems' => 10,
|
||||
'minitems' => 0,
|
||||
],
|
||||
],
|
||||
|
||||
'ogimage' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Open Graph Image',
|
||||
'config' => [
|
||||
'type' => 'inline',
|
||||
'foreign_table' => 'sys_file_reference',
|
||||
'foreign_field' => 'uid_foreign',
|
||||
'foreign_sortby' => 'sorting_foreign',
|
||||
'foreign_table_field' => 'tablenames',
|
||||
'foreign_match_fields' => [
|
||||
'fieldname' => 'ogimage',
|
||||
],
|
||||
'appearance' => [
|
||||
'collapseAll' => true,
|
||||
'levelLinksPosition' => 'top',
|
||||
'showSynchronizationLink' => true,
|
||||
'showPossibleLocalizationRecords' => true,
|
||||
'showAllLocalizationLink' => true,
|
||||
],
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
'filter' => [
|
||||
[
|
||||
'userFunc' => \TYPO3\CMS\Core\Resource\Filter\FileExtensionFilter::class . '->filterInlineChildren',
|
||||
'parameters' => [
|
||||
'allowedFileExtensions' => 'jpg,jpeg,png,gif,webp',
|
||||
],
|
||||
],
|
||||
],
|
||||
'maxitems' => 1, // Allow only one image
|
||||
'minitems' => 0,
|
||||
],
|
||||
],
|
||||
|
||||
'contentelement' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Select Content Element for Key Features Section',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'renderType' => 'inputLink',
|
||||
'softref' => 'typolink',
|
||||
'eval' => 'trim',
|
||||
'fieldControl' => [
|
||||
'linkPopup' => [
|
||||
'options' => [
|
||||
'title' => 'Select Content Element',
|
||||
'blindLinkOptions' => 'mail,folder,url', // Disable unnecessary link types
|
||||
'blindLinkFields' => 'class,params', // Disable unnecessary fields
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'contentelementcta' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Select Content Element for CTA Section',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'renderType' => 'inputLink',
|
||||
'softref' => 'typolink',
|
||||
'eval' => 'trim',
|
||||
'fieldControl' => [
|
||||
'linkPopup' => [
|
||||
'options' => [
|
||||
'title' => 'Select Content Element',
|
||||
'blindLinkOptions' => 'mail,folder,url', // Disable unnecessary link types
|
||||
'blindLinkFields' => 'class,params', // Disable unnecessary fields
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
/* ----------------------------------------------------- */
|
||||
],
|
||||
];
|
||||
@@ -0,0 +1,576 @@
|
||||
<?php
|
||||
return [
|
||||
'ctrl' => [
|
||||
'title' => 'VITEC Product',
|
||||
'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,slug',
|
||||
'iconfile' => 'EXT:vitec/Resources/Public/Icons/tx_vitec_domain_model_product.gif',
|
||||
'security' => [
|
||||
'ignorePageTypeRestriction' => true,
|
||||
],
|
||||
],
|
||||
'types' => [
|
||||
'1' => ['showitem' => 'title, subtitle, slug, teaser, description, applications, highlights, contentelement, contentelementcta, downloads,
|
||||
--div--;SEO, seotitle, urltitle, seometa, keywords, structureddata,
|
||||
--div--;Images and Videos, productimage, ogimage, video, videofile,
|
||||
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories, categories,
|
||||
--div--;Visibility, hideonapp, hideonwebsite, hideondatasheets, hideonproducts, shortcut, shortcutpid,
|
||||
--div--;Misc, legacy, supportproduct, subproduct, relatedprodukt,
|
||||
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, hidden, starttime, endtime'],
|
||||
],
|
||||
'columns' => [
|
||||
'sys_language_uid' => [
|
||||
'exclude' => true,
|
||||
'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',
|
||||
'renderType' => 'selectSingle',
|
||||
'default' => 0,
|
||||
'items' => [
|
||||
['', 0],
|
||||
],
|
||||
'foreign_table' => 'tx_vitec_domain_model_product',
|
||||
'foreign_table_where' => 'AND {#tx_vitec_domain_model_product}.{#pid}=###CURRENT_PID### AND {#tx_vitec_domain_model_product}.{#sys_language_uid} IN (-1,0)',
|
||||
],
|
||||
],
|
||||
'l10n_diffsource' => [
|
||||
'config' => [
|
||||
'type' => 'passthrough',
|
||||
],
|
||||
],
|
||||
'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
|
||||
]
|
||||
],
|
||||
],
|
||||
'categories' => [
|
||||
'config' => [
|
||||
'type' => 'category'
|
||||
]
|
||||
],
|
||||
'title' => [
|
||||
'exclude' => false,
|
||||
'label' => 'LLL:EXT:vitec/Resources/Private/Language/locallang_db.xlf:tx_vitec_domain_model_product.title',
|
||||
'description' => 'LLL:EXT:vitec/Resources/Private/Language/locallang_db.xlf:tx_vitec_domain_model_product.title.description',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'eval' => 'trim',
|
||||
'required' => true,
|
||||
'default' => ''
|
||||
],
|
||||
],
|
||||
'slug' => [
|
||||
'exclude' => false,
|
||||
'label' => 'LLL:EXT:vitec/Resources/Private/Language/locallang_db.xlf:tx_vitec_domain_model_product.slug',
|
||||
'description' => 'LLL:EXT:vitec/Resources/Private/Language/locallang_db.xlf:tx_vitec_domain_model_product.slug.description',
|
||||
'config' => [
|
||||
'type' => 'slug',
|
||||
'size' => 50,
|
||||
'generatorOptions' => [
|
||||
'fields' => ['title'], // TODO: adjust this field to the one you want to use
|
||||
'fieldSeparator' => '-',
|
||||
'replacements' => [
|
||||
'/' => '',
|
||||
],
|
||||
],
|
||||
'fallbackCharacter' => '-',
|
||||
'eval' => 'uniqueInPid',
|
||||
],
|
||||
|
||||
],
|
||||
'seotitle' => [
|
||||
'exclude' => false,
|
||||
'label' => 'SEO-Title',
|
||||
'description' => 'SEO specific title, used for sharing options',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'eval' => 'trim',
|
||||
'default' => ''
|
||||
],
|
||||
],
|
||||
'urltitle' => [
|
||||
'exclude' => false,
|
||||
'label' => 'URL-Title',
|
||||
'description' => 'LLL:EXT:vitec/Resources/Private/Language/locallang_db.xlf:tx_vitec_domain_model_product.urltitle.description',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'eval' => 'trim',
|
||||
'default' => ''
|
||||
],
|
||||
],
|
||||
'video' => [
|
||||
'exclude' => false,
|
||||
'label' => 'Product Video - just the Youtube Clip ID',
|
||||
'description' => 'Product Video - just the Youtube Clip ID',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'eval' => 'trim',
|
||||
'default' => ''
|
||||
],
|
||||
],
|
||||
'downloads' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Downloads',
|
||||
'config' => [
|
||||
'type' => 'select',
|
||||
'renderType' => 'selectMultipleSideBySide',
|
||||
'foreign_table' => 'tx_vitec_domain_model_download',
|
||||
'MM' => 'tx_vitec_product_download_mm', // Define the MM table for the relation
|
||||
'size' => 10,
|
||||
'maxitems' => 9999,
|
||||
'minitems' => 0,
|
||||
'enableMultiSelectFilterTextfield' => true, // Optional: Adds a search box for filtering
|
||||
],
|
||||
],
|
||||
'structureddata' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Structured Data in JSON Format',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'cols' => 40,
|
||||
'rows' => 15,
|
||||
'eval' => 'trim'
|
||||
]
|
||||
],
|
||||
'keywords' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Keywords',
|
||||
'description' => 'Keywords for SEO, separated by commas',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'cols' => 40,
|
||||
'rows' => 15,
|
||||
'eval' => 'trim'
|
||||
]
|
||||
],
|
||||
'seometa' => [
|
||||
'exclude' => true,
|
||||
'label' => 'SEO Meta Description',
|
||||
'description' => 'SEO specific meta description, used for sharing options',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'cols' => 40,
|
||||
'rows' => 15,
|
||||
'eval' => 'trim'
|
||||
]
|
||||
],
|
||||
'teaser' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Short Teaser (optional)',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'eval' => 'trim',
|
||||
'default' => ''
|
||||
],
|
||||
],
|
||||
|
||||
'subtitle' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Subtitle',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'eval' => 'trim',
|
||||
'default' => ''
|
||||
],
|
||||
],
|
||||
'hideonapp' => [
|
||||
'exclude' => true,
|
||||
'label' => 'If checked - Product will not be shown on App',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'renderType' => 'checkboxToggle',
|
||||
'items' => [
|
||||
[
|
||||
0 => '',
|
||||
1 => '',
|
||||
'invertStateDisplay' => false
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
'hideonwebsite' => [
|
||||
'exclude' => true,
|
||||
'label' => 'If checked - Product will not be shown on Website',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'renderType' => 'checkboxToggle',
|
||||
'items' => [
|
||||
[
|
||||
0 => '',
|
||||
1 => '',
|
||||
'invertStateDisplay' => false
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'hideonproducts' => [
|
||||
'exclude' => true,
|
||||
'label' => 'If checked - Product will not be shown on Product Section',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'renderType' => 'checkboxToggle',
|
||||
'items' => [
|
||||
[
|
||||
0 => '',
|
||||
1 => '',
|
||||
'invertStateDisplay' => false
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'hideondatasheets' => [
|
||||
'exclude' => true,
|
||||
'label' => 'If checked - Product will not be shown on Datasheets Page',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'renderType' => 'checkboxToggle',
|
||||
'items' => [
|
||||
[
|
||||
0 => '',
|
||||
1 => '',
|
||||
'invertStateDisplay' => false
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'applications' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Applications',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'enableRichtext' => 'true',
|
||||
'eval' => 'trim',
|
||||
'default' => ''
|
||||
],
|
||||
'defaultExtras' => 'richtext:rte_transform[mode=ts_css]'
|
||||
],
|
||||
'description' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Description',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'enableRichtext' => 'true',
|
||||
'eval' => 'trim',
|
||||
'default' => ''
|
||||
],
|
||||
'defaultExtras' => 'richtext:rte_transform[mode=ts_css]'
|
||||
],
|
||||
|
||||
'highlights' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Highlights',
|
||||
'config' => [
|
||||
'type' => 'text',
|
||||
'enableRichtext' => 'true',
|
||||
'eval' => 'trim',
|
||||
'default' => ''
|
||||
],
|
||||
'defaultExtras' => 'richtext:rte_transform[mode=ts_css]'
|
||||
],
|
||||
|
||||
'shortcut' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Does this Product have a custom Page',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'renderType' => 'checkboxToggle',
|
||||
'items' => [
|
||||
[
|
||||
0 => '',
|
||||
1 => '',
|
||||
'invertStateDisplay' => false
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
'shortcutpid' => [
|
||||
'exclude' => false,
|
||||
'label' => 'Page ID',
|
||||
'description' => 'PID of the custom page',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'size' => 30,
|
||||
'eval' => 'trim',
|
||||
'default' => ''
|
||||
],
|
||||
],
|
||||
|
||||
'legacy' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Is this a legacy produc?',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'renderType' => 'checkboxToggle',
|
||||
'items' => [
|
||||
[
|
||||
0 => '',
|
||||
1 => '',
|
||||
'invertStateDisplay' => false
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'supportproduct' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Is this a support product?',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'renderType' => 'checkboxToggle',
|
||||
'items' => [
|
||||
[
|
||||
0 => '',
|
||||
1 => '',
|
||||
'invertStateDisplay' => false
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'subproduct' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Product is a sub-products',
|
||||
'description' => 'This Product will not be shown as a main product',
|
||||
'config' => [
|
||||
'type' => 'check',
|
||||
'renderType' => 'checkboxToggle',
|
||||
'items' => [
|
||||
[
|
||||
0 => '',
|
||||
1 => '',
|
||||
'invertStateDisplay' => false
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
'relatedprodukt' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Related Products',
|
||||
'description' => 'Select related products for this product',
|
||||
'config' => [
|
||||
'type' => 'select',
|
||||
'renderType' => 'selectMultipleSideBySide',
|
||||
'foreign_table' => 'tx_vitec_domain_model_product', // Reference the same table
|
||||
'MM' => 'tx_vitec_product_related_mm', // Define the MM table for the relation
|
||||
'size' => 10,
|
||||
'maxitems' => 9999,
|
||||
'minitems' => 0,
|
||||
'enableMultiSelectFilterTextfield' => true, // Optional: Adds a search box for filtering
|
||||
],
|
||||
],
|
||||
'productimage' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Product Image(s)',
|
||||
'config' => [
|
||||
'type' => 'inline',
|
||||
'foreign_table' => 'sys_file_reference',
|
||||
'foreign_field' => 'uid_foreign',
|
||||
'foreign_sortby' => 'sorting_foreign',
|
||||
'foreign_table_field' => 'tablenames',
|
||||
'foreign_match_fields' => [
|
||||
'fieldname' => 'productimage',
|
||||
],
|
||||
'appearance' => [
|
||||
'collapseAll' => true,
|
||||
'levelLinksPosition' => 'top',
|
||||
'showSynchronizationLink' => true,
|
||||
'showPossibleLocalizationRecords' => true,
|
||||
'showAllLocalizationLink' => true,
|
||||
],
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
'filter' => [
|
||||
[
|
||||
'userFunc' => \TYPO3\CMS\Core\Resource\Filter\FileExtensionFilter::class . '->filterInlineChildren',
|
||||
'parameters' => [
|
||||
'allowedFileExtensions' => 'jpg,jpeg,png,gif',
|
||||
],
|
||||
],
|
||||
],
|
||||
'maxitems' => 10,
|
||||
'minitems' => 0,
|
||||
],
|
||||
],
|
||||
|
||||
'ogimage' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Open Graph Image',
|
||||
'config' => [
|
||||
'type' => 'inline',
|
||||
'foreign_table' => 'sys_file_reference',
|
||||
'foreign_field' => 'uid_foreign',
|
||||
'foreign_sortby' => 'sorting_foreign',
|
||||
'foreign_table_field' => 'tablenames',
|
||||
'foreign_match_fields' => [
|
||||
'fieldname' => 'ogimage',
|
||||
],
|
||||
'appearance' => [
|
||||
'collapseAll' => true,
|
||||
'levelLinksPosition' => 'top',
|
||||
'showSynchronizationLink' => true,
|
||||
'showPossibleLocalizationRecords' => true,
|
||||
'showAllLocalizationLink' => true,
|
||||
],
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
'filter' => [
|
||||
[
|
||||
'userFunc' => \TYPO3\CMS\Core\Resource\Filter\FileExtensionFilter::class . '->filterInlineChildren',
|
||||
'parameters' => [
|
||||
'allowedFileExtensions' => 'jpg,jpeg,png,gif,webp',
|
||||
],
|
||||
],
|
||||
],
|
||||
'maxitems' => 1, // Allow only one image
|
||||
'minitems' => 0,
|
||||
],
|
||||
],
|
||||
|
||||
'videofile' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Video File (Upload or Local)',
|
||||
'config' => [
|
||||
'type' => 'inline',
|
||||
'foreign_table' => 'sys_file_reference',
|
||||
'foreign_field' => 'uid_foreign',
|
||||
'foreign_sortby' => 'sorting_foreign',
|
||||
'foreign_table_field' => 'tablenames',
|
||||
'foreign_match_fields' => [
|
||||
'fieldname' => 'videofile',
|
||||
],
|
||||
'appearance' => [
|
||||
'collapseAll' => true,
|
||||
'levelLinksPosition' => 'top',
|
||||
'showSynchronizationLink' => true,
|
||||
'showPossibleLocalizationRecords' => true,
|
||||
'showAllLocalizationLink' => true,
|
||||
],
|
||||
'behaviour' => [
|
||||
'allowLanguageSynchronization' => true,
|
||||
],
|
||||
'filter' => [
|
||||
[
|
||||
'userFunc' => \TYPO3\CMS\Core\Resource\Filter\FileExtensionFilter::class . '->filterInlineChildren',
|
||||
'parameters' => [
|
||||
'allowedFileExtensions' => 'mp4,webm,ogv,mov,m4v',
|
||||
],
|
||||
],
|
||||
],
|
||||
'maxitems' => 1,
|
||||
'minitems' => 0,
|
||||
],
|
||||
],
|
||||
|
||||
'contentelement' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Select Content Element for Key Features Section',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'renderType' => 'inputLink',
|
||||
'softref' => 'typolink',
|
||||
'eval' => 'trim',
|
||||
'fieldControl' => [
|
||||
'linkPopup' => [
|
||||
'options' => [
|
||||
'title' => 'Select Content Element',
|
||||
'blindLinkOptions' => 'mail,folder,url', // Disable unnecessary link types
|
||||
'blindLinkFields' => 'class,params', // Disable unnecessary fields
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'contentelementcta' => [
|
||||
'exclude' => true,
|
||||
'label' => 'Select Content Element for CTA Section',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'renderType' => 'inputLink',
|
||||
'softref' => 'typolink',
|
||||
'eval' => 'trim',
|
||||
'fieldControl' => [
|
||||
'linkPopup' => [
|
||||
'options' => [
|
||||
'title' => 'Select Content Element',
|
||||
'blindLinkOptions' => 'mail,folder,url', // Disable unnecessary link types
|
||||
'blindLinkFields' => 'class,params', // Disable unnecessary fields
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
/* ----------------------------------------------------- */
|
||||
],
|
||||
];
|
||||
0
packages/vitec/Configuration/TypoScript/Headless/vitec_containers.typoscript
Normal file → Executable file
0
packages/vitec/Configuration/TypoScript/Headless/vitec_containers.typoscript
Normal file → Executable file
0
packages/vitec/Configuration/TypoScript/Headless/vitec_menus.typoscript
Normal file → Executable file
0
packages/vitec/Configuration/TypoScript/Headless/vitec_menus.typoscript
Normal file → Executable file
Reference in New Issue
Block a user