Typo3 Fluid:如何在fluid中获取选定的页面类别

问题描述 投票:0回答:1

我花了几个小时来解决这个问题。我想访问 Typo3 Fluid 中页面的选定类别,但没有默认方法可以做到这一点。

typo3 typoscript fluid
1个回答
0
投票

没有没有默认的方法来执行此操作。您需要自己查询数据库并连接表。不用感谢 Typo3——没有人能预料到,开发人员实际上想要访问其模板中选定的类别。 (╯°□°)╯︵┻⁄┻

在 Fluidtemplate 中的设置 Typoscript 中,添加 DatabaseQueryProcessor:

page = PAGE page { typeNum = 0 (...) 10 = FLUIDTEMPLATE 10 { (...) dataProcessing { (...) 30 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor 30 { table = sys_category selectFields = sys_category.* pidInList = root,-1 recursive = 99 join = sys_category_record_mm ON (sys_category_record_mm.uid_local=sys_category.uid) where = sys_category_record_mm.tablenames='pages' AND sys_category_record_mm.uid_foreign = ###pageuid### orderBy = sorting markers.pageuid.field = uid as = pageCategories } } } }
此代码片段创建一个名为 

pageCategories

 的变量,它是当前页面所有选定类别的数组。您可以访问标题 e。 G。通过 
pageCategories.0.data.title
 或在液体中循环:

<f:for each='{pageCategories}' as='category' iteration='inter'> <span class='category-tag'>{category.data.title}</span> </f:for>
说实话,我自己也不懂查询语法,但这是一个可行的解决方案。对于这个问题只有一些谷歌结果,它们要么对我的情况不起作用,要么从未得到回答,所以我想分享我的解决方案。

感谢

t3brightside,他维护了 pagelist 扩展,此代码片段的灵感来自于该扩展~~(被盗)。

© www.soinside.com 2019 - 2024. All rights reserved.