J'ai écrit un composant et j'ai besoin d'un champ où l'utilisateur peut choisir un fichier PDF dans le gestionnaire de médias. Lorsque je règle le type de champ dans la liste des champs sur "média", le gestionnaire de média affiche uniquement les images.
Comment puis-je lui faire afficher tous les fichiers plutôt que les images?
Si quelqu'un est toujours intéressé, j'ai décrit une solution ici , dans laquelle un plug-in est utilisé pour remplacer la vue "imageslist" de com_media, de sorte qu'elle affiche tous les fichiers du gestionnaire de médias. J'ai mis le code sur GitHub .
Je serais le premier à admettre que cette solution n’est pas élégante, mais elle fonctionne pour le projet pour lequel je l’ai développée. Je considérerais ce code comme un point de départ pour votre projet et non comme une solution soignée.
Je n'ai pas testé cela dans les versions ultérieures de Joomla, mais au moins dans la version 2.5.x, il était possible d'afficher une liste de fichiers dans un dossier sous la forme de la liste déroulante.
Le chemin est codé en dur et plutôt limité, MAIS dans certains cas d'utilisation, il peut suffire de faire l'affaire et de fournir la flexibilité nécessaire.
Mesdames et Messieurs, présentant le filelist
:
<field
name="yourfile"
type="filelist"
label="COM_EXAMPLE_FIELD_YOURFILE_LABEL"
description="COM_EXAMPLE_FIELD_YOURFILE_DESC"
directory="media/com_example/files/"
hide_none="true"
hide_default="true"
/>
En prolongeant la suggestion de @ValentinDespa, vous pouvez utiliser le type de champ de formulaire filelist
et ajouter un paramètre filter
. N'importe quel expression régulière peut être ajouté ici. Voir l'exemple ci-dessous pour savoir comment filtrer les fichiers PDF uniquement.
<field type="filelist" name="pdf" label="Select PDF" directory="images" filter="\.pdf$"/>
Cela fonctionne très bien dans Joomla 3.x, BTW.
Le type de champ de formulaire Media est utilisé pour sélectionner une image. Donc, il filtre les autres fichiers. Consultez documentation Joomla pour connaître les types de champs de formulaire standard disponibles. Vous pouvez également envisager de créer votre propre type de champ de formulaire modal personnalisé pour votre composant.
Vous pouvez utiliser l'éditeur JCE avec le gestionnaire de fichiers plug-in.
https://www.joomlacontenteditor.net/downloads/plugins/file-manager