summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2010-04-30 12:53:47 +0000
committerDries Buytaert <dries@buytaert.net>2010-04-30 12:53:47 +0000
commit5f98fb812bce1fcdf9b14bda17ce70fe0e0a3cc4 (patch)
tree068bb51b16ccb32564c4800bec0140f61d2e15e8
parent7d83f7c89341d53d0ebf8e1cea69513b850fe1ec (diff)
downloadbrdo-5f98fb812bce1fcdf9b14bda17ce70fe0e0a3cc4.tar.gz
brdo-5f98fb812bce1fcdf9b14bda17ce70fe0e0a3cc4.tar.bz2
- Patch #555830 by sun, effulgentsia, mgifford, TheRec, aspilicious: clean up theme_image() to use drupal_attributes() for all attributes and revisit defaults for 'alt' and 'title'.
-rw-r--r--includes/common.inc2
-rw-r--r--includes/theme.inc25
-rw-r--r--modules/image/image.field.inc5
-rw-r--r--modules/image/image.module2
4 files changed, 27 insertions, 7 deletions
diff --git a/includes/common.inc b/includes/common.inc
index f67839cdb..95f083b0e 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -5390,7 +5390,7 @@ function drupal_common_theme() {
'variables' => array('links' => NULL, 'attributes' => array('class' => array('links')), 'heading' => array()),
),
'image' => array(
- 'variables' => array('path' => NULL, 'alt' => '', 'title' => '', 'attributes' => array(), 'getsize' => TRUE),
+ 'variables' => array('path' => NULL, 'alt' => '', 'title' => NULL, 'attributes' => array(), 'getsize' => TRUE),
),
'breadcrumb' => array(
'variables' => array('breadcrumb' => NULL),
diff --git a/includes/theme.inc b/includes/theme.inc
index 9ad453ce2..1090eebe9 100644
--- a/includes/theme.inc
+++ b/includes/theme.inc
@@ -1484,10 +1484,27 @@ function theme_image($variables) {
$attributes = $variables['attributes'];
$getsize = $variables['getsize'];
- if (!$getsize || (is_file($path) && (list($width, $height, $type, $image_attributes) = @getimagesize($path)))) {
- $attributes = drupal_attributes($attributes);
- $url = file_create_url($path);
- return '<img src="' . check_url($url) . '" alt="' . check_plain($alt) . '" title="' . check_plain($title) . '" ' . (isset($image_attributes) ? $image_attributes : '') . $attributes . ' />';
+ if (!$getsize || (is_file($path) && (list($width, $height) = @getimagesize($path)))) {
+ // The src attribute can be omitted, by passing NULL for $path and FALSE for
+ // $getsize.
+ if (isset($path)) {
+ $attributes['src'] = file_create_url($path);
+ }
+ // The alt attribute defaults to an empty string. By passing NULL as value,
+ // it can be omitted.
+ if (isset($alt)) {
+ $attributes['alt'] = $alt;
+ }
+ if (isset($title)) {
+ $attributes['title'] = $title;
+ }
+ if (!isset($attributes['width']) && !empty($width)) {
+ $attributes['width'] = $width;
+ }
+ if (!isset($attributes['height']) && !empty($height)) {
+ $attributes['height'] = $height;
+ }
+ return '<img' . drupal_attributes($attributes) . ' />';
}
}
diff --git a/modules/image/image.field.inc b/modules/image/image.field.inc
index 47a91c01d..f41df500f 100644
--- a/modules/image/image.field.inc
+++ b/modules/image/image.field.inc
@@ -511,8 +511,11 @@ function theme_image_formatter($variables) {
$image = array(
'path' => $item['uri'],
'alt' => $item['alt'],
- 'title' => $item['title'],
);
+ // Do not output an empty 'title' attribute.
+ if (drupal_strlen($item['title']) > 0) {
+ $image['title'] = $item['title'];
+ }
if ($variables['image_style']) {
$image['style_name'] = $variables['image_style'];
diff --git a/modules/image/image.module b/modules/image/image.module
index de99369f7..1793447ab 100644
--- a/modules/image/image.module
+++ b/modules/image/image.module
@@ -178,7 +178,7 @@ function image_theme() {
'style_name' => NULL,
'path' => NULL,
'alt' => '',
- 'title' => '',
+ 'title' => NULL,
'attributes' => array(),
'getsize' => TRUE,
),