samedi, 06 novembre 2021 19:05

Module comment ajouter une aide à mes menus pour savoir ce qu'ils retournent

Écrit par
Évaluer cet élément
(0 Votes)

Si vous aussi vous utilisez le module Joomla Content pour partager des articles contenant des informations, peut-être que vous avez aussi trouvé difficile ou pas pratique, de spécifier dans les menus, les conditions de restriction. J'entends par là, par analogie au langage SQL, l'équivalent de ce que vous trouvez dans la clause WHERE des requetes lancées par les menus Joomla.

En effet, lorsque vous créez un menu de type Joomla Content, vous avez la possibilité de spécifier plusieurs types de sélections comme la sélection des éléments par tags, par catégories, sélection d'un article spécifique, et même sûrement d'autres types de section que je ne mentionne pas ici.

selection menu

Or, si vous êtes l'auteur de votre propre site internet, ces conditions de restriction ne peuvent que vous paraître logiques. Cependant, si nous nous mettons désormais à la place de l'utilisateur, il peut s'avérer compliqué de comprendre les résultats retournés à l'écran : sont-ils ceux d'une catégorie ? répondant à un tag ? Et je ne parle là que des articles, sans imaginer les conditions de restrictions de composants additionnels !
 
Prenons un exemple concret :
Je gère des articles joomia correctements taggés, qui sont classés dans des catégories. Là déja, l'ensemble des articles retournés peuvent être issus de 3 types de sélections différenets (liste d'articles, éléments taggés, élément d'une catégorie). Comment l'utilisateur peut-il comprendre l'origine du jeu de données ? 
Sous Joomla, la saisie de la catégorie est une valeur obligatoire. Or, dans mon cas, les articles doivent pouvoir être appeler de plusieurs menus. En effet, si un article appartient à la catégorie voiture et est peint en rouge, cet article ne doit sortir si le menu retourne les conditions "voiture",  ou qu'il retourne les tags "rouge", ou même si le menu sélectionne ces deux conditions simultannées. Cette double sélection faisant partie de mon cahier des charges.
Comment alors l'utilisateur, par exemple, peut-il comprendre pourquoi un même article se retrouve-t-il retourné depuis deux menus différents ? (celui retournant une liste d'articles par catégories, et un autre retournant les articles par tags). Je souligne bien le fait que la problématique rentre dans un cadre professionnel bien particulier, je devais trouver une solution que je vous propose ici.
 
Alors cette solution parlons-en. Mon idée est d'avoir un petit fichier XML, qui sera stocké dans le sous-répertoire de mon dossier dans lequel je développe/stocke ce module. Dans ce répertoire, nous allons retrouver un ensemble de fichiers XML. Ces fichier XML portent le numéro de menu (l'ID), suivi d'un point separateur puis de l'extension du fichier XML (Ex. : 135.xml pour le menu 135).
Dans le cas où je veux donner des informations sur le menu portant l'identifiant 135, le sous-répertoire devra posséder un fichier 135.xml. Le fait de me baser sur les identifiants des menus permet de ne jamais avoir de doublons. De plus, cela simplifie amplement la gestion.
 
Voici le contenu XML d'un menu :
<?xml version="1.0"?>
 <aide_menu>
	<nom>Accueil</nom>
	<fonctionnalite>Ce menu retourne l'utilisateur à la page d'accueil du site</fonctionnalite>
	<conditions_restriction>Aucune condition particulière, le menu </conditions_restriction>
	<aide_technique>Aide technique libelle</aide_technique>
 </aide_menu>
 Comme vous pouvez voir, ce fichier XML ne comporte "que" quatre éléments. Nous retrouvons :
  • le nom du menu,
  • une description de ses fonctionnalités,
  • les conditions de restriction sous l'unique forme textuel (ce n'est que pour informer l'utilisateur, par pour faire une restriction au sens données/sgbd)
  • une aide technique sous la forme d'une chaine de caractères
Les conditions de restriction peuvent s'apparenter par analogie langage SQL au contenu de la clause WHERE mais en langage naturel compréhensible par les non informaticiens/techniciens.
L'aide technique permet de stocker pour vous administrateur Joomla, une chaîne de caractères vous permettant de stocker une phrase qui jouera le rôle d'aide mémoire pour l'admin du site uniquement. Cette dernière rubrique ne sera accessible en front end uniquement si vous êtes connecté en tant qu'administrateur.
Maintenant que vous avez vu le contenu de ce type de fichier, il vous suffira, de créer un module de ce type, que vous placerez où vous voulez en termes de positions, de droits, comme un module tout le plus classique. Dans la mesure où il n'est pas possible facilement de rajouter un champs typé dans les menus fournis par Joomla par héritage, j'ai opté pour la création de petit fichier externe XML pour stocker ces informations.
 
Voilà pour les fonctionnalités. Je vous laisse analyser et recopier, reprendre tout le code accessible bien évidemment comme tous ceux de tous mes articles, sous licence libre
 
Lu 449 fois Dernière modification le dimanche, 07 novembre 2021 09:09