[英]How to change the position of a column in the TYPO3 TCA?
我想将一列从一个选项卡移动到另一个选项卡。 有没有比手动重写types
定义更好的方法,这对于更改 TCA 的扩展更新不是很依赖?
这不是 100% 的故障安全,因为仍然可能有扩展搞砸了,但你能得到的最接近的将是利用ExtTablesInclusionPostProcessing
事件并将addToAllTCAtypes
放入调用方法,因为这不仅会添加新字段,甚至将现有字段放到另一个选项卡:
<?php
declare(strict_types=1);
namespace Vendor\Extension\EventListener;
use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
/**
* Class ExtTablesInclusionPostProcessing
*/
class ExtTablesInclusionPostProcessing
{
/**
* Function which may process data created / registered by extTables
* scripts (f.e. modifying TCA data of all extensions)
*
* @param AfterTcaCompilationEvent $event
*/
public function __invoke(AfterTcaCompilationEvent $event): void
{
ExtensionManagementUtility::addToAllTCAtypes('tt_content', 'fieldname', '', 'after:fieldname_in_the_other_tab');
}
}
要删除之前的现有字段,您可以使用此技巧: https://stackoverflow.com/a/59179916/2333754
最后,为了更安全,您可以确保在您自己的扩展之前加载其他扩展,方法是将它们放入composer.json
的suggest
部分。
通过安装扩展tcabuilder
,可以在 TCA 中进行简单的更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.