hmmh/gridelements-doctor

验证和修复 gridelements 基础设施

0.9.0 2019-08-21 16:32 UTC

This package is auto-updated.

Last update: 2024-09-13 22:25:36 UTC


README

gridelements

这是一个检查和修复TYPO3安装中所有Gridelements项目的修复工具。

场景

从版本6.2升级到7.6 LTS或8.7 LTS的TYPO3也将需要从版本3.4.0(TYPO3 6.2的最大版本)升级到7.0.0(TYPO3 7.6 LTS的最小版本)或8.0.0(TYPO3 8.7 LTS的最小版本)。在成功迁移后,前端中的Gridelements基础设施将没有效果,直到您更改或保存后端的内容元素。

问题

Gridelements的新更新钩子应该修复后端中的无效维护。但这只适用于新的TYPO3安装和一个全新或空白的内容存档。在跨越几年的大量内容存档的升级过程中,应该在升级之前进行全面的迁移!如果您不这样做,您将很快就会遇到许多难以或无法恢复的内容元素,通常这些元素并不显眼。

然而,Gridelements不会提供这样的迁移(或错误行为修复工具)。

因此,我们希望通过这个医生工具引入这个缺失的功能。

特别感谢(归于)Jo Hasenau

解决方案

医生检查了Gridelements行为的新本地化原则(见 l18n_parent

  • 一个未连接的容器只能有未连接的子容器(自由模式)
  • 一个已连接的容器(本地化)只能有已连接的子容器(连接模式)

以下场景也将通过这个医生修复

一个已连接容器的所有子容器都没有连接

场景1

解决方案:容器将存储为未连接。

一个未连接容器的所有子容器都是连接的

场景2

解决方案:容器将存储为已连接(通过其子容器实现)。

容器的子容器是混合的(连接或自由模式)

场景3

解决方案:容器将存储为未连接,所有子容器也将存储为未连接。

以下规则将被检查和修复

  • 场景4 默认语言的可用容器不应有本地化父级(l18n_parent)。
  • 场景5 默认语言的可用子容器不应有本地化父级(l18n_parent)。
  • 场景6 可用连接子容器必须具有正确的列(tx_gridelements_columns)。
  • 场景7 可用连接子容器不应连接到正确的容器(tx_gridelements_container)。
  • 场景8 可用连接子容器不应连接到多个容器(tx_gridelements_container)。
  • 场景9 可用连接子容器不应比原始子容器少(tx_gridelements_container)。
  • 场景10 可用的连接子元素的数目必须与所属容器(tx_gridelements_children)匹配。

以下规则也会进行检查,但不能修复

  • 场景11 容器内的可用子元素不应使用不同的语言(sys_language_uid)。

参考索引(sys_refindex)将被重新构建 - 因为它比官方更新任务更新更快。

重要提示

注意从TYPO3 7.6 LTS版本开始的新本地化模式与Gridelements 7版本的限制规则的不同行为。这可能需要新的编辑培训,该培训应遵循以下原则,并描述内容如何进行本地化。一些您作为编辑之前可以应用的小技巧(或不良行为)现在将不再有效。

安装

开发

    $ git clone https://github.com/hmmh/gridelements-doctor/ griddoc
    $ composer install

生产

    $ composer global require hmmh/gridelements-doctor

准备

.env.template文件复制到.env,并调整数据库连接凭证。

应用

开发

    $ composer doctor

生产(依赖于PATH环境变量)

    $ griddoc --help

愿望清单

1 - TYPO3控制台支持

将"gridelements doctor"集成到TYPO3控制台任务中,并将其作为TYPO3扩展提供。

应用

    $ typo3cms gridelements:doctor
    $ typo3cms gridelements:doctor --heal

2 - TYPO3后端支持

将"gridelements Doctor"集成到TYPO3后端,包括计划任务和检查室。