I appreciate there are lots of threads about alt and title attributes etc but I haven't found this particular issue addressed.

My use case is quite straightforward: in Media 1.x I want to define alt and title attributes for images on a per-use basis using fields on the content type but when using Media the core fields for these are hidden. The most straightforward way to do this would be with a template.php override

I found an example of this described at http://drupal.stackexchange.com/questions/33758/drupal-7-override-image-... but within hook_preprocess_image the variables for the fields I created aren't available.

Any ideas?

Comments

Johann Wagner’s picture

Issue summary:View changes

This worked for me :

template.php of your theme :

<?php
/**
 * Implements THEME_preprocess_image().
 * Add metadata to images.
 */
function THEME_preprocess_image(&$vars)
{
    if (!empty(
$vars['path']) && ($parsed = parse_url($vars['path']))) {

       
$basename         = basename($parsed['path']);
       
$dirname          = dirname($parsed['path']);
       
$public_string = '/public/';
       
$relative_pos     = strpos($parsed['path'], $public_string);
       
$relative_path    = substr($dirname, $relative_pos + strlen($public_string));

        if (empty(
$relative_path))
           
$uri = 'public://' . $basename;
        else
           
$uri = 'public://' . $relative_path . DIRECTORY_SEPARATOR . $basename;

       
$files = file_load_multiple(array(), array('uri' => $uri));
       
$file  = reset($files);
        if (
$file) {
           
$wrapper       = entity_metadata_wrapper('file', $file);
           
$vars['alt']   = $wrapper->field_file_image_alt_text->value();
           
$vars['title'] = $wrapper->field_file_image_title_text->value();
        }
    }
}
?>