- typo3/
- Typo3 tx_新闻:使用第二个容器扩展$contentElements
Typo3 tx_新闻:使用第二个容器扩展$contentElements
Typo3 tx_新闻:使用第二个容器扩展$contentElements,typo3,tx-news,Typo3,Tx News,类型3 8.7.4
新闻6.0.0
是否可以用另一个容器在新闻扩展中扩展新闻?(如内容元素)
目标是将第二个容器放置在详细信息页面的相关内容中
有没有一个例子?这应该行得通。只需按照文档中的描述扩展新闻tca和模型,这应该是可行的。只需扩展文档中描述的新闻tca和模型是的,很简单。您需要向数据库中添加字段,在TCA中配置它,扩展新闻模型并调整细节模板
在news\u extend/ext\u tables.sql中添加:
创建表tx\u news\u domain\u model\u news(
类型3 8.7.4
新闻6.0.0
是否可以用另一个容器在新闻扩展中扩展新闻?(如内容元素)
目标是将第二个容器放置在详细信息页面的相关内容中
有没有一个例子?这应该行得通。只需按照文档中的描述扩展新闻tca和模型,这应该是可行的。只需扩展文档中描述的新闻tca和模型是的,很简单。您需要向数据库中添加字段,在TCA中配置它,扩展新闻模型并调整细节模板
在news\u extend/ext\u tables.sql中添加:
创建表tx\u news\u domain\u model\u news(
发送消息扩展内容元素第二文本
);
在news\u extend/Configuration/TCA/Overrides/tx\u news\u domain\u model\u news.php中:
$newNewsColumns=[
“发送新闻扩展内容元素秒”=>[
//..此处从ext news“TCA”复制原始“content_elements”字段的配置。将标签更新为您的标签。
];
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tx\u news\u domain\u model\u news',$newnewspolumns);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes('tx\u news\u domain\u model\u news','tx\u news扩展内容元素\u second','after:content\u elements');
在news\u extend/Resources/Private/Language/locallang\u db.xlf中添加:
...
附加内容元素
news\u extend/Classes/Domain/Model/news.php:
命名空间[我的供应商]\NewsExtend\Domain\Model;
类新闻扩展\GeorgRinger\News\Domain\Model\News{
//这里复制原始模型中contentElement字段的所有用法,仅将其命名为txNewsextendContentElementsSecond。
//观察它是否只是声明的属性和getter/setter(简单字段),或者在模型中做了更多的事情,并以与模型相同的方式执行。
//提示:请参阅getContentElementIdList()方法
}
将您的扩展注册为新闻模型扩展类的提供程序:
在news\u extend/ext\u localconf.php中添加:
$GLOBALS['TYPO3_CONF_VARS']['EXT']['news']['classes']['Domain/Model/news'][]='news_extend';
现在,您可以在模板中使用此选项:
{newsItem.txNewsExtendedContentElementsSecondList}
如果您复制粘贴它,上面的内容可能不会起作用,我是从我的笔记中写出来的。但它将帮助您了解这个想法。祝您好运是的,很简单。您需要向数据库添加字段,在TCA中配置它,扩展新闻模型并调整详细信息模板
在news\u extend/ext\u tables.sql中添加:
创建表tx\u news\u domain\u model\u news(
发送消息扩展内容元素第二文本
);
在news\u extend/Configuration/TCA/Overrides/tx\u news\u domain\u model\u news.php中:
$newNewsColumns=[
“发送新闻扩展内容元素秒”=>[
//..此处从ext news“TCA”复制原始“content_elements”字段的配置。将标签更新为您的标签。
];
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tx\u news\u domain\u model\u news',$newnewspolumns);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes('tx\u news\u domain\u model\u news','tx\u news扩展内容元素\u second','after:content\u elements');
在news\u extend/Resources/Private/Language/locallang\u db.xlf中添加:
...
附加内容元素
news\u extend/Classes/Domain/Model/news.php:
命名空间[我的供应商]\NewsExtend\Domain\Model;
类新闻扩展\GeorgRinger\News\Domain\Model\News{
//这里复制原始模型中contentElement字段的所有用法,仅将其命名为txNewsextendContentElementsSecond。
//观察它是否只是声明的属性和getter/setter(简单字段),或者在模型中做了更多的事情,并以与模型相同的方式执行。
//提示:请参阅getContentElementIdList()方法
}
将您的扩展注册为新闻模型扩展类的提供程序:
在news\u extend/ext\u localconf.php中添加:
$GLOBALS['TYPO3_CONF_VARS']['EXT']['news']['classes']['Domain/Model/news'][]='news_extend';
现在,您可以在模板中使用此选项:
{newsItem.txNewsExtendedContentElementsSecondList}
如果你复制粘贴它,上面的内容可能不管用,我是根据我的笔记写的。但这将帮助你了解这个想法。祝你好运非常感谢。我想缺少一个表(新tca中也有更改):tx_news_related_news_2模拟tx_news_related_news_2。没有此表,我不会将两个容器分开。非常感谢。我认为缺少一个表(新tca中也有更改):tx_news_related_news_2模拟tx_news_related_news。没有此表,我不会将两个容器分开。
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>