如何保持覆盖更新?


10

众所周知,可以覆盖模板,视图,模块,组件。

主要的问题是当Joomla!更新,并且被覆盖的项目(在模板文件夹中)已过时。

每次对Joomla进行更新时,如何保持替代更新?

我需要手工检查每个新更新吗,还是有其他方法可以做到这一点?

Answers:


4
  1. 编写一个小脚本来计算您已重写的原始文件的md5。
  2. 将这些文件路径和MD5转储到模板中的文件中
  3. 每当joomla更新时,请再次运行上述脚本。
  4. 检查MD5中的差异(如果有),则需要将其检出。

提示:仅当CSS覆盖无法完成这些更改时,才覆盖文件。


这似乎是个不错的主意,但是与覆盖可能来自更新的更新/未更新相比,注释覆盖将明显使md5与众不同,因此这行不通。
jackJoe 2014年

1
我要的是MD5原始文件(来自组件视图文件夹),而不是覆盖(您在模板文件夹中创建的文件)。
Shyam

1
啊! 我知道了!这样,我可以看到更新覆盖的文件已更改。那是个好主意,我可以使用版本控制系统,并在分支中仅包含被覆盖的文件,这样我就不需要编写任何脚本。
jackJoe 2014年

12

更新Joomla核心后,模板文件夹中的替代项均不会受到影响。这就是为什么它们存在。

在核心Joomla项目上,替代只会很少与Joomla核心更新发生冲突。当您覆盖Joomla核心文件或任何文件时,请记录文档文档。如果您经常发生这种情况,并且您管理多个站点,则在覆盖文件中进行评论至关重要。您只是不记得所做的更改!

您的代码编辑器应具有“差异”功能,以将新文件与旧文件进行比较,并逐行标识所做的更改。如果您的评论很好,则此差异将准确显示更改的内容以及文件是否受更新影响。您唯一的更改应该是您的替代...其他任何事情,您都必须去并重新替代。

但是,只有在开发人员未正确使用MVC结构的情况下,第三方替代才成为问题。如果适当地布置了组件或模块,则有关的tmpl或view应该不受代码更新的影响。

如果该扩展名发生重大变化,则肯定需要记录/注释并比较文件。


一个受核心更新影响的视图替代示例是Joomla 2.5.16至2.5.18,由于com_content组件在视图中进行了更新,我的网站被破坏了……这diff就是我使用的,但是当有多个覆盖很繁琐,而且有很多不同的站点,每个站点都很难做到。
jackJoe 2014年

这是一个有趣的概念,可以在更新时自动比较文件。diff函数存在于PHP中。可以通过除我以外的其他开发人员来完成;)
Toni Marie

3

是的,您每次必须手动比较文件并更新更改。在次要更新中,您调整它们的机会相对较小,但是在主要升级中,被覆盖的文件可能会发生重大变化。我也希望有一种更简单的方法,但这是ATM的唯一解决方案。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.