Encore une question geek de développeur à la con ? Oui peut-être !

Ma problématique

Dans le cadre de mes fonctions, je gère sur notre CMS favoris, un ensemble de fichiers PDF rattachés à un élément au travers d'un simple article Joomla content. Mes articles contiennent plusieurs dizaines de fichiers PDF. Cependant, l'ensemble de ces éléments (un ensemble de matériels techniques) doivent être regroupés entre eux.
Afin de les retrouver, et surtout de les afficher dans un certain ordre bien spécifique, il a fallu que je trouve une solution technique pour pallier ce problème. De plus, au-delà d'un fichier, ces éléments doivent être dans un ordre spécifique (de l'élément utilisé le plus fréquemment à l'élément utilisé le moins souvent), je devais les catégoriser selon deux familles, chacune de ces deux familles devant suivre l'ordre spécifique défini.
Nous avons opté pour cette solution pour sa simplicité et surtout pour ne pas toucher aux cétgories des articles qui nous sert dans la gestion normale de Joomla. Cette façon de faire n'a pour rôle que l'affichage des données sur un article spécifique

Ma réalisation sur Joomla 

Pour afficher l'ensemble de ces éléments dans l'ordre que nous voulons, j'ai commencé par créer un champ personnalisé de type texte. Dans ce champ personnalisé, je vais renseigner une sorte de chemin virtuel au format linux (ce choix est purement arbitraire mais bien pratique) qui va commencer par la catégorie dans laquelle nous devons ranger ses éléments. Concrètement, cette grande catégorie, permet de classer les éléments selon deux onglets sur ma page web.
Les chemins sont donc de la forme : /[GRANDE_CATEGORIE]/catégorie
Comme cette première grande catégorie n'a que deux grandes familles, le chemin va commencer par le nom de cette catégorie, que j'ai volontairement mis entre crochets. Ces crochets permettent simplement visuellement de voir que nous avons spécifié la catégorie au moment de la saisie de la fiche dans Joomla.
À la suite du nom de cette famille que je vais bien mettre entre crochets, afin de définir que nous sommes dans cette famille, je continue ma chaîne de caractères avec un slash, puis je spécifie une chaîne qui va contenir la grande famille. Si des sous-familles sont à créer, il suffit de les spécifier de la même manière avec le caractère séparateur / .
On obtient :
  • /[GRANDE_CATEGORIE]/catégorie
  • /[GRANDE_CATEGORIE]/catégorie/sous-famille
L'idée n'est pas de faire une hiérarchisation des familles mais bien un affichage ordonné par famille et sous familles.

Réalisation du module

Je ne vous partagerai pas le code du module ici car il est plutôt très simple, et surtout je ne l'ai pas sous la main. En effet, comme ces données sont dans un cadre professionnel, tout se trouve à mon travail.  L'idée de cet article est de partager la solution technique de classement autre que le classement par catégories qui me posait soucis (nous voulons garder les catégories Joomla.sans hiérarchisation afin de ne pas perdre nos utilisateurs)
Mais, d'une manière générale, j'ai simplement créé un module qui va permettre de lister l'ensemble des articles dont ce champ personnalisé n'est pas vide, et en fonction de la première chaîne de caractères entre crochets, je sélectionne ou non l'article en fonction que je souhaite et afficher dans la première ou la deuxième grande famille. Bien entendu, j'ai autant de modules que de grande familles.
Comme je n'ai pas besoin d'un affichage sous la forme d'une arborescence, je ne l'ai pas affiché ainsi mais en suivant ce principe d'utilisation avec mes fameux séparateurs, il est tout à fait possible de régénérer un treeview de mes articles en fonction de cette chaîne de caractères.

 



Mon Github

slhuilli1's GitHub repositories