[英]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.