Index: release/project_release.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project/release/project_release.module,v
retrieving revision 1.64
diff -u -p -u -p -r1.64 project_release.module
--- release/project_release.module	6 Mar 2008 20:29:14 -0000	1.64
+++ release/project_release.module	7 Mar 2008 16:30:58 -0000
@@ -1814,9 +1814,9 @@ function theme_project_release_download_
   static $icons = array();
   if (empty($icons)) {
     $icons = array(
-      'ok' => theme('image', 'misc/watchdog-ok.png', t('ok'), t('ok')),
-      'warning' => theme('image', 'misc/watchdog-warning.png', t('warning'), t('warning')),
-      'error' => theme('image', 'misc/watchdog-error.png', t('error'), t('error')),
+      'ok' => 'misc/watchdog-ok.png',
+      'warning' => 'misc/watchdog-warning.png',
+      'error' => 'misc/watchdog-error.png',
     );
   }
   $links = array();
@@ -1837,20 +1837,24 @@ function theme_project_release_download_
   $row_class = $release->rebuild ? 'release-dev' : 'release';
   // Now, set the row color and help text, based on the release attributes.
   if (!$release->supported) {
-    $reason = t('Unsupported');
+    $text = theme('project_release_download_text_unsupported', $release, 'summary');
+    $message = theme('project_release_download_text_unsupported', $release, 'message');
     $classification = 'error';
   }
   elseif ($release->rebuild) {
-    $reason = t('Development snapshot');
+    $reason = theme('project_release_download_text_snapshot', $release, 'summary');
+    $message = theme('project_release_download_text_snapshot', $release, 'message');
     $classification = 'error';
   }
   elseif ($recommended) {
-    $reason = t('Recommended for %api_term_name', array('%api_term_name' => $release->api_term_name));
+    $reason = theme('project_release_download_text_recommended', $release, 'summary');
+    $message = theme('project_release_download_text_recommended', $release, 'message');
     $classification = 'ok';
   }
   else {
     // Supported, but not recommened, official release.
-    $reason = t('Supported for %api_term_name', array('%api_term_name' => $release->api_term_name));
+    $reason = theme('project_release_download_text_supported', $release, 'summary');
+    $message = theme('project_release_download_text_supported', $release, 'message');
     $classification = 'warning';
   }
 
@@ -1880,16 +1884,69 @@ function theme_project_release_download_
   );
   $row['data'][] = array(
     'class' => 'release-reason',
-    'data' => $reason . $icon,
+    'data' => $reason,
   );
   $row['data'][] = array(
     'class' => 'release-icon',
-    'data' => $icons[$classification],
+    'data' => theme('image', $icons[$classification], $message, $message),
   );
   return $row;
 }
 
 /**
+ * Return the message text for recommended releases in the download table.
+ *
+ * @param $release
+ *   Object with data about the release.
+ * @param $text_type
+ *   What kind of text to render.  Can be either 'summary' for the summary
+ *   text to include directly on the project node, or 'message' for the text
+ *   to put in the title and alt attributes of the icon. 
+ */
+function theme_project_release_download_text_recommended($release, $text_type) {
+  if ($text_type == 'summary') {
+    return t('Recommended for %api_term_name', array('%api_term_name' => $release->api_term_name));
+  }
+  return t('This is the currently recommended release for @api_term_name.', array('@api_term_name' => $release->api_term_name));
+}
+
+/**
+ * Return the message text for supported releases in the download table.
+ *
+ * @see theme_project_release_download_text_recommended
+ */
+function theme_project_release_download_text_supported($release, $text_type) {
+  if ($text_type == 'summary') {
+    return t('Supported for %api_term_name', array('%api_term_name' => $release->api_term_name));
+  }
+  return t('This release is supported but is not the currently recommended release for @api_term_name.', array('@api_term_name' => $release->api_term_name));
+}
+
+/**
+ * Return the message text for snapshot releases in the download table.
+ *
+ * @see theme_project_release_download_text_recommended
+ */
+function theme_project_release_download_text_snapshot($release, $text_type) {
+  if ($text_type == 'summary') {
+    return t('Development snapshot');
+  }
+  return t('Development snapshots are automatically regenerated and their contents can frequently change, so they are not recommended for real use.');
+}
+
+/**
+ * Return the message text for snapshot releases in the download table.
+ *
+ * @see theme_project_release_download_text_recommended
+ */
+function theme_project_release_download_text_unsupported($release, $text_type) {
+  if ($text_type == 'summary') {
+    return t('Unsupported');
+  }
+  return t('This release is not supported and may no longer work.');
+}
+
+/**
  * Implementation of hook_taxonomy().
  */
 function project_release_taxonomy($op, $type, $object = NULL) {
@@ -2082,4 +2139,4 @@ function project_release_pick_project_fo
 
 function project_release_pick_project_form_submit($form_id, $form_values) {
   return 'node/add/project-release/'. $form_values['pid'];
-}
\ No newline at end of file
+}
