Comment ajouter une description à un champ d'image?

8

J'ai un type de contenu qui a un champ du type champ d'image .

Lors de l'édition de ce champ, je vois que je peux:

Enable Alt field

et peut également:

Enable Title field

Existe-t-il un moyen d' ajouter un champ de description à afficher sous chaque image.

chefnelone
la source

Réponses:

3

Une autre option à considérer et qui peut ne pas fonctionner pour vous est d'utiliser le module EXIF ​​et de le faire saisir automatiquement la légende EXIF, puis vous êtes prêt à effectuer un téléchargement en masse en utilisant quelque chose comme: Widget Imagefield Multiupload Vous ajoutez simplement un champ EXIF qui saisit les données d'image et exécute drush exif-update mais je ne sais pas si cela correspond à votre cas d'utilisation, cela dépend uniquement des images ayant des données EXIF ​​intégrées (c'est-à-dire d'Adobe Lightroom ou iPhoto).

C'est principalement la façon dont j'ai construit mon nouveau site, High Rock Photo, mais uniquement avec des images uniques dans mon cas, mais je pense qu'il serait extensible avec le Widget Multiupload Imagefield. Je pensais juste que je le jetterais là-bas.

Voici ma recette:

  • Module de titre (convertit le titre traditionnel en champ afin que vous puissiez faire des choses avec).
  • Jeton
  • Nodetitles automatiques
  • Exif

  • Vous devez ajouter Multiupload Imagefield Widget comme mentionné ci-dessus. J'ai utilisé ce module mais pas dans cette recette exacte.

Essentiellement, j'ai utilisé le module Titre et remplacé le titre traditionnel afin que vous puissiez le définir comme non requis. Utilisez Auto Nodetitles pour récupérer un jeton des données Exif de l'image et utilisez-le comme titre automatique. Notez que vous pouvez vraiment utiliser les données Exif pour n'importe quel champ à afficher, vous n'aurez peut-être même pas besoin de remplacer complètement le non-sens du titre. Si j'ai un peu de temps, je lancerai un test avec ceci en utilisant le widget de téléchargement multiple. Pour la description de mon image, j'utilise l'Exif iptc_captionde mon image.

Notez qu'il existe un bogue (pas encore corrigé ou auquel le responsable a répondu) pour Exif qui vous fait exécuter drush exif-update chaque fois que vous réenregistrez un nœud. Pas idéal.

Danny Englander
la source
3

Pour ce faire, vous devez ajouter une autre colonne au type de champ, pour lequel il n'existe actuellement aucune prise en charge native.

Vous n'êtes pas seul à vouloir cette fonctionnalité (je l'aimerais certainement) et il existe un correctif qui ajoute une hook_field_schema_alter()fonction au module de terrain, que vous pouvez utiliser pour ajouter des colonnes supplémentaires. Je ne l'ai pas essayé mais les commentaires et tests sur le lien ci-dessus semblent suggérer que cela fonctionne.

Gardez à l'esprit que si vous suivez cette voie, vous devrez également implémenter quelques autres crochets ( hook_field_widget_form_alter()par exemple), ce n'est donc pas une solution miracle.

Si vous n'êtes pas prêt à patcher le noyau, vous voudrez peut-être simplement utiliser le module Field Collection pour accomplir quelque chose de similaire. Vous pouvez ajouter un élément de collection contenant un widget d'image et un widget de zone de texte pour obtenir essentiellement le même effet (bien qu'il y ait un très léger impact sur les performances).

Clive
la source
1
Oui, l'option Field Collection fonctionne. Je n'ai jamais vraiment remarqué d'impact sur les performances. Travailler avec eux peut cependant être un peu pénible. Retravailler le balisage peut également être un peu difficile.
mpdonadio
1
J'ai aussi pensé à Field Collection, mais je dois télécharger 100 images. Je peux le faire à la fois avec le champ image et le module multiupload_imagefield_widget. Si j'utilise la collection Field, je dois télécharger manuellement chaque image.
chefnelone
Hmm, on dirait que patcher le module de terrain est le seul moyen de le faire
Clive
+1 pour Field Collection, je pense que cela fonctionnerait très bien pour cela.
Danny Englander
Je vois, je vais essayer de trouver une autre façon de le faire.
chefnelone
3

Ce problème m'a inspiré pour construire le module Image Field Caption pour Drupal 7.

Le module ajoute une zone de texte supplémentaire, similaire aux champs de texte alt / title, pour les champs d'image. La zone de texte de la légende peut être utilisée pour ajouter du texte brut ou une description html à un champ d'image.

  1. Téléchargez le module
  2. Activer le module
  3. Ajouter un type de contenu avec un champ d'image ou utiliser un type de contenu existant avec un champ d'image
  4. Ajouter ou modifier un nœud avec un champ d'image
  5. Saisissez du texte ou du html dans la zone de texte de la légende du champ d'image
  6. Enregistrez le nœud et affichez-le pour voir la légende affichée sous le champ d'image

Pour personnaliser l'affichage des sous-titres, prenez une copie du fichier image_field_caption.tpl.php et placez-le dans le répertoire de votre thème, par exemple:

sites/all/themes/MY_THEME/image_field_caption.tpl.php

Vous pouvez maintenant modifier le html pour répondre à vos besoins.

tyler.frankenstein
la source
Après avoir activé ce module, la zone de texte de la légende ne s'affiche pas. J'ai vidé le cache. J'essaie d'ajouter la légende à un champ d'image existant dans un type de contenu existant avec du contenu existant.
Randell
Mise à jour: je viens de remarquer que cela ne fonctionne pas uniquement lorsque vous utilisez le type de widget Navigateur multimédia pour l'image.
Randell
@Randell veuillez informer la file d'attente des problèmes ici: drupal.org/project/issues/image_field_caption
tyler.frankenstein
1

Aussi, pour ajouter une légende à l'image, il existe un module

Légende

LA DESCRIPTION:

Ce module utilise JQuery pour ajouter dynamiquement des légendes aux images. L'attribut title de l'image est utilisé pour créer la légende. Il enveloppe essentiellement l'image dans un div de conteneur html, prend le texte du titre de l'image et l'ajoute dans un div enfant sous l'image. Techniquement, cela fonctionne en implémentant hook_nodeapi de Drupal pour ajouter un petit extrait de jquery de sous-titrage à la section d'en-tête de la page lorsqu'un nœud du type configuré est affiché.

Légende du champ d'image

Description: ajoute une zone de texte supplémentaire pour les légendes des champs d'image.

Semblable aux champs de texte alternatif et de titre disponibles avec un champ d'image, la zone de texte de légende peut être utilisée pour saisir du texte ou des descriptions html d'une image.

JCaption

Description: Il s'agit d'un module simple pour Drupal 7.x qui utilise jQuery pour transformer l'attribut TITLE ou ALT d'une image en légende d'image. Il y a une page de paramètres avec beaucoup de configurations possibles. La légende de l'image ne s'affichera pas dans l'éditeur WYSIWYG, mais sera visible lorsque vous afficherez le nœud.

Le module diffère à plusieurs égards des modules similaires.

Yuseferi
la source
0

Si vous souhaitez utiliser le champ titre comme description, vous pouvez utiliser le module Image Caption ou Image Caption Formatter . Il y a une demande pour obtenir quelque chose comme ça inclus dans le noyau pour D8. Il serait basé sur la balise de légende html5.

fietserwin
la source