我在Typo3中有一个系统类别树:
─┬─A─┬─A1
│ └─A2
│
└─B─┬─B1
┼─B2
└─B3
我想渲染B树的子代。
在每个子新闻项上,我都能在每次迭代中获得字符串中的类别
<f:for each="{news}" as="newsItem" iteration="iterator">
<!-- render partial="List/ServiceItem" -->
<div
<f:if condition="{newsItem.categories}">
data-groups="[<f:for each="{newsItem.categories}" as="category" iteration="iteratorCategories">'{category.title}'<f:if condition="{iteratorCategories.isLast}"><f:then></f:then><f:else>,</f:else></f:if></f:for>]"
</f:if>
>{newsItem.title} & other stuff</div>
</f:for>
我正在使用Shuffle.js来过滤列表,并且我需要所有B树子来创建组控件 我尝试过:
<div class="news-list-category"> categories:
<f:for each="{categories}" as="category" iteration="iteratorCategories">
<f:if condition="{category.title} == 'B'">
{category.title}
<f:debug>{category.children}</f:debug>
<f:if condition="{category.children}">
children:
<f:for each="{category.children}"
as="subCategory"
iteration="iteratorSubCategories">
<span>{subCategory.title}</span>
</f:for>
</f:if>
</f:if>
</f:for>
</div>
category.children和category.item.children 返回null
if condition =“ {category.title} =='B' 进入正确的一级物品
我用过 typo3conf / ext / news / Resources / Private / Templates / Styles / Twb / Templates / Category / List.html
也作为参考
我是否应该在打字稿中这样做并传递给流体
<f:cObject typoscriptObjectPath="lib.myTyposSubCategoryList" />
我去看看我是否可以得到Typoscript来渲染它,但是想要一个流畅的解决方案
谢谢
答案 0 :(得分:0)
所以我建议你这样做:
在T3后端中创建一个新的新闻模块。并选择类别作为显示模块。您可以在主题文件夹的Templates/Category/List.html
文件中自定义模块,以更改结构并使其与shuffle.js
一起使用。该模块需要与列表模块包含在同一页面上,请确保选择要在其中找到列表模块的站点ID,然后在“设置”标签中禁用Disable overwriting of plugin settings
复选框。
在模块中,您只需选择要显示的类别。我认为这可能是最简单的方法。
我使用相同的方法将“类别”菜单转换为下拉菜单:
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
<f:layout name="General" />
<!--
=====================
Templates/Category/List.html
-->
<f:section name="content">
<f:if condition="{categories}">
<f:then>
<div class="news-cat-view side-news">
<h3><f:translate key="categories" /></h3>
<f:render section="categoryTree" arguments="{categories:categories,overwriteDemand:overwriteDemand}" />
</div>
</f:then>
<f:else>
<f:translate key="list_nocategoriesfound" />
</f:else>
</f:if>
</f:section>
<f:section name="categoryTree">
<ul>
<f:for each="{categories}" as="category">
<li>
<f:if condition="{category.item.uid} == {overwriteDemand.categories}">
<f:then>
<a href="javascript:;">{category.item.title}</a>
</f:then>
<f:else>
<a href="javascript:;">{category.item.title}</a>
</f:else>
</f:if>
<f:if condition="{category.children}">
<f:render section="categoryTreeSub" arguments="{categories: category.children,overwriteDemand:overwriteDemand}" />
</f:if>
</li>
</f:for>
<li class="parent reset" style="display: none;"><f:link.page pageUid="22"><f:translate key="back-link" /></f:link.page></li>
</ul>
</f:section>
<f:section name="categoryTreeSub">
<ul>
<f:for each="{categories}" as="category">
<li>
<f:if condition="{category.item.uid} == {overwriteDemand.categories}">
<f:then>
<f:link.page title="{category.item.title}" class="active" pageUid="{settings.listPid}"
additionalParams="{tx_news_pi1:{overwriteDemand:{categories: category.item.uid}}}">{category.item.title}
</f:link.page>
</f:then>
<f:else>
<f:link.page title="{category.item.title}" pageUid="{settings.listPid}"
additionalParams="{tx_news_pi1:{overwriteDemand:{categories: category.item.uid}}}">{category.item.title}
</f:link.page>
</f:else>
</f:if>
</li>
</f:for>
</ul>
</f:section>
</html>