web-dev-qa-db-ja.com

管理テンプレートにHTMLオーバーライドを挿入する

特定の管理テンプレート(isis)にいくつかのhtmlオーバーライドを作成したいと思います。したがって、すべてのコードをテンプレートのディレクトリに投入することもできますが、更新するとすべての変更が消去されるので、これは最良のアイデアではないかもしれません。現在、私には3つのアイデアがあります。どちらを好むか、またはもっと良いアイデアがあるかどうかを尋ねたいと思います。

(I)

最良のシナリオは、これらのオーバーライドをコンポーネントに含め、その場所をJoomla!に登録することです。次のパスを想像してみてください:

/admininistrator/com_somecomponent/overrides/…

それのすべての内容は次のように扱われるべきです

/administrator/templates/<sometmpl>/html/…

しかし、そのパスをシステムに登録して、ファイルを取得できるようにする場合は、どうすればよいですか?

(II)

もう1つの方法は、管理テンプレート全体をコピーし、それをアクティブにして、そこにあるすべての変更をハックすることです。しかし、このコピーされたテンプレートは、「実際の子テーマ」ではないため、「親/元の」の更新を取得しません。 更新を存続させたいので、どうすればよいですか?

(III)

さらに別の方法として、テンプレートからコンポーネントを指すようにシンボリックリンクを作成することもできます。

$ pwd 
$ /administrator/templates/<sometmpl>/html/
$
$ ls -la
$ com_content --> ../../../com_custom/overrides/com_content

このように、更新が発生するたびにこのリンクを作成するように注意する必要があります。プラグイン内で実行できることは、"onExtensionAfterUpdate"イベントをリッスンすることです。しかし、それは多くのコードを必要とし、更新がめったに発生しないため、それをテストする方法がわかりません。

[〜#〜]要約[〜#〜]

コアコンテンツタイプを拡張することは、長い間、本当にやりたいことであり、私はそれを行うための良い方法を探しています。だから、誰かが以前にそれをしたことがあるなら、私はそれぞれの助けにとても感謝しています!

3
philipp

オプション1をお勧めします。

オーバーライドしたいとしましょう:

管理者/コンポーネント/com_admin/views/sysinfo/tmpl/default.php

このファイルをコピーするだけです

管理者/テンプレート/isis/html/com_admin/sysinfo/default.php

注:ご覧のとおり、これはtmplを除外しますディレクトリ

パスを登録する必要はありません... Joomlaは自動的にオーバーライドを使用します。

1
Lodder