diff options
author | Dries Buytaert <dries@buytaert.net> | 2010-04-30 12:53:47 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2010-04-30 12:53:47 +0000 |
commit | 5f98fb812bce1fcdf9b14bda17ce70fe0e0a3cc4 (patch) | |
tree | 068bb51b16ccb32564c4800bec0140f61d2e15e8 | |
parent | 7d83f7c89341d53d0ebf8e1cea69513b850fe1ec (diff) | |
download | brdo-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.inc | 2 | ||||
-rw-r--r-- | includes/theme.inc | 25 | ||||
-rw-r--r-- | modules/image/image.field.inc | 5 | ||||
-rw-r--r-- | modules/image/image.module | 2 |
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, ), |