【问题标题】:Ghost field in TemplavoilàTemplavoilà 的幽灵场
【发布时间】:2018-11-19 11:01:13
【问题描述】:

我正在使用这个 Typoscript 来生成一些文本。 field_test 是通过 TemplavoilàPlus 创建的。

# If field_test is filled in by the redactor,
# its content will be displayed in the frontend.

10 = TEXT
10.if.isTrue.field = field_test
10.value.field = field_test

我正在使用来自 TV+ 的多个 FCE,并且通过 Typoscript 处理了更多字段。对于某些 FCE,我没有在 TV+ 中设置 field_test,因此它根本不会显示在前端,因为编辑器无法在后端填充它。这是正常行为。

但是,对于 FCE 之一,无论如何都会显示 field_test。此字段未在 TV+ 中设置,我在 XML 中找不到。后台不显示,无法填写。

它曾在某个时候存在,并且在从 TV+ FCE 中移除之前已被填充

现在我在前端显示了它的幽灵。 如何找到并永久删除它?

【问题讨论】:

    标签: typo3 typoscript typo3-7.6.x templavoila


    【解决方案1】:

    您需要识别那些设置了field_test的CE,以及​​该字段应为空的位置。

    您可以编辑每个 CE,将其类型更改为字段 id 可见的类型,检查是否为空并将类型更改回原点。

    或者您在phpmyadmin 之类的工具中执行一些即时 SQL 查询:

    select * from tt_content where field_test!='' and (CType = ...)
    

    【讨论】:

      【解决方案2】:

      我找到了解决问题的方法。

      我只是在 TV+ 中重新创建了field_test,然后到后端清空了该字段的内容(即使该字段已被删除,该字段也已被填充)。

      结论:当你在 TV+ 中删除某个字段时,该字段的内容仍然存在于某处……

      【讨论】:

      • 这是 TYPO3 中 flexform 数据的“通常”行为,因为数据以 XML 格式存储在一个数据库字段中。 XML 被提取为一个数组,数据被修改/添加并作为 XML 存储回来。这样就不会删除任何 XML 字段。如果您将新数据(数组)写入该字段,则该数组将与现有数据合并。要清理 XML(删除未使用的字段),您需要显式清理“pi_flexform”字段(用空字符串覆盖),然后用活动数据写入数组。
      猜你喜欢
      • 1970-01-01
      • 2018-06-16
      • 1970-01-01
      • 1970-01-01
      • 2011-07-09
      • 2014-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多