Templates 类型3在流体模板处获取类别uid(系统类别)
我尝试在流体模板中以Templates 类型3在流体模板处获取类别uid(系统类别),templates,typo3,categories,typoscript,fluid,Templates,Typo3,Categories,Typoscript,Fluid,我尝试在流体模板中以class=“category.uid”的形式显示类别uid或名称 如果我尝试{data}我会看到这样的输出:categories=>'1'(1个字符) 但是如何将类别uid或-name写入我的FLUID/HTML,如下所示: <div id="container" class="{data.nav_title}"> <!-- I need the categories --> <div id="container" class="{categ
class=“category.uid”
的形式显示类别uid或名称
如果我尝试{data}
我会看到这样的输出:categories=>'1'(1个字符)
但是如何将类别uid或-name写入我的FLUID/HTML,如下所示:
<div id="container" class="{data.nav_title}">
<!-- I need the categories -->
<div id="container" class="{categories.uid}">
谢谢你的帮助
编辑:一些截图
信息在表sys\u category
title、uid、pid中
- `{data}
- 很抱歉,我没有足够的声誉发表评论
什么是
{data}
这是你从控制器那里得到的东西吗
$data = $this->configurationManager->getContentObject()->data;
$this->view->assign('data', $data);
如果是这样,那么您需要在控制器中执行一些额外的处理,因为
$data
是一个关联数组,而不是一个具有关系注入的对象/模型。同样的问题也在讨论中(参见11:30-12:31)
因此,没有用于此的viewhelper。您必须向Flux注册ContentController。我在这里使用了解决方案的一个变体: 打字稿
lib.categories = CONTENT
lib.categories {
table = sys_category
select {
pidInList = root
selectFields = sys_category.uid
join = sys_category_record_mm on sys_category_record_mm.uid_local = sys_category.uid
where.field = recordUid
where.wrap = sys_category_record_mm.uid_foreign=|
}
renderObj = COA
renderObj {
1 = TEXT
1 {
field = uid
stdWrap.noTrimWrap = | cat-||
}
}
}
流体模板
<f:cObject typoscriptObjectPath="lib.categories" data="{recordUid: data.uid}" />
什么是{categories}?它是阵列还是对象存储?它是否正确映射到您的域模型中?请提供更多信息。键入3总体类别(=表sys\u category中的系统记录),请参阅我的编辑。我现在看到的屏幕截图。我还没有使用系统类别,但很可能您应该通过f:for
ViewHelper对它们进行迭代,然后您可以获取idOk,谢谢。我明白了,data
只得到一个bool变量(1或0)。对于f:for
ViewHelper,我只获取uid,而不获取标题。所以这还不够。我会找到另一种方法让我的类进入模板。谢谢,我已经为fluid:template创建了一个功能请求:我将从{data}
获取,请参见上面的屏幕截图。好的,我明白了。它看起来像是表pages
中的页面记录。在何处将变量{data}
指定给流体模板?您已经在模板控制器$this->view->assign('data',$GLOBALS['TSFE']->页面)中正确地完成了类似的操作代码>类别=>'1'
不是类别的uid,而是TYPO3 CMS内部使用的引用计数。如果您尝试添加另一个类别,则会看到此变量更改为categories=>'2'
这是可行的,但返回的类别是字符串,因此必须在打字脚本中呈现,而不是在流体中的for标记中呈现。还要注意,类别条目必须位于根元素上,而不是页面上。还有一个节省时间的提示:当[SYS][sqlDebug]
设置为2时,不会显示生成的SQL查询。我认为,编写自定义ViewHelper是该任务的更好解决方案。看见