TYPO3中如何为tx_news添加调色板?以及如何将核心gallerySettings调色板添加至tx_news媒体标签页并在详情模板中使用?
解决tx_news的两个调色板需求
针对你的两个TYPO3 tx_news技术需求,我来一步步帮你梳理正确的实现方式:
一、将核心gallerySettings调色板添加到tx_news媒体标签页
你尝试的代码方向是对的,但有个关键细节需要调整才能生效:文件放错位置啦!
你应该把代码放在站点包的Configuration/TCA/Overrides/tx_news_domain_model_media.php文件中,而不是tt_content.php——因为我们要修改的是新闻媒体模型(tx_news_domain_model_media)的TCA配置,不是普通内容元素的配置。
正确的代码实现:
<?php defined('TYPO3') or die(); \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( 'tx_news_domain_model_media', '--palette--;;gallerySettings', '', 'after:fal_media' );
验证效果的步骤:
- 务必清除TYPO3的配置缓存(光清前端缓存不够哦)
- 打开任意新闻记录的「媒体」标签页,检查文件上传字段(
fal_media)下方,应该会出现gallerySettings的相关选项(比如图片宽高、裁剪比例这些) - 在新闻详情模板里调用这些设置也很简单,直接通过媒体对象的
gallerySettings属性获取:
<f:if condition="{media.gallerySettings.width}"> <img src="{media.falMedia.originalResource.publicUrl}" width="{media.gallerySettings.width}" height="{media.gallerySettings.height}" alt="{media.alternative}" /> </f:if>
二、在tx_news中添加自定义调色板
如果是要添加自己的专属调色板(不是复用核心的gallerySettings),可以按以下两步来:
1. 先定义你的自定义调色板
还是在Configuration/TCA/Overrides/tx_news_domain_model_media.php(如果要给新闻主模型加,就用tx_news_domain_model_news.php)里,先注册调色板:
// 自定义调色板,把custom_field1、custom_field2换成你实际要用到的字段 $GLOBALS['TCA']['tx_news_domain_model_media']['palettes']['my_custom_palette'] = [ 'showitem' => 'custom_field1, custom_field2', 'canNotCollapse' => true, // 可选:设置调色板是否允许折叠 ];
2. 将调色板添加到对应位置
用addToAllTCAtypes把调色板插入到你想要的位置:
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( 'tx_news_domain_model_media', '--palette--;;my_custom_palette', '', 'after:fal_media' // 可以换成before:fal_media或者其他字段位置 );
小提醒:
如果调色板里用到的是自定义字段,得先通过ExtensionManagementUtility::addTCAcolumns把字段添加到TCA里,不然调色板会显示空白哦!
内容的提问来源于stack exchange,提问作者user500665
相关产品推荐
相关产品推荐

