Commit c71bfded authored by Dries's avatar Dries

- Patch #9657: more intelligent theme() function.  Hopefully, Adrian will be
  able to use this patch too.
parent a52cf829
......@@ -77,8 +77,8 @@ function tablesort_header($cell, $header, $ts) {
if ($cell['data'] == $ts['name']) {
$ts['sort'] = (($ts['sort'] == 'asc') ? 'desc' : 'asc');
$cell['class'] = 'active';
$image = '&nbsp;<img src="' . theme('image', 'arrow-' . $ts['sort'] . '.png') . '" alt="'. t('sort icon') .'" />';
$title = ($ts['sort'] == 'asc' ? t('sort ascending') : t('sort descending'));
$image = '&nbsp;'. theme('image', 'misc/arrow-'. $ts['sort'] .'.png', t('sort icon'), $title);
}
else {
// If the user clicks a different header, we want to sort ascending initially.
......
......@@ -235,13 +235,22 @@ function theme_links($links, $delimiter = ' | ') {
/**
* Return a themed image.
*
* @param $name
* The name of the image file.
* @param $path
* The path of the image file.
* @param $alt
* The alternative text for text-based browsers.
* @param $title
* The title text is displayed when the image is hovered in some popular browsers.
* @param $attr
* Attributes placed in the img tag.
* This parameter overrides the default auto-detection of width and height.
* @return
* The pathname of the themed image.
* A string containing the image tag.
*/
function theme_image($name) {
return 'misc/'. $name;
function theme_image($path, $alt = NULL, $title = NULL, $attr = NULL) {
if (isset($attr) || (file_exists($path) && (list($width, $height, $type, $attr) = getimagesize($path)))) {
return "<img src=\"$path\" $attr alt=\"$alt\" title=\"$title\" />";
}
}
/**
......@@ -511,7 +520,9 @@ function theme_error($message) {
* Return code that emits an XML icon.
*/
function theme_xml_icon($url) {
return '<div class="xml-icon"><a href="'. $url .'"><img src="misc/xml.png" width="36" height="14" alt="'. t('XML feed') .'" /></a></div>';
if ($image = theme('image', 'misc/xml.png', t('XML feed'), t('XML feed'))) {
return '<div class="xml-icon"><a href="'. $url .'">'. $image. '</a></div>';
}
}
/**
......
......@@ -1039,7 +1039,9 @@ function theme_aggregator_block_item($item, $feed = 0) {
global $user;
if ($user->uid && module_exist('blog') && user_access('edit own blog')) {
$output .= '<div class="icon">'. l('<img src="'. theme('image', 'blog.png') .'" alt="'. t('blog it') .'" title="'. t('blog it') .'" />', 'node/add/blog', array('title' => t('Comment on this news item in your personal blog.'), 'class' => 'blog-it'), "iid=$item->iid") .'</div>';
if ($image = theme('misc/blog.png', t('blog it'), t('blog it'))) {
$output .= '<div class="icon">'. l($image, 'node/add/blog', array('title' => t('Comment on this news item in your personal blog.'), 'class' => 'blog-it'), "iid=$item->iid") .'</div>';
}
}
// external link
......
......@@ -1039,7 +1039,9 @@ function theme_aggregator_block_item($item, $feed = 0) {
global $user;
if ($user->uid && module_exist('blog') && user_access('edit own blog')) {
$output .= '<div class="icon">'. l('<img src="'. theme('image', 'blog.png') .'" alt="'. t('blog it') .'" title="'. t('blog it') .'" />', 'node/add/blog', array('title' => t('Comment on this news item in your personal blog.'), 'class' => 'blog-it'), "iid=$item->iid") .'</div>';
if ($image = theme('misc/blog.png', t('blog it'), t('blog it'))) {
$output .= '<div class="icon">'. l($image, 'node/add/blog', array('title' => t('Comment on this news item in your personal blog.'), 'class' => 'blog-it'), "iid=$item->iid") .'</div>';
}
}
// external link
......
......@@ -705,9 +705,9 @@ function _forum_icon($new_posts, $num_posts = 0, $comment_mode = 0, $sticky = 0)
}
// default
$file = $base_path ."/forum-$icon.png";
$file = "misc/forum-$icon.png";
$output = "<img src=\"$file\" alt=\"\" title=\"\" />";
$output = theme('image', $file);
}
else {
$output = '&nbsp;';
......
......@@ -705,9 +705,9 @@ function _forum_icon($new_posts, $num_posts = 0, $comment_mode = 0, $sticky = 0)
}
// default
$file = $base_path ."/forum-$icon.png";
$file = "misc/forum-$icon.png";
$output = "<img src=\"$file\" alt=\"\" title=\"\" />";
$output = theme('image', $file);
}
else {
$output = '&nbsp;';
......
......@@ -233,7 +233,7 @@ function system_listing($type) {
ksort($files);
if ($type == 'module') {
$required = array('modules/admin.module', 'modules/filter.module', 'modules/system.module', 'modules/user.module', 'modules/watchdog.module');
$required = array('modules/admin.module', 'modules/block.module', 'modules/filter.module', 'modules/system.module', 'modules/user.module', 'modules/watchdog.module');
// the throttle mechanism requires additional modules always be enabled
$throttle_required = array_merge($required, array('modules/statistics.module', 'modules/throttle.module'));
......
......@@ -233,7 +233,7 @@ function system_listing($type) {
ksort($files);
if ($type == 'module') {
$required = array('modules/admin.module', 'modules/filter.module', 'modules/system.module', 'modules/user.module', 'modules/watchdog.module');
$required = array('modules/admin.module', 'modules/block.module', 'modules/filter.module', 'modules/system.module', 'modules/user.module', 'modules/watchdog.module');
// the throttle mechanism requires additional modules always be enabled
$throttle_required = array_merge($required, array('modules/statistics.module', 'modules/throttle.module'));
......
......@@ -567,7 +567,8 @@ function theme_user_picture($account) {
}
if ($picture) {
$picture = "<img src=\"$picture\" alt=\"" . t('%user\'s picture', array('%user' => $account->name ? $account->name : t(variable_get('anonymous', 'Anonymous')))) . '" />';
$alt = t('%user\'s picture', array('%user' => $account->name ? $account->name : t(variable_get('anonymous', 'Anonymous'))));
$picture = theme('image', $picture, $alt, $alt);
if ($account->uid) {
$picture = l($picture, "user/$account->uid", array('title' => t('View user profile.')));
}
......@@ -1019,7 +1020,7 @@ function user_edit_form($uid, $edit) {
if (variable_get('user_pictures', 0)) {
$group = '';
if (file_exists($edit['picture'])) {
$group .= '<img src="'. file_create_url($edit['picture']) .'" alt="" title="" />';
$group .= theme('image', file_create_url($edit['picture']));
}
$group .= form_file(t('Upload picture'), 'picture', 48, t('Your virtual face or picture. Maximum dimensions are %dimensions and the maximum size is %size kB.', array('%dimensions' => variable_get('user_picture_dimensions', '85x85'), '%size' => variable_get('user_picture_file_size', '30'))) .' '. variable_get('user_picture_guidelines', ''));
$data[] = array('title' => t('Picture'), 'data' => $group, 'weight' => 1);
......
......@@ -567,7 +567,8 @@ function theme_user_picture($account) {
}
if ($picture) {
$picture = "<img src=\"$picture\" alt=\"" . t('%user\'s picture', array('%user' => $account->name ? $account->name : t(variable_get('anonymous', 'Anonymous')))) . '" />';
$alt = t('%user\'s picture', array('%user' => $account->name ? $account->name : t(variable_get('anonymous', 'Anonymous'))));
$picture = theme('image', $picture, $alt, $alt);
if ($account->uid) {
$picture = l($picture, "user/$account->uid", array('title' => t('View user profile.')));
}
......@@ -1019,7 +1020,7 @@ function user_edit_form($uid, $edit) {
if (variable_get('user_pictures', 0)) {
$group = '';
if (file_exists($edit['picture'])) {
$group .= '<img src="'. file_create_url($edit['picture']) .'" alt="" title="" />';
$group .= theme('image', file_create_url($edit['picture']));
}
$group .= form_file(t('Upload picture'), 'picture', 48, t('Your virtual face or picture. Maximum dimensions are %dimensions and the maximum size is %size kB.', array('%dimensions' => variable_get('user_picture_dimensions', '85x85'), '%size' => variable_get('user_picture_file_size', '30'))) .' '. variable_get('user_picture_guidelines', ''));
$data[] = array('title' => t('Picture'), 'data' => $group, 'weight' => 1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment