TYPO3 TypoScript CONTENT 如何呈现 select 结果

TYPO3 TypoScript CONTENT how to render select result

我必须呈现查询的所有结果,而不仅仅是一个。目前我只收到该查询的第一个结果,所有 3 个调用的结果都保持不变。

这是每个页面都会调用的 template/partial

<div class="item">
  <f:debug>{_all}</f:debug>
  <f:link.page pageUid="{page.data.uid}" target="{page.data.target}" title="{page.data.title}">
    <h3 class="title">{page.data.title}</h3>
    <h4>{page.data.uid}</h4>
    <h3><f:cObject typoscriptObjectPath="lib.category" data="{page.data}" /></h3>
  </f:link.page>
</div>

重要的电话是这个

<f:cObject typoscriptObjectPath="lib.category" data="{page.data}" />

这是获取所有类别的错别字

lib.category = CONTENT
lib.category {
  table=sys_category
  wrap=|
  select {
    pidInList = root
    selectFields = sys_category.*
    join = sys_category_record_mm ON sys_category_record_mm.uid_local = sys_category.uid
    where.field = sys_category_record_mm.uid_foreign = uid
    languageField = 0
  }
  renderObj = COA_INT
  renderObj {
    1 = TEXT
    1.field = title
  }
}

重要的一行是:

where.field = sys_category_record_mm.uid_foreign = uid

= uid 就是我们传入的uid

这里是实际呈现带有类别标题的字符串的部分(目前只有一个......即使设置了更多类别)

  renderObj = COA_INT
  renderObj {
    1 = TEXT
    1.field = title
  }

所以 2 个问题:

  1. 对于所有页面,我们得到相同的类别,即使它们不相同
  2. 无论如何,X 中只有一个类别会被渲染

我应该如何修改 typoscript/template 以实现我从该特定页面获得指定类别的完整列表(可以是字符串)?

非常感谢帮助

遗憾的是,您需要编写自己的 ViewHelper 来执行此操作。默认核心“API”不提供对类别的支持。另外,这个好像不是很有用的计划vhs extension, as a feature request for exactly this已经关闭了。

幸运的是,您可以复制并粘贴 solution from someone else。液体中的溶液看起来像:

<f:if condition="{data.categories}">
    <f:for each="{my:CategoriesOutput(recUid: data.uid)}" as="category">
        <span class="{category.slug}">{category.title}</span>
    </f:for>
</f:if>