Typo3 带有 Flexform 的自定义元素:如何将值写入 tt_content header?
Typo3 Custom Element with Flexform: How do I write value to tt_content header?
我正在使用 Flexforms 编写带有自定义内容元素的 Typo3 扩展。一切正常。
我只想像标准 Typo3 内容元素一样向 tt_content 内的“header”添加一个值。这样,如果我创建翻译,翻译内容的默认 header 应显示为“我的标题(副本 1)”,而不仅仅是“(副本 1)”。此外,如果我尝试向元素添加锚点 link,header 应该会出现。
例如,我的 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 header?
非常感谢您的帮助。
flexform(以及其中声明的所有字段)是整个 tt_content 记录的一个字段。因此,无论您是访问 flexform 字段数据还是来自记录中任何常规字段的数据,都有很大的不同。你不能把它搞混。 (您的 flexform 中的字段 header
与记录的常规字段 header
无关)
要授予编辑者访问常规 header 字段的权限,您需要为您的类型 tt_content (CType
) 声明访问权限。这是在 TCA-declaration.
中完成的
无论如何,您应该可以从 FLUID 访问 header
字段,因为您可以访问整个 tt_content 记录。通常为 {data.fieldname}
,您可以使用调试器进行检查:
<f:debug title="all fluid variables">{_all}</f:debug>
我正在使用 Flexforms 编写带有自定义内容元素的 Typo3 扩展。一切正常。 我只想像标准 Typo3 内容元素一样向 tt_content 内的“header”添加一个值。这样,如果我创建翻译,翻译内容的默认 header 应显示为“我的标题(副本 1)”,而不仅仅是“(副本 1)”。此外,如果我尝试向元素添加锚点 link,header 应该会出现。
例如,我的 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 header?
非常感谢您的帮助。
flexform(以及其中声明的所有字段)是整个 tt_content 记录的一个字段。因此,无论您是访问 flexform 字段数据还是来自记录中任何常规字段的数据,都有很大的不同。你不能把它搞混。 (您的 flexform 中的字段 header
与记录的常规字段 header
无关)
要授予编辑者访问常规 header 字段的权限,您需要为您的类型 tt_content (CType
) 声明访问权限。这是在 TCA-declaration.
无论如何,您应该可以从 FLUID 访问 header
字段,因为您可以访问整个 tt_content 记录。通常为 {data.fieldname}
,您可以使用调试器进行检查:
<f:debug title="all fluid variables">{_all}</f:debug>