问题描述
我正在使用 Flexforms 编写带有自定义内容元素的 Typo3 扩展。一切正常。 我只想像标准的 Typo3 内容元素一样向 tt_content 内部的“header”添加一个值。这样,如果我创建翻译,翻译内容的默认标题应显示为“我的标题(副本 1)”,而不仅仅是“(副本 1)”。此外,如果我尝试向元素添加锚链接,标题应该会显示出来。
例如,我的 flexform 是这样开始的:
<T3DataStructure>
<sheets>
<sGeneral>
<ROOT>
<TCEforms>
<sheetTitle>My Element</sheetTitle>
</TCEforms>
<type>array</type>
<el>
<headline>
<TCEforms>
<label>Text</label>
<config>
<type>input</type>
</config>
</TCEforms>
</headline>
...
我在 HTML 模板中访问上述标题值,如下所示:{flexform.sGeneral.headline}
效果很好。我如何才能将此值也写入 tt_content 标头?
非常感谢您的帮助。
解决方法
flexform(以及在里面声明的所有字段)是整个 tt_content 记录的一个字段。因此,无论您是访问 flexform 字段数据还是访问记录中任何常规字段的数据,都存在很大差异。你不能把它混为一谈。 (弹性表单中的字段 header
与记录的常规字段 header
无关)
为了让编辑器访问常规标题字段,您需要声明对 tt_content (CType
) 类型的访问权限。这是在 TCA 声明中完成的。
无论如何,您应该可以从 FLUID 访问 header
字段,因为您可以访问整个 tt_content 记录。通常作为 {data.fieldname}
,您可以使用调试器进行检查:<f:debug title="all fluid variables">{_all}</f:debug>