Typo3 TCA 覆盖 tt_content 将调色板添加到现有选项卡 (--div--)

Typo3 TCA override tt_content add palette to existing tab (--div--)

我尝试将调色板添加到现有选项卡 'General' 下的 tt_content table。 这是我的 tt_conten.php 文件。

<?php
defined('TYPO3_MODE') or die();

// Feld definieren
$tempColumns = [
 'tx_imagetext_color' => [
 'label' => 'color',
 'exclude' => 0,
 'config' => [
 'type' => 'input',
 'eval' => 'trim',
 ]
 ],
 'tx_imagetext_image' => [
 'label' => 'image',
    'config' => [
    'type' => 'select',
    'renderType' => 'selectSingle',
    'special' => 'languages',
    'items' => [
        [
        'LLL:EXT:lang/locallang_general.xlf:LGL.allLanguages',
        -1,
        'flags-multiple'
        ]
    ],
    'default' => 0,
    ],
 ]
];

// Feld der allgemeinen Datensatzbeschreibung hinzufügen - noch keine Ausgabe im Backend!
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tt_content', $tempColumns);

// Feld einer neuen Palette hinzufügen
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette(
        'tt_content',
        'imagetext',
        'tx_imagetext_color, tx_imagetext_image'
        );

// Neue Palette dem Tag hinzufügen, nach dem Titel - Dadurch Anzeige im Backend
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
 'tt_content',
 '--div--;general,
 --palette--;;imagetext',
 '',
 ''
); 

Typo3 使用正确的调色板在末尾创建了一个新将军。 但我希望调色板应该出现在已经存在的常规选项卡中。

我怎样才能做到这一点?

--div--;general 显式创建一个名为“general”的新选项卡。

如果您只想让您的新调色板紧跟在“常规”选项卡中的某个其他字段之后,您只需将该字段指定为 addToAllTCAtype 函数的最后一个参数。当您写“nach dem Titel”时,我假设您希望它出现在 header 字段之后。以下在 TYPO3 10 中对我有用,但我认为它在 v. 9 中应该是相同的。5.xx

// Neue Palette hinzufügen, nach dem Titel - Dadurch Anzeige im Backend
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
    'tt_content',
    '--palette--;;imagetext',
    '',
    'after:header'
);

多一点解释

addToAllTCAtypes 有四个参数:

  1. 参数:Table 为
  2. 添加字段
  3. 参数:新字段(或者在你的情况下调色板)
  4. 参数:要将此字段添加到的类型列表(在您的情况下 空,因为你希望该字段出现在所有类型中,我假设)
  5. 参数:添加字段的位置。可以是“before:fieldname”、“after:fieldname”或“replace:fieldname”)