簡體   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