在 "Files/Links Upload" tt_content 中添加新字段

Add new fields in "Files/Links Upload" tt_content

我使用 File Links [uploads] 内容元素来显示文件列表,我需要在这个 CE 上添加一个字段来显示描述。

我在文档中找到了这个:https://docs.typo3.org/m/typo3/reference-coreapi/8.7/en-us/ExtensionArchitecture/ExtendingTca/Examples/#example-2-extending-the-tt-content-table 但由于缺乏 PHP 和 T3 自定义技能,我无法应用它。

我应该在哪个文件中添加以下代码:

CREATE TABLE tt_content (
    tx_files_description tinyint(4) DEFAULT '0' NOT NULL
);

如何自定义以下代码? :

$temporaryColumn = array(
    'tx_files_description' => array (
            'exclude' => 0,
            'label' => 
'LLL:EXT:examples/Resources/Private/Language/locallang_db.xlf:tt_content.tx_files_description',
            'config' => array (
                    'type' => 'check',
            )
    )
 );
  \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
    'tt_content',
    $temporaryColumn
  );
 \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette(
    'tt_content',
    'visibility',
    'tx_files_description',
    'after:linkToTop'
 );

由于您创建了自己的内容元素,所以我真的不知道如何定位该元素,但我能做的就是帮助您创建它。我刚刚在我的 TYPO3 安装上进行了测试,它可以正常工作。

ext_tables.sql

CREATE TABLE tt_content (
    tx_files_description text,
);

yourExtension/Configuration/TCA/Overrides/tt_content.php

$temporaryColumn = [
'tx_files_description' => [
    'exclude' => true,
    'label' => 'LLL:EXT:your_extension_key/Resources/Private/Language/locallang.xlf:tt_content.tx_files_description',
    'config' => [
        'type' => 'text',
        'enableRichtext' => false,
    ],
 ],
];

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

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
   'tt_content',
   'tx_files_description',
   'general',
   'before:media'

 );

假设您使用的是 TYPO3 v9,请转到维护模块并按 分析数据库,然后清除所有缓存。

如果您使用的是 TYPO3 v7-v8,则转到安装模块并 运行 比较数据库(类似的东西)。清除缓存。

然后在您的扩展选项卡上:

此致

为什么要这么复杂?

tt_content记录已经有很多字段不用于呈现 CType uploads

连描述字段都可用,所以它不是 RTE 字段。 (所有CE都有此字段仅供后台参考)

你只需要在有限元渲染中使用它,虽然你需要修改流体模板。


如果您需要 RTE 字段,您应该在 BE 表单中激活字段 bodytext,因为它带有正确的定义和呈现。
您仍然需要在流体模板中插入呈现的字段。