0

我通过添加一列扩展了 sys_file_metadata 表。表中存在新输入的列,但该字段未在 flexform 中显示。我错过了什么吗?

4

1 回答 1

0

您必须将您的字段添加到 TCA 列和showitem

<?php

use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;

defined('TYPO3_MODE') || die();

$tempColumns = [
    'protected_file' => [
        'exclude' => true,
        'label'   => 'LLL:EXT:spt_downloads/Resources/Private/Language/locallang_db.xlf:tx_sptdownloads_domain_model_downloadmanager.protected_file',
        'config'  => [
            'type'    => 'check',
            'items'   => [
                '1' => [
                    '0' => 'LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:labels.enabled'
                ]
            ],
            'default' => 0,
        ]
    ]
];

ExtensionManagementUtility::addTCAcolumns('sys_file_metadata', $tempColumns);
ExtensionManagementUtility::addToAllTCAtypes('sys_file_metadata', 'protected_file');

重要的是不要忘记addTCAcolumnsand addToAllTCAtypes。第一个将您的字段添加到 TCA,第二个通过将字段放入showitemtca 使该字段在元素的编辑器中可见。

您还将此代码放入spt_downloads/Configuration/TCA/Overrides/sys_file_metadata.php. 在 an 中使用此代码已ext_tables.php被弃用并且不再起作用。

于 2019-12-05T10:12:53.857 回答