在“文件/链接上传”中添加新字段tt_content

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

我使用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-9.x
2个回答
0
投票

由于您创建了自己的内容元素,所以我真的不知道如何定位元素,但是我可以做的是帮助您创建它。我刚刚在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,则转到安装模块并运行比较数据库(类似)。清除缓存。

然后在扩展标签上:

enter image description here

最诚挚的问候


0
投票

为什么这么复杂?

[tt_content记录已经具有很多字段,这些字段不用于呈现CType uploads

即使描述字段可用,因此也不是RTE字段。 (所有CE都在此字段中提供仅供后端使用的信息)

您只需要在FE渲染中使用它,尽管您需要修改流体模板。


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

© www.soinside.com 2019 - 2024. All rights reserved.