このようなサブカテゴリも表示するカテゴリのリストを表示する方法については、しばらく前から検索してきました。
この場合、コンテンツのリストにはサブカテゴリレベル(またはカテゴリ内の記事の名前)のみが表示されますが、必要なだけサブカテゴリを表示したいと思います。
カテゴリリストまたはブログを作成しようとしましたが、出力が希望どおりではありません。
基本的に、Intro
(メニューに設定されたカテゴリBasics
のサブカテゴリです)をクリックする必要があります。入手したいのは、カテゴリ名のリストです。サブリストには、サブカテゴリや記事へのリストが含まれているので、クリックして移動できます。
Joomlaのコアモジュールでこれが不可能な場合、これを取得できるモジュールはありますか?
エディターを使用して、リンクのすべてのサブリストを含むリンクのリストを手動で作成できることはわかっていますが、モジュールがそれを実行できると便利です。
リンクを参照してください:
https://stackoverflow.com/questions/17988998/joomla-get-subcategories-of-custom-parent-category
$catID = JRequest::getVar('id');
$categories = JCategories::getInstance('Content');
$cat = $categories->get($catID);
$children = $cat->getChildren();
print_r($children);
いくつかの解決策があります:
Template Overrides を使用して、カテゴリビューの代替レイアウトを作成します。このビューでは、JCategories
を使用してカテゴリツリーを取得します。ここにサンプルがあります:
_$model_categories = JCategories::getInstance('Content');
$root = $model_categories->get('root');
$categories = $root->getChildren();
_
すべてのカテゴリでgetChildren()
を使用して、その子を取得できます。
上記すべてを作成して、カテゴリーIDを収集します。次に、収集されたIDを使用して、それらのカテゴリーのすべての記事をデータベースから取得します。配列キーがカテゴリIDになるArticlesマップ配列を作成して、配列が次のようになるようにします。
_Array(
CATEGORY1_ID => array(
1=>YOUR_ARTICLE_OBJECT1,
2=>YOUR_ARTICLE_OBJECT2,
3=>YOUR_ARTICLE_OBJECT3
),
CATEGORY2_ID => array(
1=>YOUR_ARTICLE_OBJECT1,
2=>YOUR_ARTICLE_OBJECT2,
)
);
_
そうすれば、すべてのカテゴリの記事を取得するのに必要なクエリは1つだけになります。次に、単にカテゴリを印刷するときに記事マップを使用します。
このソリューションには欠点があります。コンポーネントは、もちろん必要のないモデルからのクエリを引き続き使用します(そのうちの約2つ)。常に、ある種のサイトマップコンポーネントを使用して同じビューを取得できますが、それらの多くはありません。
Joomla 3.xでは、JoomlaのネイティブのCategoriesモジュールを使用できます。
あなたの例は3つのカテゴリを示しているので、記事内から3つのモジュールをロードし、これらのモジュールを構成して、必要な情報を表示します。
私が行うモジュール構成:
必要なページに対応する記事の内容:
{loadposition inarticle-categories1}
{loadposition inarticle-categories2}
{loadposition inarticle-categories3}