微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有 Flexform 的 Typo3 自定义元素:如何将值写入 tt_content 标头?

如何解决带有 Flexform 的 Typo3 自定义元素:如何将值写入 tt_content 标头?

我正在使用 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>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。