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
有四个参数:
- 参数:Table 为
添加字段
- 参数:新字段(或者在你的情况下调色板)
- 参数:要将此字段添加到的类型列表(在您的情况下
空,因为你希望该字段出现在所有类型中,我假设)
- 参数:添加字段的位置。可以是“before:fieldname”、“after:fieldname”或“replace:fieldname”)
我尝试将调色板添加到现有选项卡 '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
有四个参数:
- 参数:Table 为 添加字段
- 参数:新字段(或者在你的情况下调色板)
- 参数:要将此字段添加到的类型列表(在您的情况下 空,因为你希望该字段出现在所有类型中,我假设)
- 参数:添加字段的位置。可以是“before:fieldname”、“after:fieldname”或“replace:fieldname”)