TYPO3 8.7.4 新闻6.0.0
是否可以使用第二个容器在news_extend扩展中扩展新闻? (比如contentElements) 目标是将第二个容器放在详细信息页面的相关内容中。
有例子吗?
答案 0 :(得分:3)
是的,这很容易。您需要向数据库添加字段,在TCA中配置它,扩展新闻模型并调整详细模板。
CREATE TABLE tx_news_domain_model_news ( tx_newsextend_content_elements_second text );
$newNewsColumns = [ 'tx_newsextend_content_elements_second' => [ // .... here copy the original 'content_elements' field's config from ext news' TCA. update the label to yours. ]; \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tx_news_domain_model_news', $newNewsColumns); \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes('tx_news_domain_model_news', 'tx_newsextend_content_elements_second', '', 'after:content_elements');
... <trans-unit id="tx_news_domain_model_news.tx_newsextend_content_elements_second"> <source>Additional content elements</source> </trans-unit>
namespace [my vendor]\NewsExtend\Domain\Model; class News extends \GeorgRinger\News\Domain\Model\News { // here copy all uses of contentElement field from original model, only name it txNewsextendContentElementsSecond. // watch whether it's only declared property and getter/setter (simple fields), or something more is done in the model and do it the same way as there. // tip: see getContentElementIdList() method }
$GLOBALS['TYPO3_CONF_VARS']['EXT']['news']['classes']['Domain/Model/News'][] = 'news_extend';
<f:if condition="{newsItem.txNewsExtendContentElementsSecond}"> <!-- content elements second --> <f:cObject typoscriptObjectPath="lib.tx_news.contentElementRendering">{newsItem.txNewsExtendContentElementsSecondIdList}</f:cObject> </f:if>
如果您复制粘贴它,上面可能不会正常工作,我是从笔记中写的。但它会帮助你理解这个想法。祝你好运
答案 1 :(得分:0)
这应该有效。只需按照文档
中的说明扩展新闻标签和模型