jcategories-by-tags ~ liste des catégories avec un mot-clé

Cette a été créée pour afficher par rayons (tags) le logo des marques (catégories) distribuées par un magasin.
Un clic sur le logo affiche le blog des news de la marque.

➠ jcategories_by_tags : liste des catégories d'un mot-clé (tag)

Cliquer pour lire la documentation

syntaxe : {up jcategories-by-tags=id-ou-nom-tag}
MOTS-CLES :
##title## ##title-link## ##subtitle## ##link##
##intro## ##intro-text## ##intro-text,100## ##content##
##image## ##image-link## ##image-src## ##image-alt##
##date-crea## ##date-modif## ##new## ##count## ##hits## ##tags-list##
author LOMART version UP-1.7 license GNU/GPLv3 tags Joomla
  • jcategories_by_tags: ID ou nom du tag
  • maxi: Nombre maxi d'article dans la liste
  • no-published (no_published) = 0: 1 pour obtenir les catégories non publiées
  • sort-by = title: tri: title, rgt, created_time, modified_time, id, hits
  • sort-order = asc: ordre de tri : asc, desc
  • template: modèle de mise en page. Si vide le modèle est défini par le contenu
  • main-tag = div: balise pour le bloc englobant tous les articles. 0 pour aucun
  • main-style: classes et styles inline pour bloc principal
  • main-class: classe(s) pour bloc principal (obsoléte)
  • item-tag = div: balise pour le bloc englobant tous les articles. 0 pour aucun
  • item-style: classes et styles inline pour bloc principal
  • item-class: classe(s) pour bloc principal (obsoléte)
  • image-src: lorempixel.com/150/150', // image par défaut
  • image-alt = news: image, texte alternatif par défaut
  • date-format = %e %B %Y: format pour les dates
  • date-locale: localisation pour les dates. Par défaut, celle du navigateur client.
  • new-days = 30: nombre de jours depuis la création de l'article
  • new-html = [span class="badge-red"]nouveau[/span]: code HTML pour badge NEW
  • no-content-html = [p]aucune catégorie pour ce mot-clé[/p]: retour si aucune catégorie trouvée
  • tags-list-prefix: texte avant les autres eventuels tags
  • tags-list-style: classe ou style pour les autres mots-clés
  • css-head (base-css):

    Ce site n'étant pas organisé pour permettre une démonstration de cette action, j'ai attribué le mot-clé actions à la catégorie actions qui regroupe les démonstrations des actions de UP. Il faut imaginer le résultat avec plusieurs catégories référençant le même mot-clé.

    {up jcategories_by_tags=actions}
       ##image-link##<br>##title-link##
    {/up jcategories_by_tags}

    J'indique le mot-clé comme argument pour l'option principale. J'aurais pu mettre son ID. main-class donne une mise en page sur 6 colonnes avec le contenu centré.

    Le contenu entre les shortcodes sert de modèle pour le afficher le résultat

    Avec prefset

    Pour faciliter le travail des rédacteurs, le webmaster peut définir par avance les options dans le fichier custom/prefs.ini.

    Les options par défaut, sont ajoutées dans la section "options", mais il est aussi possible de créer des jeux d'options.
    Pour cela, on crée une section dont le nom sera l'argument de l'option prefset. Appliquons cette méthode à l'exemple précédent :

    1. Ajout d'une section "image-6colonnes" dans le fichiers prefs.ini
      [image-6colonnes]
      main-class="fg-row fg-auto-6 fg-gap tc"
      template="{image-link}<br>##title-link##"
    2. Utilisation avec ce shortcode
      {up jcategories_by_tags=actions | prefset=image-6colonnes | main-class=tc}

    Le rédacteur doit juste indiquer le mot-clé et la prefset à utiliser. Cet exemple est très simple, mais imaginez-le avec des options complexes !
    Mais pourquoi une option main-class ?
    Pour vous montrer que le rédacteur peut surcharger les règles fixées par le webmaster. En effet, avoir le résultat sur 6 colonnes ne se justifiait pas !

    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), AT: jcontent-by-tags, CT: jcategories-by-tags
    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 AT CT 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 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
    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é.
    prefset jeu d'option défini par le webmaster dans custom/prefs.ini
    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 (obsoléte) (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-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)

    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), AT: jcontent-by-tags, CT: jcategories-by-tags
    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 AT CT 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
    ##link## a 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 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
    variante du mot-clé précédent qui permet un plus grand contrôle sur le résultat. 3
    idem
    ##date-crea## date de création 4
    ##date-modif## date de modification 4
    ##date-publish## date de publication de l'article 4
    ##author## nom de l'auteur de l'article
    ##note## note sur l'article
    Fragments nom de la catégorie
    ##new## badge nouveau si l'article est récent. Voir les options \"new-jours\" et \"new-html\"
    si article en vedette
    ##count## nombre d'article dans la catégorie
    42
    ##tags-list## liste des mots-clés

    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>}


    UP-LEGO

    UP est un jeu de construction,
    où chaque action est une brique
    qui interagit pour un tout harmonieux

    ico-crayon Pour info, les sections "Les options" et "les mots-clés" sont des articles Joomla ajoutés avec l'action jcontent-in-content
    <h3>Les options</h3>
    {up addcsshead=.jxx-current tr td:nth-child(6)[background-color:yellow]}
    {up jcontent_in_content=145}
    

    L'ajout de CSS permet de colorer le fond de la colonne concernée. La table, elle-même, est mise en forme par l'action csv2table et table-par-lignes pour être responsive.

    {up table-par-lignes}
      {up csv2table | model= blue |header | class=jxx-current
        | col=d-c-c-c-c-c-100
        | col-style-1=font-weight:bold;white-space:nowrap
        | css-head=
            #id.restables-clone tr td:nth-child(2)[text-align:left]
            td.st[background:yellowGreen;text-align:left !important]
        }
    ... le contenu ...