如何在 Flux FlexForm 配置中选择和存储 ContentElement UID?
Posted
技术标签:
【中文标题】如何在 Flux FlexForm 配置中选择和存储 ContentElement UID?【英文标题】:How to select and store ContentElement UID in Flux FlexForm Configuration? 【发布时间】:2014-01-16 11:27:02 【问题描述】:我目前正在构建一个带有 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)
问题:
事实上,我在这里遗漏了一些东西,如果有任何提示,我将不胜感激,关键在哪里?
是否有其他解决方案可以从 PageTree 中选择 ContentElement?
【问题讨论】:
【参考方案1】:1) 您可能有默认值、继承值或包含其他值的断开连接的 XML。要 100% 确定这些都不是您的原因,请在全新的页面上尝试相同的操作。您的代码和选择页面 UID 的预期结果正是值 60
- 不多不少。
2) 在编辑内容元素或页面时,您可能会发现在 foreign_table_where
中使用 ###STORAGE_PID###
标记并选择允许内容选择的页面(作为 Behavior
选项卡中的值)更容易。此值的额外好处是可以仅允许某些用户或用户组或管理员使用。
【讨论】:
以上是关于如何在 Flux FlexForm 配置中选择和存储 ContentElement UID?的主要内容,如果未能解决你的问题,请参考以下文章
从 Flexform 上传图像后出现 Fluid TYPO3 Flux 500 错误
Typo3 Fluid:渲染flux:flexform.field.wizard.link的正确方法是啥?
Fluid TYPO3:更新后出错:无法分析类:FluidTYPO3\Flux\ViewHelpers\Flexform\SheetViewHelper 可能未加载或没有自动加载器?
从插件配置中删除默认的 pi flexform 字段 - 错字3