繁体   English   中英

如何更改 TYPO3 TCA 中某列的 position?

[英]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.jsonsuggest部分。

通过安装扩展tcabuilder ,可以在 TCA 中进行简单的更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM