typo3 v11 中添加图像格式选择框

问题描述 投票:0回答:1

我在typo3版本的

images only
images and text
内容元素上进行了图像处理设置。它显示不同的图像格式,如下所示。

现在我想添加一个选择下拉列表,可以选择四种图像格式之一并将其保存在数据库中。我成功地在 tt_content 表中创建了一个选择下拉列表和一个新列。这些值正在数据库中更新。尽管如此,我可以将选择下拉列表放置在内容元素的“常规”或“访问”选项卡中

我的问题是,由于某种原因,我无法使选择下拉列表出现在“图像”选项卡中。有人可以指导我为什么在下面的代码中用“常规”替换“图像”不起作用吗?

我的代码

$temporaryColumn = array(
    'image_format' => array (
        'exclude' => 0,
        'label' => 'Image format',
        'config' => [
            'type' => 'select',
            'renderType' => 'selectSingle',
            'items' => [
                ['Default',0,],
                ['Quadrat',1,],
                ['Landscape',2,],
                ['Portrait',3,],
                ['Teaser',4,],
            ],
            'size' => 1,
            'maxitems' => 1,
        ]
    )
);

$table = 'tt_content';
$column = 'image_format';
$GLOBALS['TCA'][$table]['columns'][$column] = $temporaryColumn;

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
    'tt_content',
    $temporaryColumn
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette(
    'tt_content',
    'general',
    'image_format',

);
typo3 typo3-11.x
1个回答
0
投票

您正在呼叫

addFieldsToPalette()
。因此,您将字段放入palette中,而不是直接放入选项卡中。这就是为什么您必须使用现有 palette 的标识符作为第二个参数。

tt_content
有以下调色板:

如您所见,有“常规”和“访问”调色板(在具有相同名称的选项卡旁边)。但不存在调色板“图像”。

将新字段添加到现有调色板中

选择一个现有调色板并通过

ExtensionManagementUtility::addFieldsToPalette()
添加新字段:

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette(
    'tt_content',
    'mediaAdjustments',
    'image_format',

);

将新字段添加到现有选项卡中

这可以通过将该字段放置在相应

showitem
type
列表中的特定位置来完成。最简单的方法是使用
ExtensionManagementUtility::addToAllTCAtypes()
:

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
    'tt_content',
    'image_format',
    '',
    'before:image'
);
© www.soinside.com 2019 - 2024. All rights reserved.