Dans le cadre de mon activité professionnelle, j'utilise le CMS Joomla à des fins de stockage et d'organisation documentaire. A ce titre, je dois positionner chacune des fiches que je gère dans une sorte de position administrative, qui pourrait effectivement s'apparenter à une rubrique, au sens Joomla du terme. Mais que nenni, ce n'est pas une rubrique !

Le concept

Toutefois, la rubrique où la catégorie de Joomla puisque c'est la même chose, ne me convient pas car je l'utilise déjà pour organiser mes documents d'une certaine manière. La position telle que je la conçois ici est une position "hiérarhique métier" dans laquelle le document doit être hiérarchiquement placé au sens métier. C'est une hiérarchie professionnelle, qui va me permettre de pouvoir organiser et afficher l'ensemble de mes articles sous une certaine forme, triée sous forme alphabétique. Si je prends un exemple, je vais pouvoir catégoriser mon article 1 dans la catégorie camion mais avec une position "/vehicule/poids-lourds/gros-volume/". La catégorie reste générique et la position affine le classement. L'idée sous-jacente est de pouvoir appliquer des modules rapidement au catégories sans avoir à les appliquer aux sous catégories. Encore une fois, il ne faut pas raisonner "gnéraliste", car ce cois sensé est le fruit d'une analyse métier du domaine. (Merise, ca sert toujours :-) )
Dans mon cas, j'utilise la catégorie de Joomla pour ranger de manière très grossière les éléments (une sorte de classement), et la position pour affiner ce rangement (qui revêt plus de la parte "classement cosmétiqsue" sur le site). L'avantage de faire ainsi et de ne pas avoir une liste sans fin de catégories dans Joomla à  niveaux (j'avais proposé ce choix et trop complexe pour les utilisateurs). Non pas que ce soit inutile, mais cela nous pose un souci de recherche car nos utilisateurs ne connaissent pas forcément les subtilités de nos fiches Joomla. C'est la raison pour laquelle nous utilisons la catégorie à des fins de classement très grossier, et à position permettra un affichage fin de ensemble des éléments de la catégorie avec une finesse plus détaillée.
 
Maintenant que vous connaissez pourquoi j'utilise ce champ texte ainsi nous allons voir comment il faut le remplir. J'ai utilisé et je me suis basé sur l'écriture d'un chemin sous la forme linux/unix. J'utilise donc le séparateur slash (/). Ce choix est purement arbitraire j'aurais pu utiliser tout comme les anciens Mac OS le séparateur deux points (:), ou le séparateur anti slash de Windows, ou n'importe quel autre caractère y compris un caractère encodé UTF-8 qui pourrait afficher une petite icône graphique comme une flècje. Toutefois, la raison pour laquelle je n'ai pas opté pour ce dernier choix, c'est qu il est beaucoup plus simple de faire la saisie dans la console d'administration en utilisant le slash qui se trouve sur le clavier, au lieu de copier-coller un caractère utf-8 à aller rechercher ailleurs.

Le plugin

 Alors à quoi ce plugin sert-il. Et bien ce plugin est un plugin qui permet simplement d'afficher le chemin dans un article. Utilisé avec le tag {position_mat}, ce plugin récupère le contenu du champ personnalisé que j'ai créé dont le nom s'appelle position. Le contenu de ce champ destiné à afficher la position, supprime le séparateur que nous avons saisi dans la console d'administration à savoir le slash et je remplace par le code HTML symbolisant une flèche pointant versa droite. Bien entendu, vous pouvez remplacer à la ligne 22 du fichier position PHP se caractère afin de spécifier un caractère UTF8.

Et en dessert...

Et oui tout bon repas se doit de clore sur un dessert. Dans mon cas, j'ai écrit un module (à l'époque je codais + des modules que des plugins) qui va récupérer l'ensemble des articles qui contiennt une valeur non vide dans ce champs, lest stocke temporairement dans un tableau pour être triés, puis les affiche sous forme de liste avec, pour chacun des éléments contenant donc une valeur dans le champs position, un lien vers la fiche en question.

Mon Github

slhuilli1's GitHub repositories