我需要关于新闻(和一些TYPO3)的急速课程。我想进一步“显示什么”插件选项,以显示自定义的新闻列表。
我(相信)了解如何在类newsController中定义新的mylistAction方法,以及相应的mylist.html模板。
我想念的是如何在BE模块中获得(工作)mylist选项以将插件插入页面。 我不确定还需要更新什么以及如何更新(TCA,语言文件,TS,...)
感谢您的帮助,干杯,马里奥
----- 编辑和已解决 我做到了!
listmAction()
NewsController.php
listm.html
在Configuration/Flexforms/flexform_news.xml
内我添加了一行:
<numIndex index="22"> <numIndex index="0">LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.mode.news_listm </numIndex> <numIndex index="1">News->listm</numIndex> </numIndex>
locallang_be.xlf
内我添加了行
<trans-unit id="flexforms_general.mode.news_listm" xml:space="preserve"> <source>List m view</source> </trans-unit>
现在我可以将新闻插件插入到具有
的页面中
新的listm选项,并呈现listm模板。 (似乎我也需要删除缓存)。好!
答案 0 :(得分:2)
修改新闻扩展程序是一个坏主意 - 之后你无法真正更新它。
但是,EXT:news有一种内置方式可以添加多个列表视图documented here。
简短版本:新闻插件中有一个模板选择器,您可以通过TypoScript为其添加项目。在你的pageTS中加入这样的东西:
tx_news.templateLayouts {
1 = A custom layout
99 = LLL:EXT:news/Resources/Private/Language/locallang_be.xlf:flexforms_general.mode.news_listm
}
您在此字段的后端中所做的选择将传递给变量settings.templateLayout
中的视图。
因此,在List.html
模板文件中,您可以执行此操作:
<f:if condition="{settings.templateLayout} == 99">
<f:then>
<!-- Render template with number 99 here -->
</f:then>
<f:else>
<!-- Render template with number 1 here -->
</f:else>
</f:if>
如果您有多个模板,最好使用the switch/case-ViewHelpers from EXT:vhs或类似的东西。
答案 1 :(得分:0)
如果要将插件插入页面,则需要为其创建自定义前端插件。像
这样的东西<强> ext_tables.php 强>:
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
'Namespace.' . $_EXTKEY,
'custom_news',
'Custom News'
);
<强> ext_localconf.php 强>:
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'Namespace.' . $_EXTKEY,
'custom_news',
array('CustomNews' => 'mylist'),
// non-cacheable actions
array('CustomNews' => 'mylist')
);
我希望你为它和扩展的newsController创建了自定义扩展。
问候,安东