Index: usage/project-usage-process.php
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project/usage/project-usage-process.php,v
retrieving revision 1.4
diff -u -p -r1.4 project-usage-process.php
--- usage/project-usage-process.php	15 Dec 2008 09:03:27 -0000	1.4
+++ usage/project-usage-process.php	29 Jan 2009 19:57:01 -0000
@@ -116,7 +116,7 @@ function project_usage_process_daily() {
   $timestamp = project_usage_daily_timestamp(NULL, 1);
   $time_0 = time();
 
-  watchdog('project_usage', t('Starting to process daily usage data for !date.', array('!date' => format_date($timestamp, 'custom', 'Y-m-d'))));
+  watchdog('project_usage', 'Starting to process daily usage data for !date.', array('!date' => format_date($timestamp, 'custom', 'Y-m-d')));
 
   // Assign API version term IDs.
   $terms = array();
@@ -135,7 +135,7 @@ function project_usage_process_daily() {
     '!rows' => format_plural($num_updates, '1 row', '@count rows'),
     '!delta' => format_interval($time_1 - $time_0),
   );
-  watchdog('project_usage', t('Assigned API version term IDs for !rows (!delta).', $substitutions));
+  watchdog('project_usage', 'Assigned API version term IDs for !rows (!delta).', $substitutions);
 
   // Asign project and release node IDs.
   $num_updates = 0;
@@ -153,7 +153,7 @@ function project_usage_process_daily() {
     '!rows' => format_plural($num_updates, '1 row', '@count rows'),
     '!delta' => format_interval($time_2 - $time_1),
   );
-  watchdog('project_usage', t('Assigned project and release node IDs to !rows (!delta).', $substitutions));
+  watchdog('project_usage', 'Assigned project and release node IDs to !rows (!delta).', $substitutions);
 
   // Move usage records with project node IDs into the daily table and remove
   // the rest.
@@ -167,7 +167,7 @@ function project_usage_process_daily() {
     '!raw_rows' => format_plural($num_deleted_raw_rows, '1 row', '@count rows'),
     '!delta' => format_interval($time_3 - $time_2),
   );
-  watchdog('project_usage', t('Moved usage from raw to daily: !day_rows added to {project_usage_day}, !raw_rows deleted from {project_usage_raw} (!delta).', $substitutions));
+  watchdog('project_usage', 'Moved usage from raw to daily: !day_rows added to {project_usage_day}, !raw_rows deleted from {project_usage_raw} (!delta).', $substitutions);
 
   // Remove old daily records.
   $seconds = variable_get('project_usage_life_daily', 4 * PROJECT_USAGE_WEEK);
@@ -177,9 +177,9 @@ function project_usage_process_daily() {
     '!rows' => format_plural(db_affected_rows(), '1 old daily row', '@count old daily rows'),
     '!delta' => format_interval($time_4 - $time_3),
   );
-  watchdog('project_usage', t('Removed !rows (!delta).', $substitutions));
+  watchdog('project_usage', 'Removed !rows (!delta).', $substitutions);
 
-  watchdog('project_usage', t('Completed daily usage data processing (total time: !delta).', array('!delta' => format_interval($time_4 - $time_0))));
+  watchdog('project_usage', 'Completed daily usage data processing (total time: !delta).', array('!delta' => format_interval($time_4 - $time_0)));
 }
 
 /**
@@ -189,7 +189,7 @@ function project_usage_process_daily() {
  *   UNIX timestamp indicating the last time weekly stats were processed.
  */
 function project_usage_process_weekly($timestamp) {
-  watchdog('project_usage', t('Starting to process weekly usage data.'));
+  watchdog('project_usage', 'Starting to process weekly usage data.');
   $time_0 = time();
 
   // Get all the weeks since we last ran.
@@ -218,10 +218,10 @@ function project_usage_process_weekly($t
       '!delta' => format_interval($time_2 - $time_1),
     );
     if (!$result) {
-      watchdog('project_usage', t('Query failed inserting weekly project tallies for !date, query: %query (!delta).', $substitutions), WATCHDOG_ERROR);
+      watchdog('project_usage', 'Query failed inserting weekly project tallies for !date, query: %query (!delta).', $substitutions, WATCHDOG_ERROR);
     }
     else {
-      watchdog('project_usage', t('Computed weekly project tallies for !date for !projects (!delta).', $substitutions));
+      watchdog('project_usage', 'Computed weekly project tallies for !date for !projects (!delta).', $substitutions);
     }
 
     $sql = "INSERT INTO {project_usage_week_release} (nid, timestamp, count) SELECT nid, %d, COUNT(DISTINCT site_key) FROM {project_usage_day} WHERE timestamp >= %d AND timestamp < %d AND nid <> 0 GROUP BY nid";
@@ -236,10 +236,10 @@ function project_usage_process_weekly($t
       '!delta' => format_interval($time_3 - $time_2),
     );
     if (!$result) {
-      watchdog('project_usage', t('Query failed inserting weekly release tallies for !date, query: %query (!delta).', $substitutions), WATCHDOG_ERROR);
+      watchdog('project_usage', 'Query failed inserting weekly release tallies for !date, query: %query (!delta).', $substitutions, WATCHDOG_ERROR);
     }
     else {
-      watchdog('project_usage', t('Computed weekly release tallies for !date for !releases (!delta).', $substitutions));
+      watchdog('project_usage', 'Computed weekly release tallies for !date for !releases (!delta).', $substitutions);
     }
   }
 
@@ -252,7 +252,7 @@ function project_usage_process_weekly($t
     '!rows' => format_plural(db_affected_rows(), '1 old weekly project row', '@count old weekly project rows'),
     '!delta' => format_interval($time_5 - $time_4),
   );
-  watchdog('project_usage', t('Removed !rows (!delta).', $substitutions));
+  watchdog('project_usage', 'Removed !rows (!delta).', $substitutions);
 
   $release_life = variable_get('project_usage_life_weekly_release', 26 * PROJECT_USAGE_WEEK);
   db_query("DELETE FROM {project_usage_week_release} WHERE timestamp < %d", $now - $release_life);
@@ -261,8 +261,8 @@ function project_usage_process_weekly($t
     '!rows' => format_plural(db_affected_rows(), '1 old weekly release row', '@count old weekly release rows'),
     '!delta' => format_interval($time_6 - $time_5),
   );
-  watchdog('project_usage', t('Removed !rows (!delta).', $substitutions));
+  watchdog('project_usage', 'Removed !rows (!delta).', $substitutions);
 
-  watchdog('project_usage', t('Completed weekly usage data processing (total time: !delta).', array('!delta' => format_interval($time_6 - $time_0))));
+  watchdog('project_usage', 'Completed weekly usage data processing (total time: !delta).', array('!delta' => format_interval($time_6 - $time_0)));
 }
 
Index: usage/project_usage.info
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project/usage/project_usage.info,v
retrieving revision 1.1
diff -u -p -r1.1 project_usage.info
--- usage/project_usage.info	7 Aug 2007 20:21:33 -0000	1.1
+++ usage/project_usage.info	29 Jan 2009 19:57:01 -0000
@@ -2,4 +2,6 @@
 name = Project usage
 description = "Provides data about installed usage of projects (requires update_status.module clients connecting to this site -- most sites should NOT enable this module)."
 package = Project
-dependencies = project project_release
+dependencies[] = project
+dependencies[] = project_release
+core = 6.x
\ No newline at end of file
Index: usage/project_usage.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project/usage/project_usage.module,v
retrieving revision 1.26
diff -u -p -r1.26 project_usage.module
--- usage/project_usage.module	20 Jan 2009 19:06:11 -0000	1.26
+++ usage/project_usage.module	29 Jan 2009 19:57:02 -0000
@@ -43,32 +43,55 @@ define('PROJECT_USAGE_SHOW_WEEKS', 6);
 /**
  * Implementation of hook_menu().
  */
-function project_usage_menu($may_cache) {
-  $items = array();
-  if ($may_cache) {
-    $items[] = array(
-      'path' => 'admin/project/project-usage-settings',
-      'title' => t('Project usage settings'),
-      'callback' => 'drupal_get_form',
-      'callback arguments' => array('project_usage_settings_form'),
-      'description' => t('Configure how long usage data is retained.'),
-      'weight' => 1,
-    );
-    $items[] = array(
-      'path' => 'project/usage',
-      'title' => t('Project usage'),
-      'callback' => 'project_usage_dispatch',
-      'access' => user_access('view project usage'),
-    );
-  }
+function project_usage_menu() {
+  $items['admin/project/project-usage-settings'] = array(
+    'title' => t('Project usage settings'),
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('project_usage_settings_form'),
+    'description' => t('Configure how long usage data is retained.'),
+    'weight' => 1,
+  );
+  $items['project/usage'] = array(
+    'title' => t('Project usage overview'),
+    'page callback' => 'project_usage_overview',
+    'access arguments' => array('view project usage'),
+  );
+  $items['project/usage/%'] = array(
+    'title' => t('Project usage'),
+    'page callback' => 'project_usage_dispatch',
+    'access arguments' => array('view project usage'),
+  );
   return $items;
 }
 
 /**
+ * Implementation of hook_theme().
+ */
+function project_usage_theme() {
+  return array(
+    'project_usage_chart' => array(
+      'arguments' => array('args' => NULL),
+    ),
+    'project_usage_chart_by_release' => array(
+      'arguments' => array('title' => NULL, 'header' => NULL, 'rows' => NULL)
+    ),
+    'project_usage_header_links' => array(
+      'arguments' => array('project' => NULL, 'release' => NULL)
+    ),
+    'project_usage_project_page' => array(
+      'arguments' => array('project' => NULL, 'release_header' => NULL, 'release_rows' => NULL, 'project_header' => NULL, 'project_rows' => NULL)
+    ),
+    'project_usage_release_page' => array(
+      'arguments' => array('project' => NULL, 'release' => NULL, 'header' => NULL, 'rows' => NULL)
+    ),
+  );
+}
+
+/**
  * Implementation of hook_help().
  */
-function project_usage_help($section) {
-  switch ($section) {
+function project_usage_help($path, $arg) {
+  switch ($path) {
     case 'project/usage':
       return '<p>'.
         t('This page summarizes the usage of all projects on @site_name. For each week beginning on the given date the figures show the number of sites that reported they are using (any version of) the project. Detailed usage information for each release of a project is available by clicking the project name.', array('@site_name' => variable_get('site_name', t('this site'))))
@@ -89,17 +112,12 @@ function project_usage_perm() {
  * Menu handler for project URLs.
  *
  * @param $key
- *   Optional node id or project uri. NULL gets the overview page, project
- *   nids and uris get the project usage page, release nids get the release
- *   usage page, and everything else gets a not found. In addition, if a user
- *   does not have permission to view the project or release node they've
- *   requested, they get an access denied page.
- */
-function project_usage_dispatch($key = NULL) {
-  if (!isset($key)) {
-    return project_usage_overview();
-  }
-
+ *   Node id or project uri. project nids and uris get the project usage page,
+ *   release nids get the release usage page, and everything else gets a not
+ *   found. In addition, if a user does not have permission to view the project
+ *   or release node they've requested, they get an access denied page.
+ */
+function project_usage_dispatch($key) {
   // Load the node the user has requested.  We want to only use
   // project_project_retrieve() if the $key parameter is not numeric because
   // project_project_retrieve() will only return a project_project node, and
@@ -134,7 +152,6 @@ function project_usage_dispatch($key = N
  */
 function project_usage_overview() {
   drupal_add_css(drupal_get_path('module', 'project_usage') .'/project_usage.css');
-  drupal_set_title(t('Project usage overview'));
 
   // Grab an array of active week timestamps.
   $weeks = project_usage_get_active_weeks();
@@ -211,7 +228,7 @@ function project_usage_overview() {
 
   // Cache the completed page.
   if (project_can_cache()) {
-    cache_set($cid, 'cache_project_usage', $output, project_usage_cache_time());
+    cache_set($cid, $output, 'cache_project_usage', project_usage_cache_time());
   }
 
   return $output;
@@ -359,7 +376,7 @@ function project_usage_project_page($nod
 
   // Cache the completed page.
   if (project_can_cache()) {
-    cache_set($cid, 'cache_project_usage', $output, project_usage_cache_time());
+    cache_set($cid, $output, 'cache_project_usage', project_usage_cache_time());
   }
 
   return $output;
@@ -401,7 +418,7 @@ function project_usage_release_page($nod
 
   // Cache the completed page.
   if (project_can_cache()) {
-    cache_set($cid, 'cache_project_usage', $output, project_usage_cache_time());
+    cache_set($cid, $output, 'cache_project_usage', project_usage_cache_time());
   }
 
   return $output;
@@ -650,10 +667,10 @@ function theme_project_usage_release_pag
  */
 function theme_project_usage_header_links($project, $release = NULL) {
   $links = array();
-  $links[] = l(t('%project_name project page', array('%project_name' => $project->title)), 'node/'. $project->nid, array(), NULL, NULL, FALSE, TRUE);
+  $links[] = l(t('%project_name project page', array('%project_name' => $project->title)), 'node/'. $project->nid, array('html' => TRUE));
   if (!empty($release)) {
-    $links[] = l(t('%release_name release page', array('%release_name' => $release->title)), 'node/' . $release->nid, array(), NULL, NULL, FALSE, TRUE);
-    $links[] = l(t('All %project_name usage statistics', array('%project_name' => $project->title)), 'project/usage/' . $project->project['uri'], array(), NULL, NULL, FALSE, TRUE);
+    $links[] = l(t('%release_name release page', array('%release_name' => $release->title)), 'node/' . $release->nid, array('html' => TRUE));
+    $links[] = l(t('All %project_name usage statistics', array('%project_name' => $project->title)), 'project/usage/' . $project->project['uri'], array('html' => TRUE));
   }
   $links[] = l(t('Usage statistics for all projects'), 'project/usage');
   return theme('item_list', $links);
