TYPO3,新闻。如何定义新的列表视图?

时间:2016-01-05 10:21:39

标签: typo3

我需要关于新闻(和一些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模板。 (似乎我也需要删除缓存)。好!

2 个答案:

答案 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创建了自定义扩展。

问候,安东