如何防止在 TYPO3 更新期间覆盖我更改的数据?
How can I prevent from overwriting my changed data during an update in TYPO3?
我在 TYPO3(版本 11.5.9)上使用“Pizpalue”的扩展名“bootstrap_package”。
我想更改 bootstrap_package 的一些内容元素,但我必须防止在扩展更新期间覆盖我更改的数据。
但我不知道如何预防?
我将更改一些现有文件的一些代码并在扩展名“Bootstrap_package”中添加一些新文件。
例如,HTML-files、CSS-files、ext_tables.sql、typoscript-file、php-files 等等。
我应该怎么做?如能解答,万分感谢
谢谢。
您应该永远不要自己更改扩展程序的代码:问题是您现在面临的问题:在不丢失更改的情况下更新它是不可能的。
相反,您应该编写 您自己的 的扩展,通常称为 "站点包":此扩展将充当提供的扩展您前端的所有配置(部分后端)(您可以将其视为您的“主题”)并将包含
- 您的 TypoScript 配置(前端和后端,例如后端布局)
- sql 文件修改现有表或添加新表(以及相关的 php 文件)
- CSS 和 JS 文件
- 页面和内容元素的 Fluid templates/layouts/partials 文件
- Fluid template/layout/partials 将覆盖 其他扩展 的文件,例如您在 Boostrap 包
中找到的那些
- ...
在这里写一个关于这个主题的完整例子真的很难;我认为您可以从这里开始阅读一些文档:
- TYPO3 Getting started tutorial
- How to install a local extension
- Site Package tutorial
- Fluid Tutorial
我将在这里写一个基于bootstrap_package
的简短示例
- 假设您将“网站包”扩展称为“site_package”
- 假设您要修改 bootstrap_package 的页面部分之一:
boostrap_package/Resources/Private/Partials/Page/Structure/Copyright.html
如果您查看 bootstrap_package 文件
bootstrap_package/Configuration/TypoScript/setup.typoscript
您会注意到以下几行:
...
partialRootPaths {
0 = EXT:bootstrap_package/Resources/Private/Partials/Page/
1 = {$page.fluidtemplate.partialRootPath}
}
...
这意味着您可以使用 TypoScript 常量:page.fluidtemplate.partialRootPath
为部分文件提供替代路径,此路径中的文件将 覆盖 原始文件在 bootstrap_package
因此,在您的 site_package 扩展中,您将提供常量(查看有关如何使用 TypoScript 的 TYPO3 文档)
page.fluidtemplate.partialRootPath = EXT:site_package/Resources/Private/Layouts/Page/
然后只需将要覆盖的文件复制到 TypoScript 常量中指定的文件夹中(确保保留子目录结构):
site_package/Resources/Private/Partials/Page/Structure/Copyright.html
修改一下就大功告成了
请注意 bootstrap_package 提供了类似的常量来覆盖其内容元素的流体文件 (partials/templates/layouts)。
最后一句话:如果你愿意,你可以从头开始你的“网站包”扩展,或者你可以使用以下网站:https://www.sitepackagebuilder.com/
生成包含所有基本相关文件和目录的“骨架”扩展;您甚至可以选择生成一个已经定制的“站点包”,以便与 bootstrap_package!
一起使用
我希望我至少部分地回答了你的问题;您还可以在 TYPO3 Slack 频道 (https://typo3.org/community/meet/chat-slack)
上找到帮助
我在 TYPO3(版本 11.5.9)上使用“Pizpalue”的扩展名“bootstrap_package”。
我想更改 bootstrap_package 的一些内容元素,但我必须防止在扩展更新期间覆盖我更改的数据。 但我不知道如何预防?
我将更改一些现有文件的一些代码并在扩展名“Bootstrap_package”中添加一些新文件。 例如,HTML-files、CSS-files、ext_tables.sql、typoscript-file、php-files 等等。
我应该怎么做?如能解答,万分感谢
谢谢。
您应该永远不要自己更改扩展程序的代码:问题是您现在面临的问题:在不丢失更改的情况下更新它是不可能的。 相反,您应该编写 您自己的 的扩展,通常称为 "站点包":此扩展将充当提供的扩展您前端的所有配置(部分后端)(您可以将其视为您的“主题”)并将包含
- 您的 TypoScript 配置(前端和后端,例如后端布局)
- sql 文件修改现有表或添加新表(以及相关的 php 文件)
- CSS 和 JS 文件
- 页面和内容元素的 Fluid templates/layouts/partials 文件
- Fluid template/layout/partials 将覆盖 其他扩展 的文件,例如您在 Boostrap 包 中找到的那些
- ...
在这里写一个关于这个主题的完整例子真的很难;我认为您可以从这里开始阅读一些文档:
- TYPO3 Getting started tutorial
- How to install a local extension
- Site Package tutorial
- Fluid Tutorial
我将在这里写一个基于bootstrap_package
的简短示例- 假设您将“网站包”扩展称为“site_package”
- 假设您要修改 bootstrap_package 的页面部分之一:
boostrap_package/Resources/Private/Partials/Page/Structure/Copyright.html
如果您查看 bootstrap_package 文件
bootstrap_package/Configuration/TypoScript/setup.typoscript
您会注意到以下几行:
...
partialRootPaths {
0 = EXT:bootstrap_package/Resources/Private/Partials/Page/
1 = {$page.fluidtemplate.partialRootPath}
}
...
这意味着您可以使用 TypoScript 常量:page.fluidtemplate.partialRootPath
为部分文件提供替代路径,此路径中的文件将 覆盖 原始文件在 bootstrap_package
因此,在您的 site_package 扩展中,您将提供常量(查看有关如何使用 TypoScript 的 TYPO3 文档)
page.fluidtemplate.partialRootPath = EXT:site_package/Resources/Private/Layouts/Page/
然后只需将要覆盖的文件复制到 TypoScript 常量中指定的文件夹中(确保保留子目录结构):
site_package/Resources/Private/Partials/Page/Structure/Copyright.html
修改一下就大功告成了
请注意 bootstrap_package 提供了类似的常量来覆盖其内容元素的流体文件 (partials/templates/layouts)。
最后一句话:如果你愿意,你可以从头开始你的“网站包”扩展,或者你可以使用以下网站:https://www.sitepackagebuilder.com/
生成包含所有基本相关文件和目录的“骨架”扩展;您甚至可以选择生成一个已经定制的“站点包”,以便与 bootstrap_package!
一起使用我希望我至少部分地回答了你的问题;您还可以在 TYPO3 Slack 频道 (https://typo3.org/community/meet/chat-slack)
上找到帮助