Je cherche depuis un moment déjà comment afficher une liste de catégories contenant également des sous-catégories, par exemple:
Dans ce cas, la liste des contenus ne montre qu'un niveau de sous-catégorie (ou le nom des articles dans la catégorie), mais je voudrais éventuellement afficher autant de sous-catégories que je le souhaite.
J'ai essayé de créer une liste de catégories ou un blog, mais le résultat n'est pas ce que je veux:
En gros, je dois cliquer sur Intro
(qui est une sous-catégorie de la catégorie Basics
définie dans le menu). Ce que je voudrais obtenir, c'est une liste des noms de catégories, avec des sous-listes contenant des listes de sous-catégories et/ou d'articles, afin que je puisse cliquer et me déplacer.
Si ce n'est pas possible avec les modules de base de Joomla, existe-t-il un module qui me permet de l'obtenir?
Je sais que je pourrais créer manuellement une liste de liens avec toutes les sous-listes de liens avec l'éditeur, mais ce serait bien si un module pouvait le faire pour nous.
voir le lien:
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);
Il y a peu de solutions:
Utilisez Remplacements de modèle pour créer une mise en page alternative pour la vue des catégories. Dans cette vue, utilisez JCategories
pour obtenir l’arborescence des catégories. Voici un échantillon:
$model_categories = JCategories::getInstance('Content');
$root = $model_categories->get('root');
$categories = $root->getChildren();
Vous pouvez utiliser getChildren()
pour que chaque catégorie obtienne ses enfants.
Vous créez tout ce qui précède, mais collectez les identifiants de catégories. Ensuite, récupérez dans la base de données tous les articles de ces catégories en utilisant les identifiants collectés. Créez des articles map array où la clé du tableau sera la catégorie id afin que votre tableau se présente comme suit:
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,
)
);
De cette façon, vous n'aurez besoin que d'une seule requête pour obtenir des articles pour toutes les catégories. Ensuite, lors de l’impression de la catégorie, utilisez la carte des articles.
Cette solution a des inconvénients. Votre composant utilisera toujours les requêtes du modèle dont vous n'avez bien sûr pas besoin (environ 2 d'entre elles). Vous pouvez toujours utiliser une sorte de composant Sitemap pour obtenir la même vue, mais ils ne sont pas nombreux.
Dans Joomla 3.x, vous pouvez utiliser le module Catégories natif de Joomla.
Votre exemple montre 3 catégories, donc je chargerais trois modules à partir de l'article, et configurerais ces modules pour afficher l'information que vous voulez.
MODULE CONFIGURATION JE FAIS:
CONTENU DE L'ARTICLE CORRESPONDANT À LA PAGE QUE VOUS VOULEZ:
{loadposition dans article-categories1}
{position de chargement dans article-catégories2}
{position de chargement dans article-catégories3}