TYPO3 - 通过自定义内容元素更改编辑页面上自己的字段
TYPO3 - changing own Field on edit page by custom content element
我使用 TYPO3 版本创建了一个自定义内容元素。 10.4.21,但我有问题。
问题:在内容元素的每个编辑页面上显示相同的字段。
我只想在我的自定义内容元素(对于我的 flipbox-content 元素)上使用自己的字段。但是如果我 select 例如一个常规的文本元素,那么我也可以通过文本元素在编辑页面上看到我自己的字段。
我把代码写在TCA/Overrides/tt_content.php
:
###############################################
# Front side #
###############################################
// front side header
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
'tt_content',
[
'tx_pagesaddfields_frontsideheader' => [
'exclude' => 0,
'label' => 'Front side header',
'config' => [
'type' => 'text',
'renderType' => 'input',
'items' => [
[
0 => '',
1 => ''
]
],
],
],
]
);
// front side bodytext
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
'tt_content',
[
'tx_pagesaddfields_frontsidebodytext' => [
'label' => 'Front side bodytext',
'config' => [
'type' => 'text',
'cols' => 40,
'rows' => 15,
'enableRichtext' => true,
],
],
]
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette(
'tt_content',
'general',
'tx_pagesaddfields_frontsideheader, tx_pagesaddfields_frontsidebodytext',
'after:tx_container_parent'
);
###############################################
# Back side #
###############################################
// back side header
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
'tt_content',
[
'tx_pagesaddfields_backsideheader' => [
'exclude' => 0,
'label' => 'Back side header',
'config' => [
'type' => 'text',
'renderType' => 'input',
'items' => [
[
0 => '',
1 => ''
]
],
],
],
]
);
// back side bodytext
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
'tt_content',
[
'tx_pagesaddfields_backsidebodytext' => [
'label' => 'Back side bodytext',
'config' => [
'type' => 'text',
'cols' => 40,
'rows' => 15,
'enableRichtext' => true,
],
],
]
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette(
'tt_content',
'general',
'tx_pagesaddfields_backsideheader, tx_pagesaddfields_backsidebodytext',
'after:tx_pagesaddfields_frontsidebodytext'
);
我知道,因为我写了“addTCAcolumns('tt_content')。但我不知道如何重写它们,让我的新字段只显示在我的自定义编辑页面上。
修改页面是否正确?:
https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ExtensionArchitecture/ExtendingTca/Examples/Index.html
(通过示例 1)和
https://docs.typo3.org/m/typo3/reference-tca/master/en-us/ColumnsConfig/Type/User/Index.html#columns-user?
我尝试这样做,但它在我的网站上不起作用。不幸的是,我没有足够的经验PHP...如果你知道其他网站或者如果你能在这里解释,请在这里写下来。
我希望有人能帮助我。谢谢。
最好将一个文件添加到每个自定义内容元素 TCA/Overrides/
中。名称由您决定,TYPO3 会读取此文件夹中的所有 .php
个文件。 content_element_<your_ctype>.php
或 tt_content_<your_ctype>.php
经常用作名称。
在这里您可以看到它是如何在 bootstrap_package
中为具有 CType card_group
的自定义内容元素完成的
在第 42 行 $GLOBALS['TCA']['tt_content']['types']['card_group']
中,配置被限制为 ['(C)type']['card_group']
并且 'showitem' => '
告诉 TYPO3 什么以及如何显示该内容元素的字段。
从第 70 行您可以看到如何设置新字段,在第 49 行您可以看到它是如何添加的。
我使用 TYPO3 版本创建了一个自定义内容元素。 10.4.21,但我有问题。
问题:在内容元素的每个编辑页面上显示相同的字段。
我只想在我的自定义内容元素(对于我的 flipbox-content 元素)上使用自己的字段。但是如果我 select 例如一个常规的文本元素,那么我也可以通过文本元素在编辑页面上看到我自己的字段。
我把代码写在TCA/Overrides/tt_content.php
:
###############################################
# Front side #
###############################################
// front side header
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
'tt_content',
[
'tx_pagesaddfields_frontsideheader' => [
'exclude' => 0,
'label' => 'Front side header',
'config' => [
'type' => 'text',
'renderType' => 'input',
'items' => [
[
0 => '',
1 => ''
]
],
],
],
]
);
// front side bodytext
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
'tt_content',
[
'tx_pagesaddfields_frontsidebodytext' => [
'label' => 'Front side bodytext',
'config' => [
'type' => 'text',
'cols' => 40,
'rows' => 15,
'enableRichtext' => true,
],
],
]
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette(
'tt_content',
'general',
'tx_pagesaddfields_frontsideheader, tx_pagesaddfields_frontsidebodytext',
'after:tx_container_parent'
);
###############################################
# Back side #
###############################################
// back side header
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
'tt_content',
[
'tx_pagesaddfields_backsideheader' => [
'exclude' => 0,
'label' => 'Back side header',
'config' => [
'type' => 'text',
'renderType' => 'input',
'items' => [
[
0 => '',
1 => ''
]
],
],
],
]
);
// back side bodytext
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
'tt_content',
[
'tx_pagesaddfields_backsidebodytext' => [
'label' => 'Back side bodytext',
'config' => [
'type' => 'text',
'cols' => 40,
'rows' => 15,
'enableRichtext' => true,
],
],
]
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette(
'tt_content',
'general',
'tx_pagesaddfields_backsideheader, tx_pagesaddfields_backsidebodytext',
'after:tx_pagesaddfields_frontsidebodytext'
);
我知道,因为我写了“addTCAcolumns('tt_content')。但我不知道如何重写它们,让我的新字段只显示在我的自定义编辑页面上。
修改页面是否正确?: https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ExtensionArchitecture/ExtendingTca/Examples/Index.html (通过示例 1)和 https://docs.typo3.org/m/typo3/reference-tca/master/en-us/ColumnsConfig/Type/User/Index.html#columns-user?
我尝试这样做,但它在我的网站上不起作用。不幸的是,我没有足够的经验PHP...如果你知道其他网站或者如果你能在这里解释,请在这里写下来。
我希望有人能帮助我。谢谢。
最好将一个文件添加到每个自定义内容元素 TCA/Overrides/
中。名称由您决定,TYPO3 会读取此文件夹中的所有 .php
个文件。 content_element_<your_ctype>.php
或 tt_content_<your_ctype>.php
经常用作名称。
在这里您可以看到它是如何在 bootstrap_package
中为具有 CType card_group
在第 42 行 $GLOBALS['TCA']['tt_content']['types']['card_group']
中,配置被限制为 ['(C)type']['card_group']
并且 'showitem' => '
告诉 TYPO3 什么以及如何显示该内容元素的字段。
从第 70 行您可以看到如何设置新字段,在第 49 行您可以看到它是如何添加的。