Как обновлять переопределения?


10

Как многие знают, можно переопределить шаблоны, представления, модули, компоненты.

Основная проблема, когда Joomla! обновляется, а элементы, переопределенные (в папке шаблонов), устаревают.

Как мне обновлять переопределения каждый раз, когда производится обновление Joomla?

Нужно ли делать это вручную и проверять каждое новое обновление, или есть другой способ сделать это?

Ответы:


4
  1. Напишите небольшой скрипт, который вычисляет md5 исходных файлов, которые вы сделали переопределением.
  2. Дамп эти пути к файлу и MD5 в файл в вашем шаблоне
  3. Всякий раз, когда Joomla обновляется, запускайте вышеуказанный скрипт снова.
  4. Проверьте разницу в MD5, если таковая имеется, вам нужно проверить ее.

Совет: переопределите файлы, только если эти изменения не могут быть сделаны переопределением CSS.


Это кажется хорошей идеей, но комментирование переопределения, очевидно, сделает md5 отличным от обновленных / не обновленных, которые могут появиться в результате обновления, так что это не будет работать.
ДжекДжей

1
Я прошу MD5 оригинальные файлы (из папки просмотра компонентов), а не переопределения (файлы, которые вы создали в папке шаблонов).
Shyam

1
Ах! Я вижу! таким образом я могу видеть, какие файлы, которые я переопределил, изменились с обновлением. Это хорошая идея, я мог бы использовать систему управления версиями и иметь ветку только с переопределенными файлами, поэтому мне не нужно писать какой-либо сценарий.
ДжекДжей

12

Когда ядро ​​Joomla обновлено, никакие переопределения в папке вашего шаблона не должны быть затронуты. Вот почему они существуют.

В основных элементах Joomla переопределения будут очень редко конфликтовать с основными обновлениями Joomla. Когда вы переопределяете основные файлы Joomla или любые другие файлы, документ документа документ. Комментирование в файле переопределения является КРИТИЧЕСКИМ, если это будет происходить с вами регулярно, и вы управляете более чем одним или двумя сайтами. Вы просто не будете помнить, что вы изменили!

Ваш редактор кода должен иметь функцию «diff», чтобы сравнивать новый файл со старым и построчно определять, какие изменения были внесены. Если вы хорошо прокомментировали, это сравнение покажет вам, что именно было изменено, и было ли обновление затронуто файлом. Ваши единственные изменения должны быть вашими переопределениями ... что-нибудь еще, и вы должны пойти и переопределить.

Однако переопределения третьих сторон становятся проблемой только в том случае, если разработчик неправильно использует структуру MVC. Если компонент или модуль размещены надлежащим образом, обновления кода не должны затрагивать рассматриваемый tmpl или представление.

Если в этом расширении произошел существенный сдвиг, вам определенно нужно будет документировать / комментировать и сравнивать файлы.


Один из примеров переопределений представлений, на которые повлияло обновление ядра, был с Joomla 2.5.16 до 2.5.18, где у меня был сломан сайт из-за того, что у компонента com_content было обновление в представлениях… Это diffто, что я использую, но когда несколько переопределение, это утомительно и со многими различными сайтами, очень трудно сделать для каждого.
JackJoe

Это интересная концепция, чтобы автоматически различать файлы при обновлении. Функция diff существует в PHP. Это может сделать ... какой-то разработчик, кроме меня;)
Тони Мари

3

Да, вам нужно каждый раз сравнивать файлы вручную и обновлять изменения. При незначительных обновлениях вероятность того, что вам придется их настраивать, относительно мала, но при значительных обновлениях переопределенные файлы могут значительно измениться. Я бы тоже предпочел более простой способ, но это единственное решение банкомата.


0

Переопределение не должно изменяться в любой версии Joomla. Однако, если вы обнаружите, что какие-либо файлы были изменены, вы можете управлять всей установкой Joomla в Subversion.

Затем вы также можете управлять соответствующими версиями кода Joomla в subversion и выполнить слияние с поставщиком http://svnbook.red-bean.com/en/1.7/svn.advanced.vendorbr.html.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.