Cette action est un outil pour le webmaster.

Il permet d'avoir une vue synthétique sur les niveaux d'accès, les metas index et follow, les dates de début et fin de publication et de mise en vedette.

A la différence de l'action jcontent-metadata qui affiche les méta-données des articles d'une ou plusieurs catégories, jmenu-metadata part de l'organisation des menus et prend en charge ses metadatas.

🆙 jmenus_metadata : liste des menus avec metadatas

Cliquer pour lire la documentation

syntaxe : {up jmenus-metadata=menutype}
MOTS-CLES MENUTYPE:
##id## ##menutype## ##title## ##description##
MOTS-CLES ITEM MENU:
##id## ##title## ##title-link## ##menutype## ##note## ##access## ##language##
##level## ##type## ##home##
##image## icon ou class ?
##publish_up## ##publish_down## ##index## ##follow##
MOTS-CLES ARTICLES
##id##, ##title##, ##title-link', ##title-size##, ##alias##, ##state##, ##access##, ##featured##,
##created##, ##modified##, ##publish_up##, ##publish_down##
##catid##, ##catname##, ##language##, ##index##, ##follow##
##featured_up## ##featured_down##
Les clés des champs JSON
##attribs.key## ##metada.key## ##images.key## ##urls.key##
@author: LOMART @version: UP-5.1 @license: GNU/GPLv3 @tags: Joomla
  • jmenus_metadata: prefset, liste menutype (sep:virgule) ou vide pour tous
  • menutype-exclude: liste des menutypes non repris. (sep:virgule)
  • menuid: ID menu parent pour limiter à cette branche

Balise et style du bloc principal

  • main-tag (block) = ul: balise pour la liste des fichiers
  • style: classes et styles
  • id:

Modèle de présentation

  • public-only: 1: visible par les robots, 0: visible par utilisateur courant
  • template-menutype = [h2]##title##[/h2]: Modèle pour les lignes menutype
  • template-menu = ##state[0:icon-unpublish t-rouge,1:,-2:icon-trash t-gris] # [span class="%%"] [/span] ####home[1:fa fa-home,0:] # [span]%%[/span] ####image##[b]##title-link##[/b] (id##id####language!* # - %%##) ##access!Accès public # [span class="bg-red t-white ph1"]%%[/span]####menutype## / ##type## ##publish_up>#now # [mark class="t-vert"] publié le %% [/mark]## ##publish_down>#now # [mark class="t-rouge"] dépublié le %% [/mark]####index=noindex # [span class="t-red"] %%[/span]## ##follow=nofollow # [span class="t-red"] %%[/span]####note # [div class="t-bleu i"]%%[/div]##: Modèle pour les lignes menu
  • template-article = ##featured[1:⭐,0:] # [span]%%[/span] ####title-link## (##id##) ##access!Accès public # [span class="bg-red t-white ph1"]%%[/span]## ##index=noindex # [span class="t-red"] %%[/span]####follow=nofollow # [span class="t-red"] %%[/span]##: Modèle pour les lignes article

  • menu-state-show = 1,0,2,-2: liste des états affichés pour les menus : 0:inactif, 1:actif 2:archive, -2:poubelle
  • article-state-show = 1,0,2,-2: liste des états affichés pour les articles : 0:inactif, 1:actif 2:archive, -2:poubelle
  • article-sort-by = title: tri: title, ordering, created, modified, publish_up, id, hits, random
  • article-sort-order = asc: ordre de tri : asc, desc

Format pour les mots-clés

  • date-format = %d/%m/%Y: format pour les dates
  • date-locale: localisation pour les dates. Par défaut, celle du navigateur client.

Style CSS

  • css-head (base-css): style ajouté dans le HEAD de la page

Utilisation

La copie d'écran ci-contre montre l'affichage généré par ce shortcode pour l'administrateur du site.

{up jmenus-metadata=mainmenu }

L'option principale est le nom du ou des menus affichés (séparateur : virgule). 

Le résultat montre la liste des items du menu avec une mise en évidence du niveau d'accès, des robots index et follow et de son type (article, blog, alias, séparateur, ...).
Pour les menus donnant accès à un ou plusieurs articles, la liste de ceux-ci est affichée avec le titre cliquable, le niveau d'accès, les dates de début et fin de publication et mise en vedette, ...

jmenus-metadata

Note: cette action utilise pleinement les nouvelles possibilités des mots-clés

Le contenu des lignes de la liste est défini par trois options :

template-menutype

Sa valeur par défaut est : 

[h2]##title##[/h2]
title
son titre

id
son id

menutype
son nom interne

description
sa description

template-menu

Sa valeur par défaut utilise tous les mots-clés proposés : 

##state[0:icon-unpublish t-rouge,1:,-2:icon-trash t-gris] # [span class="%%"] [/span] ##
##home[1:fa fa-home,0:] # [span]%%[/span] ##
##image##
[b]##title-link##[/b] 
(id##id####language!* # - %%##) 
##access!Accès public # [span class="bg-red t-white ph1"]%%[/span]## 
##menutype##
 / ##type## 
##publish_up>#now # [mark class="t-vert"] publié le %% [/mark]## 
##publish_down>#now # [mark class="t-rouge"] dépublié le %% [/mark]##
##index=noindex # [span class="t-red"] %%[/span]## 
##follow=nofollow # [span class="t-red"] %%[/span]##
##note # [div class="t-bleu i"]%%[/div]##

Ne vous inquiétez pas, je vous explique tous cela ci-dessous. 

state
Indique l'état du lien qui peut être : 1=publié, 0=dépublié, 2=archivé ou -2=poubelle

##state[0:icon-unpublish t-rouge,1:,-2:icon-trash t-gris] # [span class="%%"] [/span] ##

En clair, nous remplaçons la valeur par des icônes font awesome colorées. L'état "publié" considéré comme normal n'est pas indiqué.

L'option state-show (par défaut: 1,0,2,-2) affiche tous les menus. Vous pouvez réduire sa portée.

home
pour mettre en évidence le lien de menu "accueil". Cette information (0 ou 1) n'étant pas très graphique, nous utilisons les valeurs de remplacement proposées par la nouvelle version des mots-clés.

##home[1:fa fa-home,0:] # [span class="%%"][/span] ##

Décryptons cette formulation : pour le mot clé home, on remplace la valeur 1 par fa fa-home (une icône Font-Awesome) et 0 par rien. Il suffit ensuite de l'utiliser à la place de %% dans le bloc HTML. Notez l'espace entre le dernier ] et ##. Il sépare l'icône du titre uniquement si besoin.

image
La représentation de l'icône définie dans l'onglet "Type de lien" par les champs "Classe d'icône de lien" ou "Image du lien" et "Classe de l'image"

title
title-link
son titre cliquable ou non

id
language
Entre parenthèse, nous affichons l'id du menu précédé du label id ainsi que la langue utilisée pour le menu si elle est différente de toutes (*). 
A la différence du label id, les espaces et le tiret devant la langue sont affichés seulement si nécessaire

(id##id####language!* # - %%##)
access
le niveau d'accès requis pour accéder au contenu.
Comme il est plus judicieux de ne mettre que les niveaux protégés, nous utilisons cette forme de mot-clé. 

##access!Accès public # [span class="bg-red t-white ph1"]%%[/span]##

En clair, cela donne : on affiche le niveau d'accès uniquement s'il est différent de "Accès public". Un bloc HTML permet de le mettre en forme

menutype
le nom unique du menu auquel il est rattaché

type
le type de contenu proposé par ce lien de menu 

  • un simple article. Exemple "article #2: Présentation" pour l'article d'id 2 dont le titre est présentation
  • un blog. Exemple "blog category #17: News" pour un blog de la catégorie News d'id 17
  • un composant. Exemple "cgisotope page #1"  pour la liste des démos propulsée par l'extension CGIsotope de Pascal Leconte
  • un alias avec son menu origine
  • un sous-titre (heading), un séparateur (separator)
  • une URL avec son lien
  • dans les autres cas, une information du type "users edit profile" pour l'édition du profil utilisateur
publish_up
publish_down
Pour avoir uniquement les dates de début et fin de publication postérieures à aujourd'hui, j'utilise cette forme de déclaration pour les mots-clés :

##publish_up>#now # [mark class="t-vert"] publié le %% [/mark]## 
##publish_down>#now # [mark class="t-rouge"] dépublié le %% [/mark]##

Le mot-clé #now est spécifique à cette action, il retourne la date et heure actuelle.
Donc, si la date est plus grande qu'aujourd'hui, nous l'affichons précédée d'un libellé

Il est également possible d'utiliser une action php pour retourner la date est heure actuelle :

##publish_up>{up php=echo date('Y-m-d H:i:s');} # [mark class="t-vert"] publié le %% [/mark]##

ou l'action date :

##publish_up>{up date | format=%Y-%m-%d %H:%M} # [mark class="t-vert"] publié le %% [/mark]##

Attention : il est impératif que l'option date-format soit compatible, soit date-format=%Y-%m-%d %H:%M

index
follow
Par défaut, nous avons ces déclarations similaires de mots-clés pour index et follow :

##index=noindex # [span class="t-red"] %%[/span]##
##follow=nofollow # [span class="t-red"] %%[/span]#

Soit si index est égal à noindex, il est affiché en rouge. Pour une autre valeur, rien n'est affiché.

Pour avoir index en vert et noindex en rouge, il suffit de dupliquer les règles, chacune s'appliquant uniquement à sa valeur, soit :

##index=noindex # [span class="t-red"] %%[/span]##
##index=index # [span class="t-green"] %%[/span]##

J'aurais pu rédiger le mot-clé de cette manière qui retourne la totalité du bloc HTML. Je la trouve moins claire, mais je vous laisse découvrir les possibilités offertes. :

##index[noindex:[span class="t-red"] NO-INDEX[/span],index:[span class="t-green"] INDEX[/span] ##
note
La note saisie dans l'onglet principal du menu.

level
Ce mot clé retourne le niveau d'imbrication du lien menu

template-article

Sa valeur par défaut utilise tous les mots-clés proposés : 

##featured[1:⭐,0:] # [span]%%[/span]##
##title-link## (##id##)
##access!Accès public # [span class="bg-red t-white ph1"]%%[/span]##
##index=noindex # [span class="t-red"] %%[/span]##
##follow=nofollow # [span class="t-red"] %%[/span]##

L'article sur le codage des mots-clés est incontournable pour comprendre les explications ci-dessous.

id
l'identifiant de l'article

title
title-link
le titre avec ou sans lien vers l'article

title-size
Ce mot clé permet d'alerter en cas de titre trop court ou trop long pour le référencement.

Une idée de codage pour le mot clé :

##title-size>55 # (trop long: [span style="color:red"]%%[/span])##
##title-size<10 # (trop court: [span style="color:orange"]%%[/span])##

Avec le codage ci-dessus, la longueur sera indiquée en rouge pour un titre trop long ou en orange si trop court. 
Aucune information si le titre fait entre 10 et 55 caractères.
Tenez compte de la longueur du préfixe si votre site est configuré pour l'afficher

alias
l'alias de l'article

state
Indique l'état du lien qui peut être : 1=publié, 0=dépublié, 2=archivé ou -2=poubelle

##state[0:icon-unpublish t-rouge,1:,-2:icon-trash t-gris,2:icon-archive t-orange] # [span class="%%"] [/span] ##

En clair, nous remplaçons la classe CSS pour afficher des icônes font awesome colorées. L'état "publié" considéré comme normal n'est pas indiqué.

access
Le niveau d'accès requis pour lire l'article.
Comme il est plus judicieux de ne mettre que les niveaux protégés, nous utilisons cette forme de mot-clé. 

##access!Accès public # [span class="bg-red t-white ph1"]%%[/span]##

En clair, cela donne : on affiche le niveau d'accès uniquement s'il est différent de "Accès public". Un bloc HTML permet de le mettre en forme.

featured
pour savoir si l'article est en vedette, on utilise ce codage

##featured[1:&#x2B50;,0:] # [span]%%[/span]##

La valeur lue dans la table des articles est de 1 si l'article est en vedette. Dans ce cas, on affiche le caractère Unicode étoile. Pour 0, on affiche rien.

created
modified
publish_up
publish_down
featured_up
featured_down
Les dates de création et de modification de l'article, ainsi que celles de début et fin de publication et mise en vedette.

Pour la mise en forme, l'action propose 2 options : date-format et date-locale

voir le format des dates sur l'aide-mémoire rédacteur

Pour l'affichage conditionnel, inspirez vous de publish_up du template menu

catid
catname
l'id et le nom de la catégorie de l'article

language
Le laangage de l'article

index
follow
Les indicateurs pour le référencement. 

Voir les explications pour le template menu

attribs.key
metadata.key
images.key
urls.key
Il est possible de récupérer la valeur d'une clé d'un des 4 champs JSON d'un article.

L'utilisation des fonctions de mise en forme décrites dans l'article  les mots-clés  est possible.
Exemple : ##attribs.canonical_url # URL canonique:%%##  affichera l'url uniquement si elle est définie.

Pour info, cette page utilise 11 action(s) :
upactionslist (1) flexauto (1) csv2def (3) jcontent-info (1) div (1) html (1) text-blink (1) tabslide (1) toc (1)
Cliquer pour lire la documentationN'oubliez pas la documentation au début des démos. 
Étant lue directement dans le script de l'action, elle a toujours les dernières informations