Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typo3 内容元素突然移出gridelements容器_Typo3_Typoscript_Fluid_Tx Gridelements - Fatal编程技术网

Typo3 内容元素突然移出gridelements容器

Typo3 内容元素突然移出gridelements容器,typo3,typoscript,fluid,tx-gridelements,Typo3,Typoscript,Fluid,Tx Gridelements,我在TYPO3 CMS中遇到了一个奇怪的行为:我在多个页面上使用内容元素网格元素 网格元素CE始终具有不同的子元素,如图像或文本。 今天,所有子元素突然移动到网站每个页面的网格元素之外。我不得不手动一个接一个地修复它们。基本上什么也没有损失,但结构被破坏了 我还检查了编辑历史记录,但没有相关内容可看 我想知道这是怎么发生的,以及如何防止这种情况再次发生。有什么想法吗?使用gridelements时,每个内容元素都有一个配置。这存储在数据库中,大部分存储在根页面上 为容器中的每个字段设置colPo

我在TYPO3 CMS中遇到了一个奇怪的行为:我在多个页面上使用内容元素网格元素

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

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


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

使用gridelements时,每个内容元素都有一个配置。这存储在数据库中,大部分存储在根页面上

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

数据库中重写colPos值的任何更改 元素配置中使用另一个colPos值的更改
使用gridelements时,每个内容元素都有一个配置。这存储在数据库中,大部分存储在根页面上

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

数据库中重写colPos值的任何更改 元素配置中使用另一个colPos值的更改
在99%的情况下,当更新TYPO3核心而没有安装gridelements时,会发生这种情况。运行数据库比较会将字段colPos的SQL配置从有符号更改为无符号,从而将-1更改为0

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

您可以通过运行以下命令来修复此问题:

UPDATE tt_content SET colPos = -1 WHERE tx_gridelements_container > 0

另外1%的用户无法重现Symptom的原因,因此目前我们不知道他们到底出了什么问题。

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

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

您可以通过运行以下命令来修复此问题:

UPDATE tt_content SET colPos = -1 WHERE tx_gridelements_container > 0

另外1%的人不能真正重现系统错误的原因,因此目前我们不知道他们到底出了什么问题。

最近有一个bug修复程序,可能也会修复这里的症状。因此,我们似乎找到了我在另一个答案中提到的1%的原因

请查看最新的master,看看它是否也解决了您的问题:

最近有一个bug修复程序,可能也会修复这里的症状。因此,我们似乎找到了我在另一个答案中提到的1%的原因

请查看最新的master,看看它是否也解决了您的问题:

更新:2起事件中的1起可追溯至gridelements以外的问题,见下文

我也有这种效果

修复/解决方法 检查数据库中tt_content.colpos的数据类型:是否未签名? 将gridelements更新到最新版本。问题可能已经解决了。 进行数据库比较,让TYPO3将tt_content.colPos更改回已签名而非未签名 按照Jo Hasenau的建议应用解决方案:更新tt_内容集colPos=-1,其中tx_gridelements_container>0 解释 所以,可能发生的情况是colPos被更改为unsigned,导致所有-1值都更改为0。因此,gridelements的结构不再被正确解释

core将colPos设置为unsigned,gridelements将覆盖它并将其设置为signed

如果一切正常,DB模式中的这种变化不应该真正发生

测试用例 以下是我的测试用例:

从8升级到9时,我在更新之前停用了所有第三方扩展。在升级过程中,架构已更改为unsigned。 在8.7.24系统上安装扩展后,colPos也被更改为unsigned。这不应该发生。min是无害的,根本不会改变DB结构。 更新:测试用例2可以追溯到一个带有混乱的composer.json的开发扩展。这是一个相当模糊的场景,可能非常罕见,但它确实破坏了TYPO3 PackageManager中列出的扩展,导致gridelements模式无法加载

出于完整性考虑:您可以在停用扩展的composer.json中使用另一个激活扩展的扩展键来复制它,例如在ext1/composer.json中:

"replace": {
  "ext2": "self.version",
  "typo3-ter/Uniolexample": "self.version"
}
更新:2起事件中的1起可追溯到gridelements中没有的问题,见下文

我也有这种效果

修复/解决方法 检查数据库中tt_content.colpos的数据类型:是否未签名? 将gridelements更新到最新版本。问题可能已经解决了。 进行数据库比较,让TYPO3将tt_content.colPos更改回signed not 未签名 按照Jo Hasenau的建议应用解决方案:更新tt_内容集colPos=-1,其中tx_gridelements_container>0 解释 所以,可能发生的情况是colPos被更改为unsigned,导致所有-1值都更改为0。因此,gridelements的结构不再被正确解释

core将colPos设置为unsigned,gridelements将覆盖它并将其设置为signed

如果一切正常,DB模式中的这种变化不应该真正发生

测试用例 以下是我的测试用例:

从8升级到9时,我在更新之前停用了所有第三方扩展。在升级过程中,架构已更改为unsigned。 在8.7.24系统上安装扩展后,colPos也被更改为unsigned。这不应该发生。min是无害的,根本不会改变DB结构。 更新:测试用例2可以追溯到一个带有混乱的composer.json的开发扩展。这是一个相当模糊的场景,可能非常罕见,但它确实破坏了TYPO3 PackageManager中列出的扩展,导致gridelements模式无法加载

出于完整性考虑:您可以在停用扩展的composer.json中使用另一个激活扩展的扩展键来复制它,例如在ext1/composer.json中:

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

你是说扩展gridelements吗?这不能自行发生,必须在系统中进行一些更改,安装扩展、删除扩展、cronjob都会影响这种更改。你有更多的信息吗?TYPO3中没有名为Grid element的元素。要么你是指德语Datensatz einfügen中的元素插入记录,要么你有这种CEs的扩展。@Thomas我很久没有部署任何东西了,据我所知,除了标准的Typo3 cron之外,没有任何cronjobs。所以这很可能是因为有人在后台做了什么。我们确实使用了Mask扩展,它有很多不同的内容,你可以发布内容元素的结构吗?打字稿、流体模板?你是指扩展gridelements吗?这不能单独发生,系统中必须有一些更改,安装扩展、删除扩展、cronjob会影响这种更改。你有更多的信息吗?TYPO3中没有名为Grid element的元素。要么你是指德语Datensatz einfügen中的元素插入记录,要么你有这种CEs的扩展。@Thomas我很久没有部署任何东西了,据我所知,除了标准的Typo3 cron之外,没有任何cronjobs。所以这很可能是因为有人在后台做了什么。我们确实使用了Mask扩展,它有很多不同的内容,你可以发布内容元素的结构吗?打字稿,流体模板?