オーバーライドを更新し続ける方法は?


10

多くの人が知っているように、テンプレート、ビュー、モジュール、コンポーネントをオーバーライドすることが可能です。

主な問題は、Joomla!が更新され、オーバーライドされた(テンプレートフォルダー内の)アイテムが古くなります。

Joomlaへの更新が行われるたびにオーバーライドを更新し続けるにはどうすればよいですか?

手作業で行う必要があり、新しい更新を確認する必要がありますか、それとも他の方法がありますか?

回答:


4
  1. 上書きしたオリジナルファイルのmd5を計算する小さなスクリプトを記述します。
  2. これらのファイルパスとMD5をテンプレートのファイルにダンプします
  3. joomlaが更新されるたびに、上記のスクリプトを再度実行します。
  4. MD5の違いを確認してください。もしあれば、チェックする必要があります。

ヒント: CSSオーバーライドでこれらの変更を実行できない場合にのみ、ファイルをオーバーライドします。


これは良い考えのようですが、オーバーライドにコメントを付けると、更新からの更新されたものと更新されていないものとでmd5が明らかに異なるため、これは機能しません。
jackJoe 14

1
オーバーライド(テンプレートフォルダーで作成したファイル)ではなく、MD5オリジナルファイル(コンポーネントビューフォルダーから)を要求します。
Shyam 2014

1
ああ!そうですか!これにより、更新によって変更されたファイルを確認できます。これは素晴らしいアイデアです。バージョン管理システムを使用して、オーバーライドされたファイルだけを含むブランチを作成することができます。これにより、スクリプトを実際に作成する必要がなくなります。
jackJoe 14

12

Joomlaコアが更新されても、テンプレートフォルダーのオーバーライドは影響を受けません。それが彼らが存在する理由です。

コアJoomlaアイテムでは、オーバーライドがJoomlaコアアップデートと競合することはほとんどありません。Joomlaコアファイル、または任意のファイルをオーバーライドすると、ドキュメントドキュメントがドキュメント化されます。これが定期的に発生し、1つまたは2つ以上のサイトを管理している場合、オーバーライドファイルへのコメントは重要です。何を変更したか覚えていないだけです!

コードエディターには、新しいファイルを古いファイルと比較し、行ごとに変更内容を特定するための「diff」機能が必要です。よくコメントした場合、この差分は変更内容を正確に示し、ファイルが更新によって影響を受けたかどうかを示します。あなたの唯一の変更はあなたのオーバーライドでなければなりません...他のものは何でも、あなたは行って再度オーバーライドしなければなりません。

ただし、サードパーティによるオーバーライドは、開発者がMVC構造を正しく使用していない場合にのみ問題になります。コンポーネントまたはモジュールが適切にレイアウトされている場合、問題のtmplまたはビューはコードの更新の影響を受けません。

その拡張機能に大きな機能変更がある場合は、ファイルを文書化/コメントして比較する必要があります。


コアアップデートの影響を受けビューのオーバーライドの一例は...私はサイトが原因ビューで更新を持つcom_content部品に破損していた2.5.18へのJoomla 2.5.16、とあったdiff私が使用するものですが、複数を持つときオーバーライドするのは面倒で、多くの異なるサイトがあるため、それぞれに対して非常に困難です。
jackJoe 14

更新時にファイルを自動的に比較するというのは興味深い概念です。PHPにはdiff関数が存在します。それは...私以外の開発者によって行うことができます;)
Toni Marie

3

はい、毎回手動でファイルを比較し、変更を更新する必要があります。マイナーアップデートでは、調整が必要になる可能性は比較的小さいですが、メジャーアップグレードでは、オーバーライドされたファイルが大幅に変更される可能性があります。私はもっ​​と簡単な方法も好みますが、それが唯一のソリューションATMです。


0

Joomlaのどのバージョンでもオーバーライドは変更されません。ただし、変更されたファイルを見つけた場合、Joomlaのインストール全体をsubversionで管理することができます。

その後、subversionで適切なJoomlaコードバージョンを管理し、ベンダーマージhttp://svnbook.red-bean.com/en/1.7/svn.advanced.vendorbr.htmlを実行することもできます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.