Cette action, très proche de l'action jcontent-by-categorie, permet de  lister le contenu des sous-catégories sous une forme arborescente. Elle peut être combinée avec l'action treeview.

🆙 jcontent_by_subcat : Les articles par categories et sous-categories

Cliquer pour lire la documentation

syntaxe 1 : {up jcontent-by-subcat=id-categorie}
liste des articles d'une catégorie et ses sous-catégories
syntaxe 2 : {up jcontent-by-subcat}
liste des articles de la catégorie en cours et ses sous-catégories
syntaxe 3 : {up jcontent-by-subcat=0}
liste des articles de toutes les catégories
syntaxe 4 : {up jcontent-by-subcat}##title##{/up jcontent-by-subcat}
variante : saisie template pour articles entre shortcodes
Les mots-clés article:
##title## ##title-link## ##subtitle## ##link##
##intro## ##intro-text## ##intro-text,100## ##content##
##image## ##image-src## ##image-alt##
##date-crea## ##date-modif## ##date-publish##
##author## ##note## ##cat## ##new## ##featured## ##hits## ##tags-list##
##upnb## : nbre actions UP dans la page - ##uplist## : nbre par actions
##CF_id_or_name## : valeur brute du custom field
Les mots-clés catégorie:
##catpath## : Chemin des categories depuis la categorie racine.
ex: si on demande la categorie 2 avec 3 niveaux (subcat=3): 2.1 > 2.1.1 > 2.1.1.1
##title## ##title-link## ##link## : titre et lien de la categorie
##alias## ##note## ##id## ##count## : nombre d'articles dans la catégorie
@author: LOMART @version: UP-2.5 @license: GNU/GPLv3 @tags: Joomla

    Sélection des catégories

    • jcontent_by_subcat: ID catégorie, vide pour celle de l'article actuel ou 0 pour toutes
    • exclude: liste des id des catégories non reprises si option principale=0
    • cat-level = 99: 0 a 99 - niveau maxi exploration des sous-catégories

    filtrage et tri des articles

    • maxi: Nombre maxi d'articles dans chaque catégorie. Vide = tous
    • current: 1 pour inclure l'article en cours
    • content-plugin: prise en compte des plugins de contenu pour ##into et ##content##
    • no-published (no_published): Liste aussi les articles non publies
    • author: filtre sur auteur: liste des id user ou article, current
    • sort-by = title: tri: title, ordering, created, modified, publish_up, id, hits
    • sort-order = asc: ordre de tri : asc, desc

    Paramètres d'affichage des catégories

    • cat-template = [small]##catpath##[/small] [b]##title##[/b]: modèle pour les lignes de catégories
    • cat-tag = h5: balise pour ligne catégorie. LI pour passer en format liste UL/LI
    • cat-class: classe(s) pour la ligne catégorie
    • cat-style: style pour la ligne catégorie
    • cat-separator = »: pour séparer l'arborescence des catégories
    • cat-root-view = 1: afficher l'unique catégorie racine. root=jamais, plusieurs=toujours

    Paramètres d'affichage des articles

    • template (item-template): modele de mise en page. Si vide le modèle est le contenu
    • item-tag = div: balise pour le bloc d'un article.
    • item-style: classes et styles inline pour un article
    • item-class: classe(s) pour un article (obsolete)

    style du bloc principal

    • main-tag (block) = p: balise pour le bloc englobant tous les articles.
    • id: identifiant pour main-tag
    • main-style: classes et styles inline pour bloc principal
    • main-class: classe(s) pour bloc principal (obsolete)

    Format pour les mots-clés

    • date-format = %e %B %Y: format pour les dates
    • date-locale: localisation pour les dates. Par defaut, celle du navigateur client.
    • new-days = 30: nombre de jours depuis la création de l'article pour badge 'nouveau'
    • new-html = [span class="badge bg-red t-white"]nouveau[/span]: code HTML pour badge NEW
    • featured-html = &#x2B50: code HTML pour article en vedette
    • image-src: lorempixel.com/300/300', // image par defaut
    • image-alt = news: image, texte alternatif par defaut
    • tags-list-prefix: texte avant les autres éventuels tags
    • tags-list-style = badge;margin-right:4px: classe ou style affecte a une balise span par mot-cle
    • tags-list-separator: séparateur entre mots-cles

    Divers

    • no-content-html = lang[en=No content found;fr=Aucun contenu trouvé: texte si aucune correspondance. 0=aucun texte
    • css-head (base-css): code CSS dans le head

    Version 2.9 ajout mots-clés ##upnb## : nbre actions UP dans la page et ##uplist## : nbre par actions

    Version 3.1 Ajout option content-plugin pour prise en charge plugins de contenu. Prise en charge des mots-clés pour les customFields

    un exemple simple

    Ou plutôt, 3 exemples pour montrer les possibilités de cette action

    La catégorie "Références" (que vous pouvez retrouver dans le menu "documentation" de ce site) nous sert de support, car elle ne comporte pas trop d'articles et de sous-catégories.

    {up jcontent-by-subcat=12}

    La version la plus simple montre une vue linéaire du contenu. On maitrise mieux sa largeur et cela permet des copier-coller vers des listes papier.

    Il suffit d'indiquer l'ID de la catégorie parente. 0 permet de lister toutes les catégories et sans argument, l'action liste le contenu de la catégorie de l'article affiché.

    {up jcontent-by-subcat=12
     | cat-tag=li}

    En ajoutant l'option cat-tag=li, on demande une présentation sous forme d'une liste HTML (UL/LI)

    {up treeview | icon-folder=folder | line | expand-all}
    {up jcontent-by-subcat=12
     | cat-tag=li
     | cat-template=[b]##title##[/b] } {/up treeview}

    Cette présentation fait appel à l'action treeview pour avoir une vue dynamique de la liste. L'option cat-template permet d'afficher uniquement le titre de la catégorie.

    Avec quelques options

    Cette action ressemble beaucoup à jcontent-by-categories et jcontent-list qui ont pour but d'afficher les derniers articles (les news) sans conserver le classement par catégories.

    Cette nouvelle action conserve l'organisation par catégorie. Les articles restent dans leur catégorie.

    Les options pour gérer les catégories sont :

    • cat-level : 99 par défaut, il s'agit du nombre de niveau de sous-catégories exploré
    • cat-tag : h5 par défaut, c'est la balise pour les lignes catégories. LI permet de de passer en mode liste arborescente
    • cat-class, cat-style  : classes et styles inline pour les catégories
    • cat-template : modèle pour les lignes de categories. BBcode accepté.
      modèle par défaut : [small]##catpath##[/small] [b]##title##[/b]
      Les mots-clés disponibles sont :
      • ##title## ##title-link## ##link## : titre et lien de la categorie
      • ##alias## ##id##: l'alias et l'id de la catégorie
      • ##catpath## : le chemin des categories depuis la categorie parente demandée.
      • ##count## : nombre d'articles dans la catégorie
    • cat-root-view : uniquement si une seule catégorie est démandée, doit-on afficher son titre. si 0 (toutes) : elle n'est jamais affichée et si plusieurs, elles sont toujours visibles
    • cat-separator : le ou les caractères utilisés pour séparer les catégories affichées avec le mot-clé ##catpath##

    Un exemple : tous les articles de ce site

    Je pense que les shortcodes ci-dessous se comprennent facilement. Une action treeview pour mettre en forme la liste retournée par jcontent-by-subcat.

    {up treeview | icon-folder=folder | line | class=bg-grisPale bd-gris p1}
    
    {up jcontent-by-subcat=0
     | cat-tag=li
     | cat-template=[b]##title##[/b] [small class='badge']##count##[/small] ##note##
     | template=[a href='##link##'][b]##title##[/b][/a] ##subtitle##[small](##date-crea##)[/small] ##tags-list## [small class='badge-green']##nbup## actions UP[/small]}
    {/up treeview}

    Les options

    La table ci-dessous est un comparatif des options proposées par les différentes actions Jxxx
    A: jcontent-in-content, AL: jcontent-list, AC: jcontent-by-categorie (jnews), AS: jcontent-by-subcat, AT: jcontent-by-tags, CT: jcategories-by-tags, CM: jcontent-metadata
    Si vous avez appelé ce tableau à partir de la démo d'une action, la colonne la concernant est sur fond jaune.

    Option A AL AC AS AT CT CM Description
    principale ID(s) catégorie(s) séparé avec virgule, vide pour celui de l'article actuel ou 0 pour tout les IDs
    maxi nombre maxi d'articles dans la liste. non précisé (par défaut) = tous
    exclude 0 pour exclure l'article en cours
    current toutes les catégories seront sélectionnées sauf celles indiquées dans l'option principale
    no-published liste aussi les articles non publiés. Vrai par défaut
    content-plugin prise en compte des plugins de contenu pour mots-clé content et intro. Peut échouer en cas d'appels récursifs
    sort-by ordre de tri: title, ordering,created,modified,publish_up (par défaut),id,hits
    sort-order ordre de tri : asc, desc (par défaut)
    author filtre sur auteur: aucun (par défaut) OU id1,id2 OU article auteur de l'article en cours OU current utilisateur connecté.
    template modèle de mise en page. Si vide le modèle est le contenu
    main-tag balise pour le bloc englobant tous les articles. div par défaut, 0 pour aucun
    main-style classes et styles inline pour bloc principal (inactif si main-tag=0)
    main-class classe(s) pour bloc principal (inactif si main-tag=0)
    item-tag balise pour le bloc d'un article. div par défaut, 0 pour aucun.
    item-style classes et styles inline pour un article (inactif si art-tag=0)
    item-class classe(s) pour un article (obsoléte) (inactif si art-tag=0)
    date-format format pour les dates. '%e %B %Y' par défaut. (1)
    date-locale localisation pour les dates au format 'fr_FR'. Celui du client par défaut.
    featured-html code HTML pour article en vedette. Défaut: ⭐ ⭐
    new-days 30 par défaut. nombre de jours depuis sa création pour considérer un article comme nouveau
    new-html Code HTML pour le badge NEW. nouveau par défaut
    image-src image utilisée si aucune image n'est trouvée dans l'article. Défaut: '//lorempixel.com/300/300'
    image-alt texte alternatif si aucune image n'est trouvé dans l'article
    tags-list-separator séparateur entre les mots-cles
    tags-list-prefix texte avant les autres clés éventuelles si tag {tag-list}
    tags-list-style classe ou style pour les autres mots-clés
    no-content-html texte si aucun contenu
    css-head code CSS dans le head
    spécifique jcontent-list (ex article-category)
    title titre HTML si article trouvé.
    title-tag niveau du titre
    title-style classes et styles inline pour le titre
    title-class classe(s) pour le titre
    list-style classes et styles inline pour la liste
    list-class classe(s) pour la liste
    class idem main-class (conservé pour compatibilité descendante)
    style idem main-style (conservé pour compatibilité descendante)
    spécifique jcontent-by-subcat
    cat-level 0 a 99 - niveau maxi des sous-categories explorées
    cat-tag Balise pour les lignes catégories. LI pour passer en mode list arborescente
    cat-class classes et styles inline pour les catégories
    cat-style classes et styles inline pour les catégories
    cat-template modèle pour les lignes de categories
    cat-root-view affiche l'unique categorie racine. si root=jamais, si plusieurs=toujours
    cat-separator pour separer l'arborescence des categories
    spécifique jcontent-metadata
    meta-title-min alerte coloré si le titre contient moins de lettres
    meta-title-max alerte coloré si le titre contient plus de lettres
    meta-desc-min alerte coloré si la description contient moins de lettres
    meta-desc-max alerte coloré si la description contient plus de lettres

    (1) - Le format d'affichage est défini par l'option date-format. Sa valeur par défaut est : %e %B %Y qui affiche la date sous la forme 1 mai 2019.
    Il s'agit de la codification PHP pour la fonction strftime. Les codes usuels sont %y année sur 2 chiffres, %Y année sur 4 chiffres, %m mois sur 2 chiffres, %b nom mois abrégé en 3 lettres, %B nom mois complet, %e jour (1-31), %d jour sur 2 chiffres (01-31), %A nom jour complet, %a nom jour abrégé, %H heure (00-23), %M minutes (00-59)

    Les mots-clés

    La table ci-dessous est un comparatif des mots-clés utilisés par les différentes actions Jxxx.
    A: jcontent-in-content, AL: jcontent-list, AC: jcontent-by-categorie (jnews), AS: jcontent-by-subcat, AT: jcontent-by-tags, CT: jcategories-by-tags, CM: jcontent-metadata
    Si vous avez appelé ce tableau à partir de la démo d'une action, la colonne la concernant est sur fond jaune.

    Mot-clé A AL AC AS AT CT CM Description
    ##id## ID de l'article
    ##title## titre de l'article sans lien vers l'article
    ##title-link## titre de l'article avec lien vers l'article
    ##subtitle## sous-titre (partie du titre après le tilde) (1)
    ##maintitle## titre (partie du titre avant le tilde) (1)
    ##link## à utiliser comme argument de l'attribut href d'une balise a.
    ##intro## texte d'introduction de l'article au format HTML. (2)
    ##intro-text## texte d'introduction de l'article au format texte sans aucune balise HTML. (2)
    ##intro-text,100## variante qui permet de limiter le nombre de caractères affichés (100 dans cet exemple). (2)
    ##content## Le contenu si existant. (2)
    ##image## image d'introduction de l'article ou à défaut la première image trouvée dans le texte d'introduction....
    ##image-link## image avec lien vers l'article
    ##image-src## variante du mot-clé précédent qui permet un plus grand contrôle sur le résultat. (4)
    ##image-alt## idem
    ##date-crea## date de création (4)
    ##date-modif## date de modification (4)
    ##date-publish## date de publication de l'article (4)
    ##date-publish-end## date de fin de publication de l'article (4)
    ##date-featured## date de mise en vedette de l'article (4)
    ##date-featured-end## date de fin de mise en vedette de l'article (4)
    ##author## nom de l'auteur de l'article
    ##note## note sur l'article
    ##cat## nom de la catégorie
    ##cat-link## lien vers la catégorie
    ##new## badge nouveau si l'article est récent. Voir les options ‘new-jours’ et ‘new-html’
    ##featured## si article en vedette
    ##count## nombre d'article dans la catégorie
    ##hits## le nombre de vues de l'article
    ##tags-list## liste des mots-clés
    ##uplist## liste des actions dans l'article
    ##upnb## nombre d'actions dans l'article
    ##CF## CustomField. Remplacer CF par son nom ou son ID. Voir modèle avec %label%, %value% et %rawvalue%
    ##nivaccess## niveau d'accès requis
    ##meta-index## index ou no-index
    ##meta-follow## index ou no-index
    ##meta-title## longueur de la meta  title avec alerte colorée
    ##meta-desc## longueur de la meta description avec alerte colorée
    ##meta-key## liste des meta keywords
    spécifique jcontent-by-subcat
    ##catpath## chemin des catégories parentes

    (1) - il s'agit d'une astuce que j'utilise pour décomposer le titre d'un article en titre et sous-titre en les séparant par le caractère tilde (~). En dehors de la possibilité de styler différemment les 2 parties, un titre plus long est meilleur pour le référencement.
    Concrétement, si le tag {subtitle} est présent dans votre template et que le titre contient un tilde, il sera scindé en {titre] et {subtitle}. Dans le cas contraire, le {subtitle} sera vide et {title}: contiendra la totalité du titre de l'article.

    (2) - A la différence de Joomla, si l'introtext n'existe pas, il n'est pas remplacé par le contenu. Et vice-versa. Si le besoin existe, on peut créer un mot-clé "article,X" qui insère les X premiers caractères en supprimant les shortcodes UP.

    (3) - Exemple de template: <img src="/{image-src}" alt="{image-alt}" class="img-sepia left" width="100px">.
    si l'article ne contient pas d'image, le reste du code sera quand même inséré.

    (4) - Le format d'affichage est défini par l'option date-format. Sa valeur par défaut est : %e %B %Y qui affiche la date sous la forme 1 mai 2019. Il s'agit de la codification PHP pour la fonction strftime. Les codes usuels sont %y année sur 2 chiffres, %Y année sur 4 chiffres, %m mois sur 2 chiffres, %b nom mois abrégé en 3 lettres, %B nom mois complet, %e jour (1-31), %d jour sur 2 chiffres (01-31), %A nom jour complet, %a nom jour abrégé, %H heure (00-23), %M minutes (00-59)

    Attention : ne pas utiliser les mots-clés dans votre contenu

    Si cela est impossible, remplacez l'accolade ouvrante par son code &#123;, soit pour id : &#123;id}.
    Une autre méthode est de mettre en gras une partie : {<b>id</b>}.

    Si vous l'utilisez avec une action csv2table, pour éviter le conflit avec le séparateur point-virgule, changer le séparateur utilisé ou mettre le contenu de la cellule entre guillemets. "&amp;#123;id}" ou {<b>id</b>}

     

    Pour info, cette page utilise 23 action(s) :
    upactionslist (1) readmore (1) span (2) flexauto (2) icon (6) jcontent-by-subcat (4) treeview (2) addcsshead (2) jcontent_in_content (2) jcontent-info (1)