Pourquoi ne puis-je pas ajouter une autre extension de fichier autorisée à un champ d'image Drupal 7?

12

J'ai ajouté l'extension de fichier SVG pour les téléchargements d'images via admin/structure/types/manage/image/fields/gallery_image, comme vous le voyez ci-dessous:

entrez la description de l'image ici

Mais quand je vais télécharger une image, je ne suis toujours pas autorisé à télécharger SVG.

entrez la description de l'image ici

J'ai définitivement appuyé sur "Enregistrer" dans la page d'administration, et j'ai vidé le cache, et je vois même les paramètres comme je les voulais dans la base de données, lorsque j'inspecte la field_config_instancetable. Il doit y avoir une autre table ou cache qui ne se met pas à jour. Une idée?

Joe Corneli
la source

Réponses:

7

L'image widget permet à l' interne (et silencieusement Enforces afficher Drupal 6) l'utilisation des seuls png, gif, jpget / ou jpegextensions. Ainsi, bien que vous puissiez supprimer une extension d'un champ, par exemple, j'ai supprimé gifde la plupart de mes implémentations pour éviter tout ce qui est animé, vous ne pouvez pas en ajouter à cette liste. J'imagine que c'est parce qu'il affiche en soi l'image après avoir été téléchargée et ne veut pas casser les affichages dans les anciens navigateurs IE sous la forme réelle (plus, qui sait comment les styles d'image fonctionneraient également sur eux :)

Jimajamma
la source
Bonne réponse, mais quel dommage.
Joe Corneli
2
Une discussion sur do est ici: drupal.org/node/1014816
Joe Corneli
2

Vous pouvez simplement utiliser un champ de fichier et l'implémenter hook_field_formatter_info_alterdans votre module personnalisé pour activer le formateur "Image" également pour les champs de fichier. Ensuite, vous pouvez facilement sortir le fichier SVG téléchargé en tant qu'image intégrée.

/**
 * Implements hook_field_formatter_info_alter().
 */
function MODULNAME_field_formatter_info_alter(&$info) {
  $info['image']['field types'][] = 'file';
}
yannickoo
la source
2

Comme indiqué, il n'y a pas de moyen facile de simplement autoriser le module d'image de base de Drupal à accepter SVG. Au lieu de cela, vous pouvez utiliser le module SVG Embed contribué (choisi à contrecœur sur un champ de fichier pour SVG dans cette discussion ) ou ce module SVG sandbox (non officiellement publié) .

MISE À JOUR: Je recommande maintenant svgimg également dans Sandbox, mais devrait être publié bientôt. L'utiliser en production, et très heureux.

mlncn
la source
1

Il existe également une autre solution: utiliser le module Médias . Une fois celui-ci installé, le format SVG peut être ajouté dans admin / structure / types de fichiers, sous image.

Si je ne me trompe pas, Drupal n'autorise toujours pas les SVG par défaut en raison de problèmes de compatibilité descendante (principalement IE8 et inférieurs). Cependant, je place des SVG depuis un certain temps sur des projets et je n'ai toujours pas entendu de plainte.

Karolus
la source
Je ne sais pas si c'est la bonne voie, mais Media est définitivement la voie à suivre avec ce problème.
digitgopher
Pour mémoire, j'ai créé un nouveau type appelé SVG qui est un excellent moyen de personnaliser la sortie et vous permet d'avoir une sortie différente pour les images
shaneonabike