Cela fait désormais plusieurs mois que j'y songe, je souhaitais vous afficher l'ensemble des pièces jointes que je joins à mes articles, en un seul et unique endroit endroit. Je fais d'une pierre deux coups avec cet article en vous présentant ce plugin comme à mon habitude, mais aussi vous le voyez ci-dessous, son utilisation.

Le besoin spécifique

Je sais que j'ai une communauté véritablement très sympathique qui vient régulièrement lire ce que j'écris. Je voudrais leur rendre un peu plus la vie facile, en proposant à ma communauté un endroit unique, un article à partir duquel mes lecteurs pourront télécharger et visualiser l'ensemble des pièces jointes que je joins à mes articles (ous savez, le petit lien hypertexte en haut de mes articles à côté du libellé pj1..)

Fonctionnement

J'avais plusieurs possibilités pour faire fonctionner ce plugin. Soit je listais le contenu d'un répertoire des PJ (mais encore faut-il bien ranger ses fichiers.... oups), soit je regardais dans la base de données l'ensemble des articles qui avaient une pièce jointe associée afin de les afficher en téléchargement. J'ai opté pour cette deuxième solution (pour des question de "bons classements) .
Ce plugin se base sur une simple requête SQL qui me récupère dans mes champs personnalisés où sont stockés mes pièces jointes, l'adresse relative du fichier à télécharger, ainsi que le titre et l'identifiant de l'article auquel est rattaché cette dite pièce jointe. 
Une fois cette requête exécutée, j'affiche en faisant une simple boucle, l'ensemble des valeurs récupérées, à savoir l'url de la pièce jointe, le titre de l'article auquel est rattaché cette pièce jointe, ainsi que l'ID de cet article.

Le shortcode 

Pour afficher le résultat de cette valeur, j'ai choisi un shortcode véritablement très personnalisé que je vous conseille de changer si vous le souhaitez. Vous pourrez le retrouver à la ligne 23 du fichier attachements.php. Pour le moment, le short code à utiliser est
{PJ_attachements_seb}
.
J'ai opté pour n'afficher aucune option dans ce plugin, il crée simplement une division HTML dans laquelle vous aurez pour chaque pièce jointe, une subdivision qui vous permettra d'appliquer une feuille de style particulière, que je n'ai ici pas mise en place.

Particularité technique

Oui, je l'avoue, j'ai codé ce plugin particulièrement rapidement et, comme vous pourrez le voir en ligne 7, j'ai spécifié ici le nom de la table de ma base de données. Je ne peux que vous conseiller d'aller rechercher cette valeur dans le fichier de configuration de Joomla

Qui suis-je (Article n° 233)
Application "Excel" de suivi des tests (Article n° 515)
Mon CV (Article n° 810)
Mercelle (Article n° 812)
Statistique articles (Article n° 814)
ListPubDate : le plugin pendant à mon autre plugin pubDate (Article n° 820)
Plugin ExistFic : visualisez si des liens a href vers des fichiers deviennent non-fonctionnels (Article n° 822)
Plugin de type accordéon (Article n° 823)
Lister les éléments déclarés dans Re Replacer (Article n° 828)
Un plugin d'affiche de données "répétables" (Article n° 830)
Implémentation de la norme ISO-690 : un générateur de fichier (Article n° 836)
NL2BR, le plugin le plus simple qu'il soit ! (Article n° 838)
Notes de bas de pages (Article n° 841)
Afficher des définitions (Article n° 842)
Module de chargement conditionnel de scripts Javascript et feuilles de styles (Article n° 844)
Suivi des dernieres créations d'entreprises de votre région (Article n° 850)
Plugin d'affichage d'un Workflow, des états passés, courants et à venir (Article n° 856)
Recherche en GET dans Joomla Content (Article n° 859)
Comment générer mes images pour Instagram présentant mes articles ? (Article n° 860)
Plugin de suppression des commentaires HTML (Article n° 866)
Note-it : simuler des post-it virtuels dans Joomla via un plugin (Article n° 871)
Mon plugin no-cache ! (Article n° 874)
Plugin pour forcer le téléchargement des pdf (Article n° 875)
Synthèse d'éléments définis depuis le dernier plugin créé (notes de bas de page) (Article n° 877)
Un petit plugin listant un dossier "temporaire" défini par mes soins (Article n° 883)
Notifier un fichier téléchargeable comme une archive (Article n° 886)
Comment ajouter une fenetre modale (pour avoir notament des formulaires) dans la console d'administration Joomla 3 ? (Article n° 888)
Plugin d'ajout de bibliothèques externes (Article n° 895)
Articles Joomla "point rouge" : catégoriser un type d'article en faisant précéder son titre du caractère 🔴 (Article n° 897)
Chargement conditionnel de fichiers externes (bibliothèques) JS et CSS (Article n° 899)
Recette poisson (Article n° 901)
Extraction des favoris depuis Firefox avec PHP en local (Article n° 902)
Lister l'ensemble de vos regex PUBLIQUES publiées sur le site Regex101.com (Article n° 903)
comment puis-je changer le style d'un élément dans une page web de Joomla ? (Article n° 904)
read github (Article n° 905)
Plugin AddIdToHn (Article n° 906)
Note-it : Mise à jour de mon plugin (v2) (Article n° 907)
Plugin d'affichage des derniers fichiers modifiés dans un répertoire donné (Article n° 908)
Afficher la mention "Nouveau" sur un lien pendant une durée définie (Article n° 909)
Marche n°1 : Le parc de Vittel (Article n° 910)
Gestions de liens hypertextes ners des fichiers "natifs" (Article n° 911)
Comment "rejeter" des articles dans l'outil de recherche RokAjaxSearch volontairement ? (Article n° 912)
Afficher une message alertant une action fonctionnelle à effectuer lors de l'enregistrement d'un article (Article n° 913)

Mon Github

slhuilli1's GitHub repositories