如何在Flux FlexForm配置中选择和存储ContentElement UID?

3
我目前正在使用Flux和Fluidpages(两者都是GitHub主分支)构建TYPO3页面模板。我希望有可能从页面树中选择一些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吗?

1个回答

1

1) 可能您有默认值、继承值或某些包含其他值的断开的XML。为了百分之百确定这些不是您的原因,可以在完全新的页面上尝试相同操作。您的代码期望结果和选择页面UID,确切地是值60 - 无多余,无不足。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接