jvelletti / jve-upgradewizard
更新辅助工具,修复了在数据库中添加 Typoscript 和 TSconfig 包含文件的方式。
Requires
- typo3/cms-core: ^11.5 || ^12.4
Replaces
- typo3-ter/jve-upgradewizard: 12.4.18
README
========================
版本 12.4.18 | 16.6.2024
在 PHP 8.3 下测试了 TYPO3 LTS 12.4.16
在 PHP 8.1 下测试了 TYPO3 LTS 12.4.6
在 PHP 7.4 下测试了 TYPO3 LTS 11.4.31 \
在以下数据库表/字段上工作: \
sys_template -> config and constants
pages -> TSconfig
fe_users -> TSconfig
fe_groups -> TSconfig
be_users -> TSconfig
be_groups -> TSconfig
如果你有更多包含 TSconfig 的数据库表,请随时提交 issue 或 pull request。
同时修复了本地开发机器上指定文件夹中文件的文件名和内容,如果需要则重命名文件的扩展名从
'ts', 'txt', 'text' , 't3' , 't3s' , 'tscript' , 'tsconfig'
到
'typoscript'
重要通知
-
你应该有一个数据库副本!
-
如果页面或 fe_users 很多,可能会很慢
-
仅在本地测试后才可以在生产系统上运行此向导
-
你应该熟悉 typo3 控制台命令
-
你应该使用任何 vcs 如 git
-
为简化测试,请复制你的模板文件夹
-
将 -vv 替换为 -vvv 以在以下命令中获得更详细的输出
./vendor/bin/typo3 upgrade:run jveUpgradewizard_upgradeTemplates -vv
./vendor/bin/typo3 jvelletti:updatefiles --path=/test -vv
在数据库中将文件结束符 .ts .txt 和 .text 等更改为 .typoscript 并发出警告
CONST UNWANTED_EXTENSIONS = ['ts', 'txt', 'text' , 't3' , 't3s' , 'tscript' , 'tsconfig' ] ;
@import 'EXT:jve_template/Configuration/TypoScript/TSConfig/TSConfig.ts'
@import 'EXT:jve_template/Configuration/TypoScript/TSConfig/TSConfig.txt'
@import 'EXT:jve_template/Configuration/TypoScript/TSConfig/TSConfig.text'
修复了错误的 "EXT:" 或缺少 "EXT:" 语法
不是必需的,但有助于使扩展更容易调整结果
@import "FILE:EXT:jve_template/Configuration/TypoScript/TSConfig/TSConfig.typoscript"
@import "/typo3conf/ext/jve_template/Configuration/TypoScript/TSConfig/TSConfig.typoscript"
修复了 "INCLUDE_TYPOSCRIPT src="
<INCLUDE_TYPOSCRIPT src="/typo3conf/ext/jve_template/Configuration/TypoScript/TSConfig/TSConfig.typoscript">
<INCLUDE_TYPOSCRIPT src='/typo3conf/ext/jve_template/Configuration/TypoScript/TSConfig/TSConfig.typoscript'>
将双引号 " 字符更改为单引号 '
不是必需的,但有助于使扩展更容易调整结果
@import "EXT:jve_template/Configuration/TypoScript/TSConfig/TSConfig.typoscript"
所有情况下的结果
@import 'EXT:jve_template/Configuration/TypoScript/TSConfig/TSConfig.typoscript'
修复了以 # 开头的行,但保持了注释状态。
如果文件在 fileadmin 中但不在任何 EXT 文件夹中,则发出警告
@import "/fileadmin/template/TSConfig/TSConfig.typoscript"
修复了在本地测试系统上的指定模板文件夹中的文件
./vendor/bin/typo3 jvelletti:updatefiles -vv
输入你的模板文件夹的路径,例如
/vendor/jvelletti/jve-upgradewizard/Configuration/TypoScript/
此扩展附带了一些测试文件。检查内容以查看一些常见的错误/过时的语法 \
你将被要求确认更改,输入 "yes"
你还可以使用给定的路径启动脚本:但仍然需要输入 "yes"
(计划在经过多次测试确认正确性后添加 --force 参数以跳过确认)
./vendor/bin/typo3 jvelletti:updatefiles --path=/vendor/jvelletti/jve-upgradewizard/Configuration/TypoScript/ -vv
控制台命令搜索所有具有定义的结尾的文件
CONST UNWANTED_EXTENSIONS = ['ts', 'txt', 'text' , 't3' , 't3s' , 'tscript' , 'tsconfig' ] ;
如果需要,将这些文件重命名为 ".typoscript",并以与数据库条目相同的方式修复这些文件的更改
没有 "@import" 和 "INCLUDE_TYPOSCRIPT" 的行保持不变 \
从版本 12.4.18 开始也修复了 typocript 行
page.includeJSFooter.main = /typo3conf/ext/ ... main.js
page.includeCss.application = /typo3conf/ext/ ... application.css
shortcutIcon = /typo3conf/ext/ .. icon.ico
logo = /typo3conf/ext/ .. logo.png ( .gif / .jpg )
限制
- 不修复 "/fileadmin" 文件夹中的条目,如 @import "/fileadmin/tscript.ts"
- 不修复 CSS/javascript 文件本身,如果背景图像或字体路径是从扩展的公共文件夹加载的
最佳实践
可能需要 3 个步骤:重命名 文件系统中的文件和在 数据库 中更改导入文件的名称,
最后清除 TYPO§ 缓存,网站将暂时不可用。
如果您需要避免此操作并且没有其他选择,请尝试以下步骤
-
为迁移创建一个功能分支,例如:"migration-feature"。
-
在文档根目录外创建模板文件的副本文件夹,例如:"backup-migration"。
-
在模板文件上运行updateData命令。
./vendor/bin/typo3 jvelletti:updatefiles --path=/vendor/your-vendor/your-template-ext/Configuration/TypoScript/ -vv
-
脚本命令将重命名带有旧扩展名的文件名。
-
将此推送到"migration-feature"分支。
-
从结果创建一个"final-feature"分支。
-
在本地开发机器上通过CLI手动运行Upgradewizard以更新本地数据库条目并进行所需测试。
./vendor/bin/typo3 upgrade:run jveUpgradewizard_upgradeTemplates -vv
成功后
-
切换回"migration-feature"分支。
-
从"backup-migration"复制旧文件(带有错误的文件扩展名或旧的IMPORT_TYPOSCRIPT语法)。
-
将此推送到"migration-feature"分支(因此存在两种文件版本:所需的新的和通过数据库使用的旧的)。
-
将此拉取到Web服务器。
-
通过CLI手动运行Upgradewizard。
./vendor/bin/typo3 upgrade:run jveUpgradewizard_upgradeTemplates -vv
-
与步骤10一样,你有文件的两个版本,升级需要时间不是问题。
-
与步骤11一样,现在您的数据库应仅使用新的重命名文件,您可以清理。
-
要删除旧模板文件,切换到'final-feature'分支。
给扩展维护者的内部提醒
要更新TER中的此扩展
在Documentation\ in Settings.cfg和Index.rst中将版本号更改为"x.y.z"。
创建标签"x.y.z"。
git push --tags
创建新的ZIP文件。
cd vendor/jvelletti/jve-upgradewizard
git archive -o "jve_upgradewizard_x.y.z.zip" HEAD
例如:
git archive -o "jve_upgradewizard_12.4.11.zip" HEAD
将ZIP文件上传到https://extensions.typo3.org/my-extensions
git push
设置packagist Webhook
https://packagist.org.cn/api/update-package?username=jvelletti
从配置文件获取API令牌
https://packagist.org.cn/profile/
检查
https://intercept.typo3.com/admin/docs/deployments
https://packagist.org.cn/packages/jvelletti/jve_upgradewizard
https://extensions.typo3.org/extension/jve_upgradewizard/