3

我目前正在构建一个带有 Flux 和 Fluidpages 的 TYPO3 PageTemplate(都是 GitHub Master-Branch)。我希望有可能从 PageTree 中选择一些 ContentElements 并将 UID 存储在一个变量中以供以后渲染。

我将 Flux TreeField 与 RelationField 相结合的第一种方法:

  <flux:form.sheet name="content" label="content settings">
    <flux:field.tree
      name="treetest"
      label="treetest"
      table="pages"
      parentField="pid"
      foreignLabel="title"
      multiple="true"
      minItems="0"
      maxItems="1000"
      size="8"
      expandAll="false"
    />
    <flux:field.relation
      name="relationtest"
      label="relationtest"
      table="tt_content"
      condition="AND tt_content.pid IN ({treetest})"
      multiple="true"
      size="8"
      minItems="0"
      maxItems="3"
    />
  </flux:form.sheet>

遗憾的是,这会导致 SQL 错误,因为最后一个条件插入为:

  AND tt_content.pid IN (60|foo)

其中 'foo' 是 UID 60 的 SysFolder 的标题。

前端的调试输出将“treetest”字段打印为:

  treetest => '60' (2 chars)

字段“relationtest”的条件为:

  condition => 'AND tt_content.pid IN (60)' (26 chars)

问题:

  1. 事实上,我在这里遗漏了一些东西,我很感激任何提示,症结在哪里?

  2. 从 PageTree 中选择 ContentElement 是否有不同的解决方案?

4

1 回答 1

1

1) 您可能有默认值、继承值或包含其他值的断开连接的 XML。要 100% 确定这些都不是您的原因,请在全新的页面上尝试相同的操作。您的代码和选择页面 UID 的预期结果正是该值60- 不多也不少。

2) 您可能会发现在编辑内容元素或页面时使用###STORAGE_PID###标记更容易,foreign_table_where并选择允许内容选择的页面作为选项卡中的值。Behavior此值的额外好处是可以仅允许某些用户或用户组或管理员使用。

于 2014-04-03T23:32:08.280 回答