Le balisage généré pour afficher un champ de fichier est (PDF dans cet exemple):
<img src="/modules/file/icons/application-pdf.png" title="application/pdf" alt="" class="file-icon">
Je voudrais utiliser une image d'icône différente. Comment pourrais-je faire cela sans changer le contenu de / modules / fichier / icônes?
Je suppose que je pourrais masquer l'image par défaut et en afficher une autre avec CSS, mais cela semble un peu compliqué.
Deux notes supplémentaires à ce sujet:
Par exemple, j'avais besoin d'utiliser une icône personnalisée pour un fichier .bib (bibtex). Ce type est mappé dans file_default_mimetype_mapping () , mais il correspond par défaut à l'icône de texte par défaut car il n'y a pas d'icône spécifiquement définie pour ce type de mime (text / x-bibtex).
J'ai surchargé theme_file_icon () dans le template.php de mon thème, mais je l'ai fait pour que le chemin d'icône ne soit modifié que si nécessaire, et je n'ai pas eu à copier le répertoire d'icônes par défaut dans mon répertoire de thème:
La deuxième chose est que vous devez nommer l'icône de manière appropriée. Si vous conservez simplement l'utilisation de file_icon_url () , ce code de cette fonction déterminera le nom de fichier de l'icône:
Donc dans mon cas, j'avais besoin de nommer mon fichier text-x-bibtex.png. Bien sûr, si vous souhaitez simplement le nommer comme vous le souhaitez (bibtex.png dans ce cas), vous pouvez simplement définir le nom du fichier manuellement:
L'un ou l'autre fonctionnera, mais cette méthode vous permet de conserver les icônes par défaut là où elles se trouvent et de ne modifier que les choses si nécessaire.
la source
Moi et tregis avons fait ce module File Field Icons il y a un moment. J'espère que cela t'aides
la source
Vous pouvez (généralement) prétraiter des fonctions de thème. Donc si vous:
theme_file_icon()
votre thème.Copiez le
modules/file/icons
répertoire entier sur votre thème (j'ai utiliséfile_icons
) et ajoutez cette fonction de prétraitement au template.php de votre thème:Vous pouvez également effectuer des remplacements conditionnels de cette façon ala @ wonder95 mais je voulais que les choses soient simples.
la source
Tout en n'étant pas aussi propre que certaines des solutions proposées, un moyen très simple de résoudre ce problème consiste à utiliser le sélecteur d'attribut CSS3 «type». Vous pouvez l'utiliser pour ajouter rapidement votre icône personnalisée en tant qu'image d'arrière-plan à votre lien. Résultat: les deux sont liés au fichier cible. Vous pouvez ensuite masquer l'image d'origine. J'ai fait cela pour obtenir l'apparence suivante:
Voici le CSS que j'ai utilisé pour obtenir les résultats ci-dessus:
Dans mon exemple, je montrais les champs du fichier à l'aide de vues.
la source