【发布时间】:2020-09-14 07:45:06
【问题描述】:
如何正确地将自定义图像字段添加到 tt_content ?我使用 Overrides/tt_content.php 和 ext_tables.sql 制作了第一部分,因此我可以在后端看到新字段,在前端上下文中我得到 data.tx_pnbase_icon。
但是我无法在后端选择图像,也不会保存,即使带有文件列表的弹出窗口有效。
我是否必须告诉 tt_content 将该字段与 sys_file_reference(在 Typoscript 中)连接起来?
或者,我什至必须扩展 Content 模型?
<?php
$temporaryColumn = array(
'tx_pnbase_icon' => [
'label' => 'Icon für Inhalt',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'tx_pnbase_icon',
[
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFilegallery'
],
'foreign_types' => [
'0' => [
'showitem' => '
--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_gallery.imageoverlayPalette;imageoverlayPalette,
--palette--;;filePalette'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => [
'showitem' => '
--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_gallery.imageoverlayPalette;imageoverlayPalette,
--palette--;;filePalette'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
'showitem' => '
--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_gallery.imageoverlayPalette;imageoverlayPalette,
--palette--;;filePalette'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => [
'showitem' => '
--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_gallery.imageoverlayPalette;imageoverlayPalette,
--palette--;;filePalette'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => [
'showitem' => '
--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_gallery.imageoverlayPalette;imageoverlayPalette,
--palette--;;filePalette'
],
\TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => [
'showitem' => '
--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_gallery.imageoverlayPalette;imageoverlayPalette,
--palette--;;filePalette'
]
],
'foreign_match_fields' => [
'fieldname' => 'tx_pnbase_icon',
'tablenames' => 'tt_content',
'table_local' => 'sys_file',
],
'maxitems' => 1
],
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
),
],
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
'tt_content',
$temporaryColumn
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette(
'tt_content',
'appearanceLinks', // layout
'tx_pnbase_icon',
'after:layout' // 'after:' layout
);
在 ext_tables.sql 中
CREATE TABLE tt_content (
tx_pnbase_icon int(11) unsigned NOT NULL default '0'
);
【问题讨论】:
-
您能在
Overrides/tt_content.php中分享您的PHP 代码吗?我也不完全理解是否无法选择图像并存储它,或者是否只是在前端检索图像的问题。 -
我已经从 Overrides/tt_content.php 添加了代码
-
谢谢,你能回答我的第二个问题吗?您是否还添加了 ext_tables.sql 或使用新字段 tx_pnbase_icon 的新列调整现有的?
-
对不起,没有意识到你的第二个问题;但我很感激你愿意帮助我!我将扩展我原来的问题。
-
很奇怪;现在突然我可以选择一个图像并保存它!?但是如何获得正确的原始图像文件,而不仅仅是前端的“1”?