在 "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
,因为它带有正确的定义和呈现。
您仍然需要在流体模板中插入呈现的字段。
我使用 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
,因为它带有正确的定义和呈现。
您仍然需要在流体模板中插入呈现的字段。