[Résolu] Texte alternatif d'une image

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

J'ai créé un type de nœud "Annonce" (formulaire CCK) qui permettra à un utilisateur d'insérer une nouvelle annonce.

Dans ce formulaire, je donne la possibilité à l'utilisateur d'uploader des photos. Cependant, je voudrais fixer à l'avance (donc dans la structure de mon nœud) la valeur du texte alternatif de chaque photos pour favoriser le référencement plutôt que de déléguer cette tâche à l'utilisateur (au moment de la création d'une nouvelle annonce).

Par moi-même, je n'ai pas trouvé de solution. Pourriez-vous m'indiquer si cela est possible ou non?

Merci d'avance.

Version de Drupal : 

Merci pour cette intervention, car je patauge...

Je n'ai trouvé dans aucun des types de champs et de widgets (fichier, image, multimedia asset) l'option permettant de fixer le alt lorsque j'ajoute un champ à mon noeud.

Je ne comprends pas très bien la phrase "C’est une option Field API et pas CCK, qui n’existe plus sous D7.". CCK est maintenant intégré au coeur de Drupal 7 ainsi que Field API, selon moi. Donc, lorsque j'ajoute un champ de type "Fichier", c'est Field API qui est utilisé et non CCK?

Effectivement, après vérification, cette option n'est pas là. J'ai confondu avec des options de Views et/ou IMCE. Utiliser Views pour afficher les images permettrait de faire ça facilement par l'interface.

Autrement, un peu de code dans preprocess_node et des prints dans node-type.tpl.php devraient faire le job.

Sur la terminologie, et sans y passer des heures, on ne parle en général plus de CCK dans D7, mais Field API. Mais bon, c'est bien plus important de comprendre la fonction de ces trucs que de savoir leurs noms.

Bonjour,
je suis aussi à la recherche d'une solution pour implémenter par défaut le texte alt et aussi le title des images (en fonction d'un champ CCK dans D6).

un peu de code dans preprocess_node et des prints dans node-type.tpl.php devraient faire le job

As-tu un lien vers un petit tutoriel, ou un bout de code?

Merci

Par exemple, avec theme_image qui accepte un paramètre pour ALT : http://api.drupal.org/api/drupal/includes--theme.inc/function/theme_image/6.

Dans le_theme_preprocess_node :

<?php
$var
['limage'] = theme_image('lechemin/de/limage', 'le texte du alt', 'le texte du title');
?>

Puis dans node.tpl.php (ou une version dérivée pour un content type particulier) :

<?php
print $limage;
?>

Merci beaucoup pour tous ces renseignements.

Si je comprends bien, cetre fonction theme_image permet de fixer les paramètres d'une image, mais uniquement dans le cas où on maîtrise l'url de l'image (paramètre 'lechemin/de/limage')?

Dans mon cas, je voudrais qu'un utilisateur authentifié puisse uploader des images (dont je ne maîtrise absolument pas l'url de stockage) dont le alt serait fixé dans la structure de mon node.

Dilune, est-ce la même chose que tu cherches à faire?

L'URL de stockage sera présente dans $variables ou $vars (selon les thèmes) de la fonction preprocess_node. Quelque chose comme $variables->field_photo['und'][0]['filepath'] (de mémoire, faire un output de $vars pour être sûr).

Oui, j'ai un type de contenu qui a un champ de type Imagefield, et d'autres champs dont un que je voudrais reprendre comme alt et title par défaut.

J'utilise (en D6) Image FUpload (http://drupal.org/project/image_fupload) pour télécharger des images en masse. Je ne sais pas s'il existe un équivalent en D7.

Je n'ai pas encore testé la solution proposée par Numerizen. Je reviendrai rendre compte de mes résultats.

Bon, finalement, j'ai du modifier le 'alt' au moment de l'affichage du contenu et non au moment de son edit : là, j'ai eu beau chercher, impossible de trouver une solution.

Donc, pour ceux que ça pourait aider, voici comment j'ai procédé. Dans un module, dans une fonction function MonModule_form_alter(&$form, &$form_state, $form_id),
j'ai codé ceci :

switch($form['#id'])
{
  case 'comment-form':
     $form['#node']->field_photo_accroche['und'][0]['title'] = "Photo d'accroche";
     $form['#node']->field_photo_accroche['und'][0]['alt'] = "Photo d'accroche";
  break;
}

Malheureusement ceci est exécuté à chaque affichage au lieu d'être exécuté uniquement lors de la création ou de l'édition, mais je ne parviens pas à accéder au 'alt' lorsque pour un champ ('image') peuvent être uplaodées plusieurs photos en même temps. A ce moment, je ne parvient à accéder qu'à un tableau dont l'index 0 contient la string title, l'index 1 contient la string 'alt' etc...

Enfin, la solution a au moins le mérite de fonctionner.