0

我正在向我的 TYPO3 添加新的内容类型,并且我想使用 FlexForms 来定义每个内容类型选项表单。

我遵循了这个例子:https ://docs.typo3.org/typo3cms/extensions/fluid_styled_content/latest/AddingYourOwnContentElements/

并修改它以使用此示例中的 FlexForms:https ://wiki.typo3.org/Extension_Development,_using_Flexforms

但我相信我不太了解以下设置Configuration/TCA/Overrrides/tt_contant.php

// Adds content new content elements
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPlugin(
    [
        'LLL:EXT:lu_content/Resources/Private/Language/locallang.xlf:contacts.title',
        'lu_content__contacts',
        \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('lu_content').'Resources/Public/Icons/Contacts.svg',
    ],
    'CType',
    'lu_content'
);

$GLOBALS['TCA']['tt_content']['types']['lu_content__contacts']['showitem']                       = 'CType;;;1-1-1,pi_flexform;;;1-1-1';
$GLOBALS['TCA']['tt_content']['columns']['pi_flexform']['config']['ds'][',lu_content__contacts'] = 'FILE:EXT:lu_content/Configuration/FlexForms/Contacts.xml';

表单有效,但看起来像这样: 在此处输入图像描述

如何让表单属于插件选项?

以及如何使标题/标题用于列表视图?目前我在内容列表中保存后得到 [notitle]。

在此处输入图像描述

先感谢您。

PS:我目前正在 TYPO3 v7 上开发,但支持 v8。

4

1 回答 1

1

选项卡的文本以及任何选项卡和字段的排列是为通用插件定义的

$GLOBALS['TCA']['tt_content']['types']['list']

如果您已经定义了自己的 CType,那么您很可能希望定义自己的字段、调色板和类型,隐藏标准字段并可能替换默认标签。tt_content 的整个配置非常复杂,因为它用于所有不同的内容元素,可以在下面的后端中看到System -> Configuration -> GLOBALS[TCA]

在此处输入图像描述

最简单的选择是替换标签中的标签 $GLOBALS['TCA']['tt_content']['types']['list']
之前/默认值:

--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,--palette--;;general,--palette--;;headers,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.plugin,list_type;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:list_type_formlabel,pages;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:pages.ALT.list_formlabel,recursive,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance,--palette--;;frames,--palette--;;appearanceLinks,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,--palette--;;language,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access,--palette--;;hidden,--palette--;;access,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories,--div--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_category.tabs.category,categories,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes,rowDescription,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended

之后/位置填写自己的标签:(查找###YOUR_LABEL###):

--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,--palette--;;general,--palette--;;headers,--div--;###YOUR_LABEL###,list_type;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:list_type_formlabel,pages;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:pages.ALT.list_formlabel,recursive,--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance,--palette--;;frames,--palette--;;appearanceLinks,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,--palette--;;language,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access,--palette--;;hidden,--palette--;;access,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:categories,--div--;LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_category.tabs.category,categories,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:notes,rowDescription,--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:extended

一个更困难的方法是在$GLOBALS['TCA']['tt_content']['types'].

在这里您可以找到有关 TCA 的文档。

对于您的情况,以下章节特别有趣:

但是,如果您想更改单个字段的标签或其他配置,则必须参考有关的章节/配置。
在区域ctrl中,您仍然可以定义一些通用选项,例如排序字段或复制整个元素时的行为,请查看该章节以了解所有选项。还在那里配置了所需的默认标签和值字段

$GLOBALS['TCA']['tt_content']['ctrl']['label']

也可以将两个或多个字段组合为默认显示:

$GLOBALS['TCA']['tt_content']['ctrl']['label'] = 'header';
$GLOBALS['TCA']['tt_content']['ctrl']['label_alt'] = 'subheader';

您可能仍想添加该选项

$GLOBALS['TCA']['tt_content']['ctrl']['label_alt_force'] = 1;

为插件配置表单甚至可能需要相当长的时间才能理解所有选项,但通常有很多选项可以根据许多需求对其进行个性化。甚至可以定义用户函数来处理和显示现有选项未涵盖的表单中的自己的选项。

于 2018-06-09T08:38:29.377 回答