【问题标题】:Content elements suddenly moved outside of the gridelements container内容元素突然移出 gridelements 容器
【发布时间】:2018-02-01 15:53:22
【问题描述】:

我在使用 TYPO3 CMS 时遇到了一个奇怪的行为:我在多个页面上使用内容元素“Grid-Element”。

“网格元素”CE 始终具有不同的子元素,例如图像或文本。 今天,所有子元素突然移动到网站每个页面上的“网格元素”之外。我不得不手动一一修复它们。基本上什么都没有丢失,但结构被破坏了。

我还检查了编辑历史记录,但没有相关内容。

我想知道这种情况是如何发生的,以及如何防止这种情况再次发生。有什么想法吗?

【问题讨论】:

  • 你的意思是扩展名“gridelements”吗?
  • 这不可能自己发生,一定是系统有一些变化(安装扩展、删除扩展、cronjob)影响了这种变化。你有更多相关信息吗?
  • TYPO3 中没有名为“网格元素”的元素。要么你的意思是元素“插入记录”(德语“Datensatz einfügen”),要么你有这种 CE 的扩展。
  • @Thomas 我很久没有部署任何东西了,据我所知,除了标准的 Typo3 cron 之外没有任何 cronjobs。所以它很可能是由在后端做了某事的人引起的。我们确实使用了具有很多不同 CE 的 Mask 扩展
  • 你能发布内容元素的结构吗? TypoScript,流体模板?

标签: typo3 typoscript fluid tx-gridelements


【解决方案1】:

更新:2 起事件中有 1 起可追溯到网格元素以外的问题(见下文)。

我也有这个效果。

修复/解决方法

  1. 检查数据库中tt_content.colpos 的数据类型:它是无符号的吗?
  2. 将网格元素更新到最新版本。问题可能已解决。
  3. 做一个 DB 比较,让 TYPO3 将 tt_content.colPos 改回有符号(非无符号)
  4. 按照 Jo Hasenau 的建议应用解决方法:UPDATE tt_content SET colPos = -1 WHERE tx_gridelements_container > 0

说明

所以,(可能)发生的事情是 colPos 更改为无符号,导致所有 -1 值更改为 0。因此,网格元素的结构不再被正确解释。

核心将 colPos 设置为无符号,gridelements 覆盖它并将其设置为有符号。

如果一切正常,数据库架构中的这种更改不应该真的发生。

测试用例

这些是我的测试用例:

  1. 从 8 升级到 9 时,我在更新前停用了所有第三方扩展。在升级期间,架构已更改为未签名。
  2. (在 8.7.24 系统上安装扩展 "min" 后,colPos 也更改为 unsigned。这不应该发生。“min”是无害的,根本不会改变 DB 结构。)李>

更新:测试用例 2 可以追溯到带有混乱 composer.json 的(开发)扩展。这是一个非常模糊的场景,可能非常罕见,但它确实对 TYPO3 PackageManager 中列出的扩展造成了严重破坏,导致网格元素架构没有被加载。

为了完整起见:您可以通过在 deactivated 扩展的 composer.json 中使用另一个 activated 扩展的扩展密钥来重现它,例如在 ext1/composer.json 中:

"replace": {
  "ext2": "self.version",
  "typo3-ter/Uniolexample": "self.version"
}

【讨论】:

    【解决方案2】:

    在 99% 的情况下,当 TYPO3 核心在没有安装 gridelements 的情况下更新时会发生这种情况。运行数据库比较会将字段 colPos 的 SQL 配置从有符号更改为无符号,从而将 -1 更改为 0。

    由于 -1 是网格容器的子元素的指示符,因此该指示符会丢失。

    你可以通过运行来解决这个问题:

    UPDATE tt_content SET colPos = -1 WHERE tx_gridelements_container > 0
    

    另外 1% 的人并不能真正重现导致症状的原因,所以目前我们不知道他们到底出了什么问题。

    【讨论】:

      【解决方案3】:

      使用网格元素时,您需要为每个内容元素进行配置。这存储在数据库中,主要是在根页面上。

      为容器中的每个字段设置colPos 编号。 您的结构损坏可能是因为:

      • 数据库中覆盖colPos 值的任何更改
      • 元素配置更改为使用另一个colPos

      【讨论】:

        【解决方案4】:

        最近有一个错误修复,也可能修复这里的症状。因此,我们似乎找到了我其他答案中提到的 1% 的原因。

        请查看最新的大师,看看它是否也解决了您的问题: https://forge.typo3.org/issues/85511

        【讨论】:

          猜你喜欢
          • 2013-01-03
          • 2020-11-14
          • 1970-01-01
          • 1970-01-01
          • 2013-11-02
          • 2017-03-06
          • 1970-01-01
          • 2011-06-08
          相关资源
          最近更新 更多