Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
I have added a class to theme_imagecache_formatter_default, which works nicely.
However, I only need it to apply to a certain preset.
How do I add a custom theme_imagecache_formatter function?
Code is below:
function theme_imagecache_formatter_default($element) {
// Inside a view $element may contain NULL data. In that case, just return.
if (empty($element['#item']['fid'])) {
return '';
}
// Extract the preset name from the formatter name.
$presetname = substr($element['#formatter'], 0, strrpos($element['#formatter'], '_'));
$style = 'linked';
$style = 'default';
$item = $element['#item'];
$item['data']['alt'] = isset($item['data']['alt']) ? $item['data']['alt'] : '';
$item['data']['title'] = isset($item['data']['title']) ? $item['data']['title'] : NULL;
$class = "imagecache imagecache-$presetname imagecache-$style imagecache-{$element['#formatter']} caption";
return theme('imagecache', $presetname, $item['filepath'], $item['data']['alt'], $item['data']['title'], array('class' => $class));
}
Comments
Comment #1
th88 CreditAttribution: th88 commentedI achieved this by:
Replace THEMENAME and PRESETNAME with your theme name and imagecache preset name.