如何防止在 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 包
  • 中找到的那些
  • ...

在这里写一个关于这个主题的完整例子真的很难;我认为您可以从这里开始阅读一些文档:

我将在这里写一个基于bootstrap_package

的简短示例
  1. 假设您将“网站包”扩展称为“site_package”
  2. 假设您要修改 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)

上找到帮助