hmmh / gridelements-doctor
验证和修复 gridelements 基础设施
Requires
- php: ^7.1
- ext-mbstring: *
- ext-pdo: *
- doctrine/dbal: ^2.9
- helhum/dotenv-connector: ~2.1.0
Requires (Dev)
- composer/composer: ~1.8.0
This package is auto-updated.
Last update: 2024-09-13 22:25:36 UTC
README
这是一个检查和修复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不会提供这样的迁移(或错误行为修复工具)。
因此,我们希望通过这个医生工具引入这个缺失的功能。
解决方案
医生检查了Gridelements行为的新本地化原则(见 l18n_parent
)
- 一个未连接的容器只能有未连接的子容器(自由模式)
- 一个已连接的容器(本地化)只能有已连接的子容器(连接模式)
以下场景也将通过这个医生修复
一个已连接容器的所有子容器都没有连接
解决方案:容器将存储为未连接。
一个未连接容器的所有子容器都是连接的
解决方案:容器将存储为已连接(通过其子容器实现)。
容器的子容器是混合的(连接或自由模式)
解决方案:容器将存储为未连接,所有子容器也将存储为未连接。
以下规则将被检查和修复
- 场景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后端,包括计划任务和检查室。