web-dev-qa-db-ja.com

joomlaテンプレートからindex.phpファイルをオーバーライドする最良の方法

3.3.1のウェブサイトのテンプレートとしてprotostarを使用しています。モジュールの位置を再設計し、それらをさらに追加するために、index.phpを変更しました。

WebサイトをJoomla 3.3.3に更新したところ、すべての編集内容が失われました。 (私は大したことではないのでバックアップを持っています)。

したがって、更新するたびに編集内容が失われないようにするために、index.phpをオーバーライドする最善の方法は何なのかと考えています。他のオーバーライドと同様に、テンプレートのindex.phpをtemplate/protostar/htmlフォルダーでオーバーライドすることはできないようです。

フォーラムで、フォルダprotostarのコピーを作成し、名前を(たとえば、protostarpersoに)変更する必要があることを発見しました。それが最善の方法ですか?

どうもありがとう!

7
MagTun

はい、最善の方法は、Joomla管理者が目的のテンプレートをコピーすることです。 Extensions > Template Manager > Templatesに移動し、目的のテンプレートをクリックします。

Template Manager::Templates

次にクリックします Copy Template 新しい名前を入力します。

enter image description here

次に、それをデフォルトにして、index.phpファイルで作業します。

サイドノート:

変更がオーバーライドされた理由は、Joomla 3.0.0を使用したProtostarテンプレートの初期リリースのsicne、いくつかの修正が行われたこと、およびすべての更新パッケージに3.0.0以降のすべての更新が含まれるため、Protostarテンプレートが常にインストールされるためです。ゼロから。

あなたがしたことは、なぜコアファイルを編集することが悪い考えであるかを示す主要な例であることを覚えておいてください。コアファイルを大幅に変更し、バックアップがないために、変更を元に戻すことができないことに不満を感じる人もいます。

9
Farahmand

Linux/UNIXのdiffおよびpatchコマンドを使用して、テンプレートのコアファイルに加えた変更を保存し、テンプレートの更新時にそれらをテンプレートに簡単に再適用できるようにすることもできます。

テンプレートコアファイルに加えたすべての変更を含むパッチファイルを作成するには:

  1. テンプレートの最新バージョンをインストールします(クリーンインストール)。
  2. テンプレートのコピー手順を使用して、テンプレートを新しいディレクトリにコピーします。
  3. 新しいディレクトリのテンプレートコアファイルを編集します。
  4. Joomla_root/templateディレクトリにいることを確認してください。
  5. diff -rupN template_original/template_new /> template.patch

最近更新されたテンプレートにパッチファイルを適用するには:

  1. テンプレートを最新バージョンに更新します。
  2. テンプレートのコピー手順を使用して、テンプレートを新しいディレクトリにコピーします。
  3. Joomla_root/template/template_newディレクトリにいることを確認してください。
  4. パッチ-p1 <template.patch

これがお役に立てば幸いです。

差分とパッチの10分のガイド

2
Chrissy