web-dev-qa-db-ja.com

JLayout:com_contentに対してのみjoomla.edit.paramsレイアウトをオーバーライドする

私は、com_contentに対してのみjoomla.edit.paramsレイアウトをオーバーライドする方法を探しています。これは、次のようにレンダリングされます:JLayoutHelper::render('joomla.edit.params', $this)
上:
administrator/components/com_content/view/article/tmpl/edit.php、135行目あたり。

Com_contentコンポーネントに対してのみ異なるレイアウトを使用するにはどうすればよいですか?

2
FFrewin

Com_contentコンポーネントに対してのみ、edit paramsレイアウトのオーバーライドを作成できます。

一般に、JLayoutシステムは、次のフォルダーでオーバーライドを検索します。優先順位は次のとおりです。

1. templates/mytemplate/html/layouts/com_mycomponent
2. components/com_mycomponent/layouts
3. templates/mytemplate/html/layouts
4. layouts

新しいJLayoutの完全なプレゼンテーションがあります ここ

Com_contentのedit.phpテンプレートもオーバーライドする必要があったので、このオーバーライドをどのように実行したかを以下に説明します。

最初に、カスタムレイアウトオーバーライド用の新しいフォルダーを作成する必要があります。 「overrides」という名前のフォルダを作成して、次の場所に配置します。

administrator/templates/isis/html/layouts/overrides

JLayoutHelper:renderメソッドは、joomla.edit.paramsレイアウトを探すときに、まずこのフォルダー内を検索します。それをロードするには、overridesフォルダー内に同じ構造を保持する必要があります。したがって、params.phpファイルは次のように配置する必要があります:/overrides/joomla/edit/params.php

次に、記事ビューのedit.phpテンプレートファイルのオーバーライドを作成する必要があります。このファイルからカスタムレイアウトを呼び出します。

Isis temlpateのhtmlフォルダー内に、com_contentオーバーライド用のフォルダーを作成し、「com_content」という名前を付け、次に「article」という名前の記事ビューのテンプレートファイル用のフォルダーを作成します。コンポーネントからedit.phpファイルをコピーして、articleフォルダーにドロップします。

これで、edit.php内で、JLayoutHelper :: renderメソッドを調整して新しいベースパスを渡し、以下のような代替レイアウトを探すことができます。

<?php echo JLayoutHelper::render('joomla.edit.params', $this, $basePath = JPATH_ADMINISTRATOR .'/templates/isis/html/layouts/overrides'); ?>

これは、:administrator/templates/isis/html/layouts/overrides/joomla/editフォルダー内のparams.phpレイアウトを探します。

Params.phpをoverridesフォルダー内に配置して次のように呼び出すだけで、物事をより簡単に保つことができます。

<?php echo JLayoutHelper::render('params', $this, $basePath = JPATH_ADMINISTRATOR .'/templates/isis/html/layouts/overrides'); ?>

最後に、新しく作成したフォルダ内にindex.htmlファイルを追加することも忘れないでください。

JLayoutの役立つリンク:

  1. Joomla MagazineでのJLayoutプレゼンテーション
  2. ビューまたは拡張機能間でレイアウトを共有する-チュートリアル
  3. Joomla:レイアウトAPI
3
FFrewin