inital commit

This commit is contained in:
Raphael Martin
2023-12-05 10:40:47 +01:00
commit d950880d65
150 changed files with 10942 additions and 0 deletions

2
Configuration/.htaccess Executable file
View File

@@ -0,0 +1,2 @@
Order deny,allow
Deny from all

View File

@@ -0,0 +1,20 @@
<?php
declare(strict_types=1);
return [
A2G\A2gProducts\Domain\Model\MasonryItem::class => [
'tableName' => 'tx_a2gtoolkit_masonry_item',
'properties' => [
'title' => [
'fieldName' => 'title',
],
'itemClass' => [
'fieldName' => 'item_class',
],
'image' => [
'fieldName' => 'image',
],
],
]
];

View File

@@ -0,0 +1,104 @@
<T3DataStructure>
<sheets>
<sDEF>
<ROOT>
<TCEforms>
<sheetTitle>Function</sheetTitle>
</TCEforms>
<type>array</type>
<el>
<settings.listPage>
<label>product list page</label>
<config>
<type>group</type>
<internal_type>db</internal_type>
<allowed>pages</allowed>
<size>1</size>
<maxitems>1</maxitems>
<minitems>1</minitems>
<show_thumbs>1</show_thumbs>
</config>
</settings.listPage>
<settings.pageTitleSuffix>
<label>detail page title suffix</label>
<config>
<type>input</type>
<size>50</size>
<eval>trim</eval>
<enableRichtext>0</enableRichtext>
</config>
</settings.pageTitleSuffix>
<settings.allowedCategories>
<label>Show Categories</label>
<config>
<type>select</type>
<renderType>selectMultipleSideBySide</renderType>
<items type="array">
</items>
<foreign_table>tx_a2gproducts_domain_model_categories</foreign_table>
<foreign_table_where>
AND (tx_a2gproducts_domain_model_categories.sys_language_uid=CAST('###REC_FIELD_sys_language_uid###' AS UNSIGNED) OR tx_a2gproducts_domain_model_categories.sys_language_uid= '-1')
</foreign_table_where>
<maxitems>99</maxitems>
<minitems>0</minitems>
<size>10</size>
</config>
</settings.allowedCategories>
<settings.ingredientsDetailPage>
<label>ingredients detail page</label>
<config>
<type>group</type>
<internal_type>db</internal_type>
<allowed>pages</allowed>
<size>1</size>
<maxitems>1</maxitems>
<minitems>0</minitems>
<show_thumbs>1</show_thumbs>
</config>
</settings.ingredientsDetailPage>
<settings.style>
<label>Detail Page Style</label>
<config>
<type>select</type>
<renderType>selectSingle</renderType>
<items type="array">
<numIndex index="0" type="array">
<numIndex index="0">Default</numIndex>
<numIndex index="1">Default</numIndex>
</numIndex>
<numIndex index="1" type="array">
<numIndex index="0">StyleOne</numIndex>
<numIndex index="1">StyleOne</numIndex>
</numIndex>
</items>
</config>
</settings.style>
<settings.showCategories>
<label>Allowed Categories</label>
<config>
<type>select</type>
<renderType>selectMultipleSideBySide</renderType>
<items type="array">
</items>
<foreign_table>tx_a2gproducts_domain_model_categories</foreign_table>
<foreign_table_where>
AND (tx_a2gproducts_domain_model_categories.sys_language_uid=CAST('###REC_FIELD_sys_language_uid###' AS UNSIGNED) OR tx_a2gproducts_domain_model_categories.sys_language_uid= '-1')
</foreign_table_where>
<maxitems>99</maxitems>
<minitems>0</minitems>
<size>10</size>
</config>
</settings.showCategories>
<settings.requestMailTo>
<label>LLL:EXT:a2g_shop/Resources/Private/Language/backend.xlf:flexform.request_mail_to</label>
<config>
<type>input</type>
<size>80</size>
<eval>trim</eval>
</config>
</settings.requestMailTo>
</el>
</ROOT>
</sDEF>
</sheets>
</T3DataStructure>

View File

@@ -0,0 +1,64 @@
<T3DataStructure>
<sheets>
<sDEF>
<ROOT>
<TCEforms>
<sheetTitle>Function</sheetTitle>
</TCEforms>
<type>array</type>
<el>
<settings.listPage>
<label>list page</label>
<config>
<type>group</type>
<internal_type>db</internal_type>
<allowed>pages</allowed>
<size>1</size>
<maxitems>1</maxitems>
<minitems>0</minitems>
<show_thumbs>1</show_thumbs>
</config>
</settings.listPage>
<settings.pageTitleSuffix>
<label>detail page title suffix</label>
<config>
<type>input</type>
<size>50</size>
<eval>trim</eval>
<enableRichtext>0</enableRichtext>
</config>
</settings.pageTitleSuffix>
<settings.productDetailPage>
<label>Product Detail Page</label>
<config>
<type>group</type>
<internal_type>db</internal_type>
<allowed>pages</allowed>
<size>1</size>
<maxitems>1</maxitems>
<minitems>0</minitems>
<show_thumbs>1</show_thumbs>
</config>
</settings.productDetailPage>
<settings.detailPagePluginType>
<label>Product Detail Extension</label>
<config>
<type>select</type>
<renderType>selectSingle</renderType>
<items type="array">
<numIndex index="0" type="array">
<numIndex index="0">A2gProducts</numIndex>
<numIndex index="1">A2gProducts</numIndex>
</numIndex>
<numIndex index="1" type="array">
<numIndex index="0">A2gShop</numIndex>
<numIndex index="1">A2gShop</numIndex>
</numIndex>
</items>
</config>
</settings.detailPagePluginType>
</el>
</ROOT>
</sDEF>
</sheets>
</T3DataStructure>

View File

@@ -0,0 +1,34 @@
<T3DataStructure>
<sheets>
<sDEF>
<ROOT>
<TCEforms>
<sheetTitle>Function</sheetTitle>
</TCEforms>
<type>array</type>
<el>
<settings.ingredientsDetailPage>
<label>detail page</label>
<config>
<type>group</type>
<internal_type>db</internal_type>
<allowed>pages</allowed>
<size>1</size>
<maxitems>1</maxitems>
<show_thumbs>1</show_thumbs>
</config>
</settings.ingredientsDetailPage>
<settings.ajaxListLimit>
<label>ajax List Limit</label>
<config>
<type>input</type>
<size>20</size>
<max>30</max>
<eval>int,trim</eval>
</config>
</settings.ajaxListLimit>
</el>
</ROOT>
</sDEF>
</sheets>
</T3DataStructure>

View File

@@ -0,0 +1,104 @@
<T3DataStructure>
<sheets>
<sDEF>
<ROOT>
<TCEforms>
<sheetTitle>Function</sheetTitle>
</TCEforms>
<type>array</type>
<el>
<settings.productDetailPage>
<label>detail page</label>
<config>
<type>group</type>
<internal_type>db</internal_type>
<allowed>pages</allowed>
<size>1</size>
<maxitems>1</maxitems>
<minitems>0</minitems>
<show_thumbs>1</show_thumbs>
</config>
</settings.productDetailPage>
<settings.detailPagePluginType>
<label>List Content</label>
<config>
<type>select</type>
<renderType>selectSingle</renderType>
<items type="array">
<numIndex index="0" type="array">
<numIndex index="0">A2gProducts</numIndex>
<numIndex index="1">A2gProducts</numIndex>
</numIndex>
<numIndex index="1" type="array">
<numIndex index="0">A2gShop</numIndex>
<numIndex index="1">A2gShop</numIndex>
</numIndex>
</items>
</config>
</settings.detailPagePluginType>
<settings.showCategories>
<label>Show Categories</label>
<config>
<type>select</type>
<renderType>selectMultipleSideBySide</renderType>
<items type="array">
</items>
<foreign_table>tx_a2gproducts_domain_model_categories</foreign_table>
<foreign_table_where>
AND (tx_a2gproducts_domain_model_categories.sys_language_uid=CAST('###REC_FIELD_sys_language_uid###' AS UNSIGNED) OR tx_a2gproducts_domain_model_categories.sys_language_uid= '-1')
</foreign_table_where>
<maxitems>99</maxitems>
<minitems>0</minitems>
<size>10</size>
</config>
</settings.showCategories>
<settings.ajaxListLimit>
<label>Ajax List Limit</label>
<config>
<type>input</type>
<size>20</size>
<max>30</max>
<eval>int,trim</eval>
</config>
</settings.ajaxListLimit>
<settings.listContent>
<label>List Content</label>
<config>
<type>select</type>
<renderType>selectSingle</renderType>
<items type="array">
<numIndex index="0" type="array">
<numIndex index="0">Product</numIndex>
<numIndex index="1">Product</numIndex>
</numIndex>
</items>
</config>
</settings.listContent>
<settings.style>
<label>Detail Page Style</label>
<config>
<type>select</type>
<renderType>selectSingle</renderType>
<items type="array">
<numIndex index="0" type="array">
<numIndex index="0">Default</numIndex>
<numIndex index="1">Default</numIndex>
</numIndex>
<numIndex index="1" type="array">
<numIndex index="0">StyleOne</numIndex>
<numIndex index="1">StyleOne</numIndex>
</numIndex>
</items>
</config>
</settings.style>
<settings.noSearch>
<label>hide search</label>
<config>
<type>check</type>
</config>
</settings.noSearch>
</el>
</ROOT>
</sDEF>
</sheets>
</T3DataStructure>

21
Configuration/Services.yml Executable file
View File

@@ -0,0 +1,21 @@
services:
_defaults:
autowire: true
autoconfigure: true
public: false
a2gproducts.cache:
class: TYPO3\CMS\Core\Cache\Frontend\PhpFrontend
# We can not use CacheManager, as it can not be
# injected/instantiated during ext_localconf.php loading
# factory: ['@TYPO3\CMS\Core\Cache\CacheManager', 'getCache']
# therefore we use the static Bootstrap::createCache factory instead.
factory: ['TYPO3\CMS\Core\Core\Bootstrap', 'createCache']
arguments: ['products']
A2G\A2gProducts\Hreflang\EventListener\ProductsHrefLang:
tags:
- name: event.listener
identifier: 'a2g-products/ProductsHrefLang'
after: 'typo3-seo/hreflangGenerator'
event: TYPO3\CMS\Frontend\Event\ModifyHrefLangTagsEvent

View File

@@ -0,0 +1,30 @@
<?php
defined('TYPO3_MODE') || die();
/***************
* TypoScript: Full Package
* This includes the full setup including all configurations
*/
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
'a2g_products',
'Configuration/TypoScript',
'Altogether Products: Full Package'
);
/***************
* TypoScript: Base Package
*/
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
'a2g_products',
'Configuration/TypoScript/Base',
'Altogether Products: Base Package'
);
/***************
* TypoScript: Google Analytics Integration
*/
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
'a2g_products',
'Configuration/TypoScript/GoogleAnalytics',
'Altogether Products: Google Analytics Integration'
);

View File

@@ -0,0 +1,60 @@
<?php
defined('TYPO3_MODE') || die();
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
'A2gProducts',
'A2gproductslist',
'Product List'
);
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
'A2gProducts',
'A2gproductsdetail',
'Product Detail'
);
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
'A2gProducts',
'Ingredientslist',
'Ingredients List'
);
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
'A2gProducts',
'Ingredientsdetail',
'Ingredients Detail'
);
$pluginSignatures = [
'a2gproducts_a2gproductslist' => 'flexform_list',
'a2gproducts_a2gproductsdetail' => 'flexform_detail',
'a2gproducts_ingredientslist' => 'flexform_ingredients_list',
'a2gproducts_ingredientsdetail' => 'flexform_ingredients_detail'
];
foreach ($pluginSignatures as $pluginSignature => $flexform) {
$GLOBALS['TCA']['tt_content']['types']['list']['subtypes_excludelist'][$pluginSignature]='pages,layout,select_key,recursive';
$GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature]='pi_flexform';
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue(
$pluginSignature,
'FILE:EXT:a2g_products/Configuration/FlexForms/'.$flexform.'.xml'
);
}
/**
* typo3 12
*
$pluginSignature = \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
'A2gMaps',
'map',
'Map'
);
$GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature]
= 'pi_flexform';
ExtensionManagementUtility::addPiFlexFormValue(
$pluginSignature,
'FILE:EXT:a2g_maps/Configuration/FlexForms/flexform_map.xml'
);
*/

View File

@@ -0,0 +1,61 @@
<?php
defined('TYPO3') or die('Access denied.');
// Add crop variants
$defaultCropSettings = [
'title' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.default',
'allowedAspectRatios' => [
'16:10' => [
'title' => '16:10',
'value' => 16 / 10
],
'16:9' => [
'title' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:ratio.16_9',
'value' => 16 / 9
],
'4:3' => [
'title' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:ratio.4_3',
'value' => 4 / 3
],
'1:1' => [
'title' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:ratio.1_1',
'value' => 1.0
],
'NaN' => [
'title' => 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:ratio.free',
'value' => 0.0
],
],
'selectedRatio' => 'NaN',
'cropArea' => [
'x' => 0.0,
'y' => 0.0,
'width' => 1.0,
'height' => 1.0,
]
];
$largeCropSettings = $defaultCropSettings;
$largeCropSettings['title'] = 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.large';
$mediumCropSettings = $defaultCropSettings;
$mediumCropSettings['title'] = 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.medium';
$smallCropSettings = $defaultCropSettings;
$smallCropSettings['title'] = 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.small';
$extrasmallCropSettings = $defaultCropSettings;
$extrasmallCropSettings['title'] = 'LLL:EXT:bootstrap_package/Resources/Private/Language/Backend.xlf:option.extrasmall';
// Content Element Background Image
$GLOBALS['TCA']['tx_a2gproducts_domain_model_ingredients']['columns']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['default'] = $defaultCropSettings;
$GLOBALS['TCA']['tx_a2gproducts_domain_model_ingredients']['columns']['images']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['default'] = $defaultCropSettings;
$GLOBALS['TCA']['tx_a2gproducts_domain_model_products']['columns']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['default'] = $defaultCropSettings;
$GLOBALS['TCA']['tx_a2gproducts_domain_model_products']['columns']['images']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['default'] = $defaultCropSettings;
$GLOBALS['TCA']['tx_a2gproducts_domain_model_productvariants']['columns']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['default'] = $defaultCropSettings;
$GLOBALS['TCA']['tx_a2gproducts_domain_model_productvariants']['columns']['images']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['default'] = $defaultCropSettings;
//$GLOBALS['TCA']['tx_a2gproducts_domain_model_ingredients']['columns']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['large'] = $largeCropSettings;
//$GLOBALS['TCA']['tx_a2gproducts_domain_model_ingredients']['columns']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['medium'] = $mediumCropSettings;
//$GLOBALS['TCA']['tx_a2gproducts_domain_model_ingredients']['columns']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['small'] = $smallCropSettings;
//$GLOBALS['TCA']['tx_a2gproducts_domain_model_ingredients']['columns']['image']['config']['overrideChildTca']['columns']['crop']['config']['cropVariants']['extrasmall'] = $extrasmallCropSettings;

View File

@@ -0,0 +1,164 @@
<?php
return [
'ctrl' => [
'title' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:tx_a2gproducts_domain_model_brands',
'label' => 'title',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'sortby' => 'sorting',
'cruser_id' => 'cruser_id',
'versioningWS' => true,
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'transOrigDiffSourceField' => 'l10n_diffsource',
'delete' => 'deleted',
'thumbnail' => 'image',
'enablecolumns' => [
'disabled' => 'hidden',
'starttime' => 'starttime',
'endtime' => 'endtime',
],
'searchFields' => 'nr,title',
'iconfile' => 'EXT:a2g_products/Resources/Public/Icons/brand-image.png'
],
'types' => [
'1' => ['showitem' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, title, path_segment, image, '
. '--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, 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_a2gproducts_domain_model_brands',
'foreign_table_where' => 'AND {#tx_a2gproducts_domain_model_brands}.{#pid}=###CURRENT_PID### AND {#tx_a2gproducts_domain_model_brands}.{#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
]
],
],
'title' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:title',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim, required',
'default' => ''
],
],
'image' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:image',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'image',
[
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
],
'overrideChildTca' => [
'types' => [
\TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
'showitem' => '
title,
description,
alternative,
crop,
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
'showitem' => '
--palette--;;filePalette
'
],
],
],
'minitems' => 0,
'maxitems' => 1,
],
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
),
],
],
];

View File

@@ -0,0 +1,199 @@
<?php
return [
'ctrl' => [
'title' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:tx_a2gproducts_domain_model_categories',
'label' => 'title',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'sortby' => 'sorting',
'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,description',
'iconfile' => 'EXT:a2g_products/Resources/Public/Icons/categories.png'
],
'types' => [
'1' => ['showitem' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, title, rel_filters, --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, 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_a2gproducts_domain_model_categories',
'foreign_table_where' => 'AND {#tx_a2gproducts_domain_model_categories}.{#pid}=###CURRENT_PID### AND {#tx_a2gproducts_domain_model_categories}.{#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
]
],
],
'title' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:title',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim, required',
'default' => ''
],
],
'description' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:description',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim',
'default' => ''
],
],
'image' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf: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_a2gproducts_domain_model_categories',
'table_local' => 'sys_file',
],
'maxitems' => 1
],
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
),
],
'rel_filters' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:rel_filters',
'config' => [
'type' => 'select',
'renderType' => 'selectMultipleSideBySide',
'foreign_table' => 'tx_a2gproducts_domain_model_filters',
'foreign_table_where' => ' AND tx_a2gproducts_domain_model_filters.sys_language_uid IN (###REC_FIELD_sys_language_uid###,-1) ',
'MM' => 'tx_a2gproducts_categories_filters_mm',
'size' => 10,
'autoSizeMax' => 30,
'maxitems' => 9999,
'multiple' => 0,
'fieldControl' => [
'editPopup' => [
'disabled' => false,
],
'addRecord' => [
'disabled' => false,
],
'listModule' => [
'disabled' => true,
],
],
],
],
],
];

View File

@@ -0,0 +1,102 @@
<?php
return [
'ctrl' => [
'title' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:tx_a2gproducts_domain_model_filteroptions',
'label' => 'title',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'sortby' => 'sorting',
'cruser_id' => 'cruser_id',
'versioningWS' => true,
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'transOrigDiffSourceField' => 'l10n_diffsource',
'delete' => 'deleted',
'hideTable' => false,
'enablecolumns' => [
'disabled' => 'hidden'
],
'searchFields' => 'title',
'hideTable' => true,
'iconfile' => 'EXT:a2g_products/Resources/Public/Icons/filter-option.png'
],
'types' => [
'1' => ['showitem' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, title, value_min, value_max'],
],
'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_a2gproducts_domain_model_filteroptions',
'foreign_table_where' => 'AND {#tx_a2gproducts_domain_model_filteroptions}.{#pid}=###CURRENT_PID### AND {#tx_a2gproducts_domain_model_filteroptions}.{#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
]
],
],
],
'title' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:title',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim',
'default' => ''
],
],
'value_min' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:value_min',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'double2'
],
],
'value_max' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:value_max',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'double2'
],
],
'filters' => [
'config' => [
'type' => 'passthrough',
],
],
],
];

View File

@@ -0,0 +1,180 @@
<?php
use A2G\A2gProducts\Domain\Model\Filters;
return [
'ctrl' => [
'title' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:tx_a2gproducts_domain_model_filters',
'label' => 'title',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'sortby' => 'sorting',
'cruser_id' => 'cruser_id',
'versioningWS' => true,
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'transOrigDiffSourceField' => 'l10n_diffsource',
'delete' => 'deleted',
'type' => 'rel_filter_option',
'enablecolumns' => [
'disabled' => 'hidden',
'starttime' => 'starttime',
'endtime' => 'endtime',
],
'searchFields' => 'title,filter_type',
'iconfile' => 'EXT:a2g_products/Resources/Public/Icons/filters.png'
],
'types' => [
'1' => ['showitem' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, title, filter_type, db_operation_max, db_operation_min, rel_filter_option, --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, 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_a2gproducts_domain_model_filters',
'foreign_table_where' => 'AND {#tx_a2gproducts_domain_model_filters}.{#pid}=###CURRENT_PID### AND {#tx_a2gproducts_domain_model_filters}.{#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
]
],
],
'title' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:title',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim',
'default' => ''
],
],
'filter_type' => [
'exclude' => true,
'onChange' => 'reload',
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:filter_type',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'default' => 3,
'items' => [
// [Filters::$dbType[1], 1],
// [Filters::$dbType[2], 2],
['LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:filter_type.'.Filters::$dbType[3], 3]
],
],
],
'db_operation_max' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:db_operation_max',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'items' => [
[Filters::$dbOperations[1], 1],
[Filters::$dbOperations[2], 2],
[Filters::$dbOperations[3], 3],
[Filters::$dbOperations[4], 4],
[Filters::$dbOperations[5], 5]
],
],
'displayCond' => 'FIELD:filter_type:=:1',
],
'db_operation_min' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:db_operation_min',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'items' => [
[Filters::$dbOperations[1], 1],
[Filters::$dbOperations[2], 2],
[Filters::$dbOperations[3], 3],
[Filters::$dbOperations[4], 4],
[Filters::$dbOperations[5], 5]
],
],
'displayCond' => 'FIELD:filter_type:IN:1,2',
],
'rel_filter_option' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:rel_filter_option',
'config' => [
'type' => 'inline',
'foreign_table' => 'tx_a2gproducts_domain_model_filteroptions',
'foreign_table_where' => 'AND tx_a2gproducts_domain_model_filters.sys_language_uid IN (###REC_FIELD_sys_language_uid###,-1)',
'foreign_field' => 'filters',
'maxitems' => 9999,
'appearance' => [
'collapseAll' => 1,
'expandSingle' => 1,
'levelLinksPosition' => 'top',
'showSynchronizationLink' => 1,
'showPossibleLocalizationRecords' => 1,
'showAllLocalizationLink' => 1
],
],
],
],
];

View File

@@ -0,0 +1,117 @@
<?php
return [
'ctrl' => [
'title' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:tx_a2gproducts_domain_model_filtervalues',
'label' => 'value',
'label_userFunc' => 'A2G\\A2gProducts\\User\\FilterValuesMatcher->title',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'cruser_id' => 'cruser_id',
'type' => 'rel_filter_option',
'versioningWS' => true,
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'transOrigDiffSourceField' => 'l10n_diffsource',
'hideTable' => true,
'enablecolumns' => [
'disabled' => 'hidden'
],
'searchFields' => '',
'iconfile' => 'EXT:a2g_products/Resources/Public/Icons/filter-option.png'
],
'types' => [
'1' => ['showitem' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, value,rel_filter_option, rel_filters'],
],
'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_a2gproducts_domain_model_filtervalues',
'foreign_table_where' => 'AND {#tx_a2gproducts_domain_model_filtervalues}.{#pid}=###CURRENT_PID### AND {#tx_a2gproducts_domain_model_filtervalues}.{#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
]
],
],
],
'value' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:value',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'double2'
],
'displayCond' => 'USER:A2G\\A2gProducts\\User\\FilterValuesMatcher->showValueInput',
],
'rel_filter_option' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:rel_filter_option',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'foreign_table' => 'tx_a2gproducts_domain_model_filteroptions',
'foreign_table_where' => 'AND tx_a2gproducts_domain_model_filteroptions.filters = ###REC_FIELD_rel_filters### AND tx_a2gproducts_domain_model_filteroptions.sys_language_uid IN (###REC_FIELD_sys_language_uid###,-1)',
'default' => 0,
'minitems' => 0,
'maxitems' => 1,
],
'displayCond' => 'USER:A2G\\A2gProducts\\User\\FilterValuesMatcher->showOptionsSelect',
],
'rel_filters' => [
'exclude' => true,
'onChange' => 'reload',
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:rel_filters',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'foreign_table' => 'tx_a2gproducts_domain_model_filters',
'foreign_table_where' => 'AND tx_a2gproducts_domain_model_filters.sys_language_uid IN (###REC_FIELD_sys_language_uid###,-1)',
'default' => 0,
'minitems' => 0,
'maxitems' => 1,
],
],
'products' => [
'config' => [
'type' => 'passthrough',
],
],
'productvariants' => [
'config' => [
'type' => 'passthrough',
],
],
],
];

View File

@@ -0,0 +1,308 @@
<?php
return [
'ctrl' => [
'title' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:tx_a2gproducts_domain_model_ingredients',
'label' => 'title',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'sortby' => 'sorting',
'cruser_id' => 'cruser_id',
'versioningWS' => true,
'languageField' => 'sys_language_uid',
'transOrigDiffSourceField' => 'l10n_diffsource',
'delete' => 'deleted',
'enablecolumns' => [
'disabled' => 'hidden',
'starttime' => 'starttime',
'endtime' => 'endtime',
],
'searchFields' => 'nr,title,description',
'iconfile' => 'EXT:a2g_products/Resources/Public/Icons/natural-ingredients.png'
],
'types' => [
'1' => ['showitem' => 'sys_language_uid, l10n_diffsource, hidden, title, path_segment, description,'
. '--div--;LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:images_tab, image, images, gallery,'
. '--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, starttime, endtime'],
],
'columns' => [
'sys_language_uid' => [
'exclude' => true,
'label' => 'LLL:EXT:core/Resources/Private/Language/locallang_general.xlf:LGL.language',
'config' => [
'type' => 'language'
],
],
'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
]
],
],
'title' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:title',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim',
'default' => ''
],
],
'path_segment' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:slug',
'config' => [
'type' => 'slug',
'size' => 50,
'generatorOptions' => [
'fields' => ['title'],
'fieldSeparator' => '/',
'prefixParentPageSlug' => true,
'replacements' => [
'/' => '',
],
],
'fallbackCharacter' => '-',
'eval' => 'uniqueInSite',
'default' => ''
],
],
'description' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:description',
'config' => [
'type' => 'text',
'cols' => 40,
'rows' => 15,
'eval' => 'trim',
'default' => ''
]
],
'image' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:image',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'image',
[
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
],
'overrideChildTca' => [
'types' => [
\TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
'showitem' => '
title,
description,
alternative,
crop,
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
'showitem' => '
--palette--;;filePalette
'
],
],
],
'minitems' => 0,
'maxitems' => 1,
],
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
),
],
'images' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:images',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'images',
[
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
],
'overrideChildTca' => [
'types' => [
\TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
'showitem' => '
title,
description,
alternative,
crop,
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
'showitem' => '
--palette--;;filePalette
'
],
],
],
'minitems' => 0,
'maxitems' => 10,
],
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
),
],
'gallery' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_toolkit/Resources/Private/Language/Backend.xlf:masonry_item',
'config' => [
'type' => 'inline',
'foreign_table' => 'tx_a2gtoolkit_masonry_item',
'foreign_field' => 'a2g_ingredients',
'appearance' => [
'useSortable' => true,
'showSynchronizationLink' => true,
'showAllLocalizationLink' => true,
'showPossibleLocalizationRecords' => true,
'expandSingle' => true,
'enabledControls' => [
'localize' => true,
]
],
'behaviour' => [
'mode' => 'select',
]
],
],
'rel_products' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:rel_products',
'config' => [
'type' => 'select',
'renderType' => 'selectMultipleSideBySide',
'foreign_table' => 'tx_a2gproducts_domain_model_products',
'foreign_table_where' => ' AND tx_a2gproducts_domain_model_products.sys_language_uid IN (###REC_FIELD_sys_language_uid###,-1) AND tx_a2gproducts_domain_model_products.pid=###CURRENT_PID### ',
'MM' => 'tx_a2gproducts_products_ingredients_mm',
'MM_opposite_field' => 'uid_foreign',
'size' => 10,
'autoSizeMax' => 30,
'maxitems' => 20,
'multiple' => 0,
'fieldControl' => [
'editPopup' => [
'disabled' => false,
],
'addRecord' => [
'disabled' => false,
],
'listModule' => [
'disabled' => true,
],
],
],
],
'rel_productvariants' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:rel_productvariants',
'config' => [
'type' => 'select',
'renderType' => 'selectMultipleSideBySide',
'foreign_table' => 'tx_a2gproducts_domain_model_productvariants',
'foreign_table_where' => ' AND tx_a2gproducts_domain_model_productvariants.sys_language_uid IN (###REC_FIELD_sys_language_uid###,-1) AND tx_a2gproducts_domain_model_productvariants.pid=###CURRENT_PID### ',
'MM' => 'tx_a2gproducts_products_productvariants_mm',
'MM_opposite_field' => 'uid_foreign',
'size' => 10,
'autoSizeMax' => 30,
'maxitems' => 20,
'multiple' => 0,
'fieldControl' => [
'editPopup' => [
'disabled' => false,
],
'addRecord' => [
'disabled' => false,
],
'listModule' => [
'disabled' => true,
],
],
],
],
],
];

View File

@@ -0,0 +1,599 @@
<?php
return [
'ctrl' => [
'title' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:tx_a2gproducts_domain_model_products',
'label' => 'title',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'sortby' => 'sorting',
'cruser_id' => 'cruser_id',
'versioningWS' => true,
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'transOrigDiffSourceField' => 'l10n_diffsource',
'delete' => 'deleted',
'descriptionColumn' => 'description',
'thumbnail' => 'image',
'enablecolumns' => [
'disabled' => 'hidden',
'starttime' => 'starttime',
'endtime' => 'endtime',
],
'searchFields' => 'nr,title,description',
'iconfile' => 'EXT:a2g_products/Resources/Public/Icons/package.png'
],
'types' => [
'1' => ['showitem' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, nr, title, path_segment, rel_category, description, description_html, rel_brand,'
. '--div--;LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:images_tab, image, images,'
. '--div--;LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:ingredients_tab, rel_ingredients,'
. '--div--;LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:filters_tab, rel_filter_values, '
// . '--div--;Product Attributes, rel_selectableattribute, '
. '--div--;LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:product_variants_tab, rel_productvariants, '
. '--div--;LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:seo_tab, seo_image1x1,seo_image4x3,seo_image16x9,'
. '--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, 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_a2gproducts_domain_model_products',
'foreign_table_where' => 'AND {#tx_a2gproducts_domain_model_products}.{#pid}=###CURRENT_PID### AND {#tx_a2gproducts_domain_model_products}.{#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
]
],
],
'nr' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:product_nr',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim, required',
'default' => ''
],
],
'title' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:title',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim, required',
'default' => ''
],
],
'path_segment' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:slug',
'config' => [
'type' => 'slug',
'size' => 50,
'generatorOptions' => [
'fields' => ['title'],
'fieldSeparator' => '/',
'prefixParentPageSlug' => true,
'replacements' => [
'/' => '',
],
],
'fallbackCharacter' => '-',
'eval' => 'uniqueInSite',
'default' => ''
],
],
'description' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:description',
'config' => [
'type' => 'text',
'cols' => 40,
'rows' => 15,
'eval' => 'trim',
'default' => ''
]
],
'description_html' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:description_html',
'config' => [
'type' => 'text',
'cols' => 40,
'rows' => 15,
'eval' => 'trim',
'enableRichtext' => true,
'default' => ''
]
],
'image' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:image',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'image',
[
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
],
'overrideChildTca' => [
'types' => [
\TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
'showitem' => '
title,
description,
alternative,
crop,
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
'showitem' => '
--palette--;;filePalette
'
],
],
],
'minitems' => 0,
'maxitems' => 1,
],
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
),
],
'images' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:images',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'images',
[
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
],
'overrideChildTca' => [
'types' => [
\TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
'showitem' => '
title,
description,
alternative,
crop,
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
'showitem' => '
--palette--;;filePalette
'
],
],
],
'minitems' => 0,
'maxitems' => 10,
],
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
),
],
'gallery' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_toolkit/Resources/Private/Language/Backend.xlf:masonry_item',
'config' => [
'type' => 'inline',
'foreign_table' => 'tx_a2gtoolkit_masonry_item',
'foreign_field' => 'a2g_products',
'appearance' => [
'useSortable' => true,
'showSynchronizationLink' => true,
'showAllLocalizationLink' => true,
'showPossibleLocalizationRecords' => true,
'expandSingle' => true,
'enabledControls' => [
'localize' => true,
]
],
'behaviour' => [
'mode' => 'select',
]
],
],
'seo_image1x1' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:seo_image1x1',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'image',
[
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
],
'overrideChildTca' => [
'types' => [
\TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
'showitem' => '
title,
description,
alternative,
crop,
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
'showitem' => '
--palette--;;filePalette
'
],
],
],
'foreign_match_fields' => [
'fieldname' => 'seo_image1x1',
'tablenames' => 'tx_a2gproducts_domain_model_products',
'table_local' => 'sys_file',
],
'minitems' => 0,
'maxitems' => 1,
],
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
),
],
'seo_image4x3' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:seo_image4x3',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'image',
[
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
],
'overrideChildTca' => [
'types' => [
\TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
'showitem' => '
title,
description,
alternative,
crop,
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
'showitem' => '
--palette--;;filePalette
'
],
],
],
'foreign_match_fields' => [
'fieldname' => 'seo_image4x3',
'tablenames' => 'tx_a2gproducts_domain_model_products',
'table_local' => 'sys_file',
],
'minitems' => 0,
'maxitems' => 1,
],
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
),
],
'seo_image16x9' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:seo_image16x9',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'image',
[
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
],
'overrideChildTca' => [
'types' => [
\TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
'showitem' => '
title,
description,
alternative,
crop,
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
'showitem' => '
--palette--;;filePalette
'
],
],
],
'foreign_match_fields' => [
'fieldname' => 'seo_image16x9',
'tablenames' => 'tx_a2gproducts_domain_model_products',
'table_local' => 'sys_file',
],
'minitems' => 0,
'maxitems' => 1,
],
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
),
],
'rel_category' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:rel_category',
'config' => [
'type' => 'select',
'renderType' => 'selectMultipleSideBySide',
'foreign_table' => 'tx_a2gproducts_domain_model_categories',
'foreign_table_where' => ' AND {#tx_a2gproducts_domain_model_categories}.{#sys_language_uid} IN (###REC_FIELD_sys_language_uid###,-1) AND {#tx_a2gproducts_domain_model_categories}.{#pid}=###CURRENT_PID### ',
'MM' => 'tx_a2gproducts_products_categories_mm',
'size' => 10,
'autoSizeMax' => 30,
'maxitems' => 20,
'multiple' => false,
'fieldControl' => [
'editPopup' => [
'disabled' => false,
],
'addRecord' => [
'disabled' => false,
],
'listModule' => [
'disabled' => true,
],
],
],
],
'rel_filter_values' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:rel_filter_values',
'config' => [
'type' => 'inline',
'foreign_table' => 'tx_a2gproducts_domain_model_filtervalues',
'foreign_field' => 'products',
'foreign_table_where' => ' AND {#tx_a2gproducts_domain_model_filtervalues}.{#sys_language_uid} IN (###REC_FIELD_sys_language_uid###,-1) ',
'maxitems' => 20,
'appearance' => [
'collapseAll' => 0,
'levelLinksPosition' => 'top',
'showSynchronizationLink' => 1,
'showPossibleLocalizationRecords' => 1,
'showAllLocalizationLink' => 1
],
],
],
'rel_selectableattribute' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:rel_selectableattribute',
'config' => [
'type' => 'inline',
'foreign_table' => 'tx_a2gproducts_domain_model_selectableattribute',
'foreign_field' => 'products',
'foreign_table_where' => ' AND {#tx_a2gproducts_domain_model_selectableattribute}.{#sys_language_uid} IN (###REC_FIELD_sys_language_uid###,-1) ',
'maxitems' => 20,
'appearance' => [
'collapseAll' => 0,
'levelLinksPosition' => 'top',
'showSynchronizationLink' => 1,
'showPossibleLocalizationRecords' => 1,
'showAllLocalizationLink' => 1
],
],
],
'rel_ingredients' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:rel_ingredients',
'config' => [
'type' => 'select',
'renderType' => 'selectMultipleSideBySide',
'foreign_table' => 'tx_a2gproducts_domain_model_ingredients',
'foreign_table_where' => ' AND {#tx_a2gproducts_domain_model_ingredients}.{#sys_language_uid} IN (###REC_FIELD_sys_language_uid###,-1) AND {#tx_a2gproducts_domain_model_ingredients}.{#pid}=###CURRENT_PID### ',
'MM' => 'tx_a2gproducts_products_ingredients_mm',
'size' => 10,
'autoSizeMax' => 30,
'minitems' => 0,
'maxitems' => 20,
'multiple' => 1,
'fieldControl' => [
'editPopup' => [
'disabled' => false,
],
'addRecord' => [
'disabled' => false,
],
'listModule' => [
'disabled' => true,
],
],
],
],
'rel_productvariants' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:rel_productvariants',
'config' => [
'type' => 'inline',
'foreign_table' => 'tx_a2gproducts_domain_model_productvariants',
'foreign_table_where' => ' AND tx_a2gproducts_domain_model_productvariants.sys_language_uid IN (###REC_FIELD_sys_language_uid###,-1) AND tx_a2gproducts_domain_model_productvariants.pid=###CURRENT_PID### ',
'foreign_field' => 'product',
'size' => 10,
'autoSizeMax' => 30,
'foreign_sortby' => 'sorting',
'minitems' => 1,
'maxitems' => 20,
'appearance' => [
'collapseAll' => 1,
'expandSingle' => 1,
],
],
],
'rel_brand' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:rel_brand',
'config' => [
'type' => 'group',
'internal_type' => 'db',
'allowed' => 'tx_a2gproducts_domain_model_brands',
'maxitems' => 1,
'minitems' => 0,
'size' => 1,
'default' => 0,
'suggestOptions' => [
'default' => [
'additionalSearchFields' => 'title',
'addWhere' => 'AND tx_a2gproducts_domain_model_brands.sys_language_uid IN (###REC_FIELD_sys_language_uid###,-1) AND tx_a2gproducts_domain_model_brands.pid=###CURRENT_PID###'
]
],
],
],
],
];

View File

@@ -0,0 +1,665 @@
<?php
return [
'ctrl' => [
'title' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:tx_a2gproducts_domain_model_productvariants',
'label' => 'title',
'label_userFunc' => \A2G\A2gProducts\User\Tca::class . '->productVariantTitle',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'sortby' => 'sorting',
'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' => 'nr,title,description',
'hideTable' => true,
'iconfile' => 'EXT:a2g_products/Resources/Public/Icons/fingerprint-outline-variant.png'
],
'types' => [
'1' => ['showitem' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden,product, nr, title, path_segment, description, description_html,'
. '--div--;LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:images_tab, tab_icon, image, images,'
. '--div--;LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:ingredients_tab, rel_ingredients,'
. '--div--;LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:filters_tab, rel_category, rel_filter_values, '
. '--div--;LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:selectabel_product_attribute_tab, rel_selectableattribute, '
. '--div--;LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:seo_tab, seo_image1x1,seo_image4x3,seo_image16x9,'
. '--div--;LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:sizes_tab, rel_sizes,'
. '--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, 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_a2gproducts_domain_model_productvariants',
'foreign_table_where' => 'AND {#tx_a2gproducts_domain_model_productvariants}.{#pid}=###CURRENT_PID### AND {#tx_a2gproducts_domain_model_productvariants}.{#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
]
],
],
'nr' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:product_nr',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim, required',
'default' => ''
],
],
'title' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:title',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim',
'default' => ''
],
],
'path_segment' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:slug',
'config' => [
'type' => 'slug',
'size' => 50,
'generatorOptions' => [
'fields' => ['title'],
'fieldSeparator' => '/',
'prefixParentPageSlug' => true,
'replacements' => [
'/' => '',
],
],
'fallbackCharacter' => '-',
'default' => ''
],
],
'description' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:description',
'config' => [
'type' => 'text',
'cols' => 40,
'rows' => 15,
'eval' => 'trim',
'default' => ''
]
],
'description_html' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:description_html',
'config' => [
'type' => 'text',
'cols' => 40,
'rows' => 15,
'eval' => 'trim',
'enableRichtext' => true,
'default' => ''
]
],
'tab_icon' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:tab_icon',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'tab_icon',
[
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
],
'overrideChildTca' => [
'types' => [
\TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
'showitem' => '
title,
description,
alternative,
crop,
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
'showitem' => '
--palette--;;filePalette
'
],
],
],
'maxitems' => 1
],
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
),
],
'image' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:image',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'image',
[
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
],
'overrideChildTca' => [
'types' => [
\TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
'showitem' => '
title,
description,
alternative,
crop,
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
'showitem' => '
--palette--;;filePalette
'
],
],
],
'maxitems' => 1
],
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
),
],
'images' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:images',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'images',
[
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
],
'overrideChildTca' => [
'types' => [
\TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
'showitem' => '
title,
description,
alternative,
crop,
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
'showitem' => '
--palette--;;filePalette
'
],
],
],
'maxitems' => 10
],
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
),
],
'gallery' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:gallery',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'images',
[
'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' => 'gallery',
'tablenames' => 'tx_a2gproducts_domain_model_productvariants',
'table_local' => 'sys_file',
],
'maxitems' => 20
],
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
),
],
'seo_image1x1' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:seo_image1x1',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'image',
[
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
],
'overrideChildTca' => [
'types' => [
\TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
'showitem' => '
title,
description,
alternative,
crop,
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
'showitem' => '
--palette--;;filePalette
'
],
],
],
'foreign_match_fields' => [
'fieldname' => 'seo_image1x1',
'tablenames' => 'tx_a2gproducts_domain_model_products',
'table_local' => 'sys_file',
],
'minitems' => 0,
'maxitems' => 1,
],
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
),
],
'seo_image4x3' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:seo_image4x3',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'image',
[
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
],
'overrideChildTca' => [
'types' => [
\TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
'showitem' => '
title,
description,
alternative,
crop,
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
'showitem' => '
--palette--;;filePalette
'
],
],
],
'foreign_match_fields' => [
'fieldname' => 'seo_image4x3',
'tablenames' => 'tx_a2gproducts_domain_model_products',
'table_local' => 'sys_file',
],
'minitems' => 0,
'maxitems' => 1,
],
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
),
],
'seo_image16x9' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:seo_image16x9',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'image',
[
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
],
'overrideChildTca' => [
'types' => [
\TYPO3\CMS\Core\Resource\File::FILETYPE_UNKNOWN => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
'showitem' => '
title,
description,
alternative,
crop,
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
'showitem' => '
--palette--;;filePalette
'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
'showitem' => '
--palette--;;filePalette
'
],
],
],
'foreign_match_fields' => [
'fieldname' => 'seo_image16x9',
'tablenames' => 'tx_a2gproducts_domain_model_products',
'table_local' => 'sys_file',
],
'minitems' => 0,
'maxitems' => 1,
],
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
),
],
'rel_category' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:rel_category',
'config' => [
'type' => 'select',
'renderType' => 'selectMultipleSideBySide',
'foreign_table' => 'tx_a2gproducts_domain_model_categories',
'foreign_table_where' => ' AND {#tx_a2gproducts_domain_model_categories}.{#sys_language_uid} IN (###REC_FIELD_sys_language_uid###,-1) AND {#tx_a2gproducts_domain_model_categories}.{#pid}=###CURRENT_PID### ',
'MM' => 'tx_a2gproducts_productvariants_categories_mm',
'size' => 10,
'autoSizeMax' => 30,
'maxitems' => 20,
'multiple' => 1,
'fieldControl' => [
'editPopup' => [
'disabled' => false,
],
'addRecord' => [
'disabled' => false,
],
'listModule' => [
'disabled' => true,
],
],
],
],
'rel_filter_values' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:rel_filter_values',
'config' => [
'type' => 'inline',
'foreign_table' => 'tx_a2gproducts_domain_model_filtervalues',
'foreign_field' => 'productvariants',
'foreign_table_where' => ' AND {#tx_a2gproducts_domain_model_filtervalues}.{#sys_language_uid} IN (###REC_FIELD_sys_language_uid###,-1) ',
'maxitems' => 20,
'appearance' => [
'collapseAll' => 0,
'levelLinksPosition' => 'top',
'showSynchronizationLink' => 1,
'showPossibleLocalizationRecords' => 1,
'showAllLocalizationLink' => 1
],
],
],
'rel_selectableattribute' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:rel_selectableattribute',
'config' => [
'type' => 'inline',
'foreign_table' => 'tx_a2gproducts_domain_model_selectableattribute',
'foreign_field' => 'productvariants',
'foreign_table_where' => ' AND {#tx_a2gproducts_domain_model_selectableattribute}.{#sys_language_uid} IN (###REC_FIELD_sys_language_uid###,-1) ',
'maxitems' => 20,
'appearance' => [
'collapseAll' => 0,
'levelLinksPosition' => 'top',
'showSynchronizationLink' => 1,
'showPossibleLocalizationRecords' => 1,
'showAllLocalizationLink' => 1
],
],
],
'rel_ingredients' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:rel_ingredients',
'config' => [
'type' => 'select',
'renderType' => 'selectMultipleSideBySide',
'foreign_table' => 'tx_a2gproducts_domain_model_ingredients',
'foreign_table_where' => ' AND {#tx_a2gproducts_domain_model_ingredients}.{#sys_language_uid} IN (###REC_FIELD_sys_language_uid###,-1) AND {#tx_a2gproducts_domain_model_ingredients}.{#pid}=###CURRENT_PID### ',
'MM' => 'tx_a2gproducts_ingredients_productvariants_mm',
'size' => 10,
'autoSizeMax' => 30,
'minitems' => 0,
'maxitems' => 20,
'multiple' => 1,
'fieldControl' => [
'editPopup' => [
'disabled' => false,
],
'addRecord' => [
'disabled' => false,
],
'listModule' => [
'disabled' => true,
],
],
],
],
'product' => [
'config' => array(
'type' => 'select',
'renderType' => 'selectSingle',
'foreign_table' => 'tx_a2gproducts_domain_model_products',
),
],
'rel_sizes' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:rel_sizes',
'config' => [
'type' => 'inline',
'foreign_table' => 'tx_a2gproducts_domain_model_productvariantsizes',
'foreign_table_where' => ' AND tx_a2gproducts_domain_model_productvariantsizes.sys_language_uid IN (###REC_FIELD_sys_language_uid###,-1) AND tx_a2gproducts_domain_model_productvariantsizes.pid=###CURRENT_PID### ',
'foreign_field' => 'productvariant',
'size' => 10,
'autoSizeMax' => 30,
'foreign_sortby' => 'sorting',
'minitems' => 0,
'maxitems' => 30,
'appearance' => [
'collapseAll' => 1,
'expandSingle' => 1,
],
],
],
],
];

View File

@@ -0,0 +1,158 @@
<?php
return [
'ctrl' => [
'title' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:tx_a2gproducts_domain_model_productvariantsizes',
'label' => 'title',
// 'label_userFunc' => \A2G\A2gProducts\User\Tca::class . '->productVariantTitle',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'sortby' => 'sorting',
'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' => 'nr,title,description',
'hideTable' => true,
'iconfile' => 'EXT:a2g_products/Resources/Public/Icons/fingerprint-outline-variant.png'
],
'types' => [
'1' => ['showitem' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, nr, title, path_segment, description,'
. '--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, 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_a2gproducts_domain_model_productvariantsizes',
'foreign_table_where' => 'AND {#tx_a2gproducts_domain_model_productvariantsizes}.{#pid}=###CURRENT_PID### AND {#tx_a2gproducts_domain_model_productvariantsizes}.{#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
]
],
],
'nr' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:product_nr',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim, required',
'default' => ''
],
],
'title' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:title',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim',
'default' => ''
],
],
'path_segment' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:slug',
'config' => [
'type' => 'slug',
'size' => 50,
'generatorOptions' => [
'fields' => ['title'],
'fieldSeparator' => '/',
'prefixParentPageSlug' => true,
'replacements' => [
'/' => '',
],
],
'fallbackCharacter' => '-',
'default' => ''
],
],
'description' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:description',
'config' => [
'type' => 'text',
'cols' => 40,
'rows' => 15,
'eval' => 'trim',
'default' => ''
]
],
'productvariant' => [
'config' => array(
'type' => 'select',
'renderType' => 'selectSingle',
'foreign_table' => 'tx_a2gproducts_domain_model_productvariants',
),
],
],
];

View File

@@ -0,0 +1,116 @@
<?php
return [
'ctrl' => [
'title' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:tx_a2gproducts_domain_model_selectableattribute',
'label' => 'title',
'label_userFunc' => 'A2G\\A2gProducts\\User\\FilterValuesMatcher->title',
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'cruser_id' => 'cruser_id',
'type' => 'rel_filter_option',
'versioningWS' => true,
'languageField' => 'sys_language_uid',
'transOrigPointerField' => 'l10n_parent',
'transOrigDiffSourceField' => 'l10n_diffsource',
'hideTable' => true,
'enablecolumns' => [
'disabled' => 'hidden'
],
'searchFields' => '',
'iconfile' => 'EXT:a2g_products/Resources/Public/Icons/tag.png'
],
'types' => [
'1' => ['showitem' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, title,rel_filter_option, rel_filters'],
],
'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_a2gproducts_domain_model_selectableattribute',
'foreign_table_where' => 'AND {#tx_a2gproducts_domain_model_selectableattribute}.{#pid}=###CURRENT_PID### AND {#tx_a2gproducts_domain_model_selectableattribute}.{#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
]
],
],
],
'title' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:title',
'config' => [
'type' => 'input',
'size' => 30,
'eval' => 'trim'
]
],
'rel_filter_option' => [
'exclude' => true,
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:rel_filter_option',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'foreign_table' => 'tx_a2gproducts_domain_model_filteroptions',
'foreign_table_where' => 'AND tx_a2gproducts_domain_model_filteroptions.filters = ###REC_FIELD_rel_filters### AND tx_a2gproducts_domain_model_filteroptions.sys_language_uid IN (###REC_FIELD_sys_language_uid###,-1)',
'default' => 0,
'minitems' => 0,
'maxitems' => 1,
],
'displayCond' => 'USER:A2G\\A2gProducts\\User\\FilterValuesMatcher->showOptionsSelect',
],
'rel_filters' => [
'exclude' => true,
'onChange' => 'reload',
'label' => 'LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:rel_filters',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'foreign_table' => 'tx_a2gproducts_domain_model_filters',
'foreign_table_where' => 'AND tx_a2gproducts_domain_model_filters.filter_type = 3 AND tx_a2gproducts_domain_model_filters.sys_language_uid IN (###REC_FIELD_sys_language_uid###,-1)',
'default' => 0,
'minitems' => 0,
'maxitems' => 1,
],
],
'products' => [
'config' => [
'type' => 'passthrough',
],
],
'productvariants' => [
'config' => [
'type' => 'passthrough',
],
],
],
];

View File

@@ -0,0 +1,4 @@
##################
#### TsConfig ####
##################
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:a2g_products/Configuration/TsConfig/Page/Wizards.tsconfig">

View File

@@ -0,0 +1,46 @@
################################
#### CONTENT ELEMENT WIZARD ####
################################
mod.wizards.newContentElement.wizardItems.a2gProducts {
after = common, menu, special, forms, plugins
header = LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:wizard.group.products
elements {
a2gproductslist {
iconIdentifier = a2g_products-plugin-a2gproductslist
title = LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:tx_a2g_products_a2gproductslist.name
description = LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:tx_a2g_products_a2gproductslist.description
tt_content_defValues {
CType = list
list_type = a2gproducts_a2gproductslist
}
}
a2gproductsdetail {
iconIdentifier = a2g_products-plugin-a2gproductsdetail
title = LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:tx_a2g_products_a2gproductsdetail.name
description = LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:tx_a2g_products_a2gproductsdetail.description
tt_content_defValues {
CType = list
list_type = a2gproducts_a2gproductsdetail
}
}
ingredientslist {
iconIdentifier = a2g_products-plugin-ingredientslist
title = LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:tx_a2g_products_ingredientslist.name
description = LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:tx_a2g_products_ingredientslist.description
tt_content_defValues {
CType = list
list_type = a2gproducts_ingredientslist
}
}
ingredientsdetail {
iconIdentifier = a2g_products-plugin-ingredientsdetail
title = LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:tx_a2g_products_ingredientsdetail.name
description = LLL:EXT:a2g_products/Resources/Private/Language/locallang_db.xlf:tx_a2g_products_ingredientsdetail.description
tt_content_defValues {
CType = list
list_type = a2gproducts_ingredientsdetail
}
}
}
show = *
}

View File

@@ -0,0 +1,14 @@
plugin.tx_a2gproducts_a2gproducts {
view {
# cat=altogether products/file; type=string; label=Path to template root (FE)
templateRootPath = EXT:a2g_products/Resources/Private/Templates/
# cat=altogether products/file; type=string; label=Path to template partials (FE)
partialRootPath = EXT:a2g_products/Resources/Private/Partials/
# cat=altogether products/file; type=string; label=Path to template layouts (FE)
layoutRootPath = EXT:a2g_products/Resources/Private/Layouts/
}
persistence {
# cat=altogether products//a; type=string; label=Default storage PID
storagePid =
}
}

View File

@@ -0,0 +1,115 @@
plugin.tx_a2gproducts_a2gproductslist {
view {
templateRootPaths.0 = EXT:a2g_products/Resources/Private/Templates/
templateRootPaths.1 = {$plugin.tx_a2gproducts_a2gproducts.view.templateRootPath}
partialRootPaths.0 = EXT:a2g_products/Resources/Private/Partials/
partialRootPaths.1 = {$plugin.tx_a2gproducts_a2gproducts.view.partialRootPath}
layoutRootPaths.0 = EXT:a2g_products/Resources/Private/Layouts/
layoutRootPaths.1 = {$plugin.tx_a2gproducts_a2gproducts.view.layoutRootPath}
}
persistence {
storagePid = {$plugin.tx_a2gproducts_a2gproductslist.persistence.storagePid}
#recursive = 1
}
}
plugin.tx_a2gproducts_a2gproductsdetail {
view {
templateRootPaths.0 = EXT:a2g_products/Resources/Private/Templates/
templateRootPaths.1 = {$plugin.tx_a2gproducts_a2gproducts.view.templateRootPath}
partialRootPaths.0 = EXT:a2g_products/Resources/Private/Partials/
partialRootPaths.1 = {$plugin.tx_a2gproducts_a2gproducts.view.partialRootPath}
layoutRootPaths.0 = EXT:a2g_products/Resources/Private/Layouts/
layoutRootPaths.1 = {$plugin.tx_a2gproducts_a2gproducts.view.layoutRootPath}
}
persistence {
storagePid = {$plugin.tx_a2gproducts_a2gproductsdetail.persistence.storagePid}
#recursive = 1
}
}
plugin.tx_a2gproducts_ingredientslist {
view {
templateRootPaths.0 = EXT:a2g_products/Resources/Private/Templates/
templateRootPaths.1 = {$plugin.tx_a2gproducts_a2gproducts.view.templateRootPath}
partialRootPaths.0 = EXT:a2g_products/Resources/Private/Partials/
partialRootPaths.1 = {$plugin.tx_a2gproducts_a2gproducts.view.partialRootPath}
layoutRootPaths.0 = EXT:a2g_products/Resources/Private/Layouts/
layoutRootPaths.1 = {$plugin.tx_a2gproducts_a2gproducts.view.layoutRootPath}
}
persistence {
storagePid = {$plugin.tx_a2gproducts_a2gproducts.persistence.storagePid}
#recursive = 1
}
}
plugin.tx_a2gproducts_ingredientsdetail {
view {
templateRootPaths.0 = EXT:a2g_products/Resources/Private/Templates/
templateRootPaths.1 = {$plugin.tx_a2gproducts_a2gproducts.view.templateRootPath}
partialRootPaths.0 = EXT:a2g_products/Resources/Private/Partials/
partialRootPaths.1 = {$plugin.tx_a2gproducts_a2gproducts.view.partialRootPath}
layoutRootPaths.0 = EXT:a2g_products/Resources/Private/Layouts/
layoutRootPaths.1 = {$plugin.tx_a2gproducts_a2gproducts.view.layoutRootPath}
}
persistence {
storagePid = {$plugin.tx_a2gproducts_a2gproducts.persistence.storagePid}
#recursive = 1
}
}
page.includeJSFooter.rslider = EXT:a2g_products/Resources/Public/JavaScript/rSlider.min.js
page.includeJSFooter.rslider {
disableCompression = 0
excludeFromConcatenation = 0
}
page.includeJSFooter.a2gProductsList = EXT:a2g_products/Resources/Public/JavaScript/a2gProductsList.js
page.includeJSFooter.a2gProductsList {
disableCompression = 0
excludeFromConcatenation = 0
}
page.includeJSFooter.a2gProductsSwiperInit = EXT:a2g_products/Resources/Public/JavaScript/a2gProductsSwiper.init.js
page.includeJSFooter.a2gProductsSwiperInit {
disableCompression = 0
excludeFromConcatenation = 0
}
page.includeCSS {
rslider = EXT:a2g_products/Resources/Public/Scss/rSlider.min.scss
a2gProductsList = EXT:a2g_products/Resources/Public/Scss/a2gProductsList.scss
}
a2gProductList = PAGE
a2gProductList {
typeNum = 1629140329
config {
disableAllHeaderCode = 1
admPanel = 0
additionalHeaders.10.header = Content-type:text/html
xhtml_cleaning = 0
debug = 0
no_cache = 1
}
10 = USER
10 {
userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
extensionName = A2gProducts
pluginName = A2gproductslist
vendorName = Altogether
controller = Products
settings < plugin.tx_a2gproducts_a2gproductslist.settings
persistence < plugin.tx_a2gproducts_a2gproductslist.persistence
view < plugin.tx_a2gproducts_a2gproductslist.view
}
}
config.pageTitleProviders {
product {
provider = A2G\A2gProducts\PageTitle\A2gPageTitleProvider
before = seo
}
seo {
provider = TYPO3\CMS\Seo\PageTitle\SeoTitlePageTitleProvider
before = record
}
}
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:a2g_products/Configuration/TypoScript/Canonical/setup.typoscript">
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:a2g_products/Configuration/TypoScript/Breadcrumb/setup.typoscript">

View File

@@ -0,0 +1,41 @@
[traverse(request.getQueryParams(), 'tx_a2gproducts_a2gproductsdetail/product') > 0]
page {
10 {
variables {
breadcrumbExtendedValue = COA
breadcrumbExtendedValue {
10 = USER
10 {
userFunc = A2G\A2gProducts\User\TypoScript->productBreadrumb
}
}
}
dataProcessing {
30 {
special.range = 0|-2
}
}
}
}
[end]
[traverse(request.getQueryParams(), 'tx_a2gproducts_ingredientsdetail/ingredient') > 0]
page {
10 {
variables {
breadcrumbExtendedValue = COA
breadcrumbExtendedValue {
10 = USER
10 {
userFunc = A2G\A2gProducts\User\TypoScript->ingredientBreadrumb
}
}
}
dataProcessing {
30 {
special.range = 0|-2
}
}
}
}
[end]

View File

@@ -0,0 +1,48 @@
[traverse(request.getQueryParams(), 'tx_a2gproducts_a2gproductsdetail/product') > 0]
page.headerData.20 = TEXT
page.headerData.20 {
typolink {
# hol die aktuelle Page Id
parameter.data = page:uid
# prüfe ob die Id wirklich eine Zahl ist
parameter.intval = 1
useCacheHash = 1
# füge zur URL alle Parameter hinzu
additionalParams.cObject = COA
additionalParams.cObject {
10 = TEXT
10.dataWrap = &tx_a2gproducts_a2gproductsdetail[product]={GP:tx_a2gproducts_a2gproductsdetail|product}
10.if.isTrue.data = GP:tx_a2gproducts_a2gproductsdetail|product
}
forceAbsoluteUrl = 1
returnLast = url
}
# bau mir den Meta-Tag zusammen
wrap = <link rel="canonical" href="|">
}
[global]
[traverse(request.getQueryParams(), 'tx_a2gproducts_ingredientsdetail/ingredient') > 0]
page.headerData.20 = TEXT
page.headerData.20 {
typolink {
# hol die aktuelle Page Id
parameter.data = page:uid
# prüfe ob die Id wirklich eine Zahl ist
parameter.intval = 1
useCacheHash = 1
# füge zur URL alle Parameter hinzu
additionalParams.cObject = COA
additionalParams.cObject {
10 = TEXT
10.dataWrap = &tx_a2gproducts_ingredientsdetail[ingredient]={GP:tx_a2gproducts_ingredientsdetail|ingredient}
10.if.isTrue.data = GP:tx_a2gproducts_ingredientsdetail|ingredient
}
forceAbsoluteUrl = 1
returnLast = url
}
# bau mir den Meta-Tag zusammen
wrap = <link rel="canonical" href="|">
}
[global]

View File

@@ -0,0 +1,46 @@
page.includeJSFooter.gaCheckout = EXT:a2g_products/Resources/Public/JavaScript/GoogleAnalytics/google-analytics/GaCheckout.js
page.includeJSFooter.gaCheckout {
disableCompression = 0
excludeFromConcatenation = 0
}
page.includeJSFooter.gaProduct = EXT:a2g_products/Resources/Public/JavaScript/GoogleAnalytics/google-analytics/GaProduct.js
page.includeJSFooter.gaProduct {
disableCompression = 0
excludeFromConcatenation = 0
}
page.includeJSFooter.gaProducts = EXT:a2g_products/Resources/Public/JavaScript/GoogleAnalytics/google-analytics/GaProducts.js
page.includeJSFooter.gaProducts {
disableCompression = 0
excludeFromConcatenation = 0
}
page.includeJSFooter.gaPromotion = EXT:a2g_products/Resources/Public/JavaScript/GoogleAnalytics/google-analytics/GaPromotion.js
page.includeJSFooter.gaPromotion {
disableCompression = 0
excludeFromConcatenation = 0
}
page.includeJSFooter.gaPromotions = EXT:a2g_products/Resources/Public/JavaScript/GoogleAnalytics/google-analytics/GaPromotions.js
page.includeJSFooter.gaPromotions {
disableCompression = 0
excludeFromConcatenation = 0
}
page.includeJSFooter.gaPurchase = EXT:a2g_products/Resources/Public/JavaScript/GoogleAnalytics/google-analytics/GaPurchase.js
page.includeJSFooter.gaPurchase {
disableCompression = 0
excludeFromConcatenation = 0
}
page.includeJSFooter.gaRefund = EXT:a2g_products/Resources/Public/JavaScript/GoogleAnalytics/google-analytics/GaRefund.js
page.includeJSFooter.gaRefund {
disableCompression = 0
excludeFromConcatenation = 0
}
page.includeJSFooter.gaRefunds = EXT:a2g_products/Resources/Public/JavaScript/GoogleAnalytics/google-analytics/GaRefunds.js
page.includeJSFooter.gaRefunds {
disableCompression = 0
excludeFromConcatenation = 0
}
page.includeJSFooter.gaEcommerce = EXT:a2g_products/Resources/Public/JavaScript/GoogleAnalytics/A2gGaEcommerce.js
page.includeJSFooter.gaEcommerce {
disableCompression = 1
excludeFromConcatenation = 1
}

View File

@@ -0,0 +1,2 @@
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:a2g_products/Configuration/TypoScript/Base/constants.typoscript">

View File

@@ -0,0 +1,3 @@
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:a2g_products/Configuration/TypoScript/Base/setup.typoscript">
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:a2g_products/Configuration/TypoScript/GoogleAnalytics/setup.typoscript">