1

記事のカテゴリのカスタム レイアウトに基づいて、記事にカスタム レイアウトを使用したいと考えています。

  • スポーツカテゴリーレイアウト - スポーツ記事レイアウト
  • 科学カテゴリ レイアウト - 科学カテゴリ レイアウト

返信ありがとうございます。

更新:
以下の回答がヒントになるので、これに対処する方法について考えています。記事アイテム ページでカテゴリ レイアウトを取得できるようにする必要があります。これが難しいことは承知していますが、Joomla にはそれを行うためのすべての機能があります。

4

4 に答える 4

1

さて、この種のトリックを実行するためのはるかに簡単でシームレスなソリューションを見つけました。カテゴリ レイアウトをオーバーライドしたら、テンプレート フォルダに「sports.xml」のようなものを配置する必要があります。そうしないと、メニュー項目で機能しません (joomla blog.xml にはレイアウトに関する隠しフィールドがあり、それをオーバーライドして作成する必要があるため)。それは正しい)。この sports.xml では、記事のレイアウト用に別のフィールドを追加できます。

<field
      name="article_layout" type="componentlayout"
      label="JGLOBAL_FIELD_LAYOUT_LABEL"
      description="JGLOBAL_FIELD_LAYOUT_DESC"
      menuitems="true"
      extension="com_content"
      view="article"
      />

または、必要なレイアウトの非表示フィールドだけです。そして、それはうまくいきます。

于 2014-10-01T07:24:53.860 に答える
0

これを実現する最善の方法は、K2 ( http://getk2.org ) を使用することです。これは、一連のテンプレート オーバーライド (アイテム、カテゴリなど) を作成し、バックエンドでそれらをカテゴリに割り当てることができるためです。

ここでステップバイステップのガイドを見つけることができます: http://getk2.org/documentation/tutorials/174-templating-with-k2-and-the-concepts-of-sub-templates

切り替えを簡単にするために、すべての記事を K2 にインポートする機能も含まれています。

于 2013-02-26T00:55:38.620 に答える
0

まず、テンプレートのオーバーライドを行う必要があります。それは非常に簡単です。これを行う方法を示すドキュメントは、次の場所で参照できます。

http://docs.joomla.org/How_to_override_the_output_from_the_Joomla!_core

次に、オーバーライドで、記事が属するカテゴリ ID に基づいて if ステートメントを使用する必要があります。これは次のように実現できます。

$catid = JRequest::getInt('catid');

if($catid == 1){
    //layout for article belonging to a category with an ID of 1 goes here
}
elseif($catid == 2){
    //layout for article belonging to a category with an ID of 2 goes here
}
else {
    //standard layout goes here
}

お役に立てれば。

于 2013-02-25T23:06:13.533 に答える