? _project.inc_ ? _project.module_ ? release/history Index: usage/project_usage.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project/usage/project_usage.module,v retrieving revision 1.1 diff -u -r1.1 project_usage.module --- usage/project_usage.module 7 Aug 2007 20:21:33 -0000 1.1 +++ usage/project_usage.module 7 Aug 2007 22:05:10 -0000 @@ -44,10 +44,65 @@ 'weight' => 1, ); } + else { + if (arg(0) == 'node' && is_numeric(arg(1))) { + $node = node_load(arg(1)); + if ($node->nid && ($node->type = 'project_project' || $node->type = 'project_release')) { + $items[] = array( + 'path' => 'node/'. arg(1) .'/usage', + 'title' => t('Usage'), + 'callback' => $node->type = 'project_project' ? 'project_usage_project_page' : 'project_usage_release_page', + 'callback arguments' => array($node), + 'type' => MENU_LOCAL_TASK, + 'weight' => 2, + ); + } + } + } return $items; } /** + * Display the usage history of a project node. + */ +function project_usage_project_page($node) { + drupal_set_title(check_plain($node->title)); + + $terms = array(); + foreach (project_release_get_api_taxonomy() as $term) { + $terms[$term->tid] = $term->name; + } + + $weeks = array(); + $header = array(t('Week starting')); + $query = db_query("SELECT * FROM {project_usage_week_project} WHERE nid = %d ORDER BY timestamp DESC", $node->nid); + while ($row = db_fetch_object($query)) { + $header[$row->tid] = $terms[$row->tid]; + $weeks[$row->timestamp][$row->tid] = $row->count; + } + + $rows = array(); + foreach ($weeks as $timestamp => $week) { + $rows[] = array_merge(array(format_date($timestamp)), $week); + } + return theme('table', $header, $rows); +} + +/** + * Display the usage history of a release node. + */ +function project_usage_release_page($node) { + drupal_set_title(check_plain($node->title)); + + $header = array(t('Date'), t('Count')); + $query = db_query("SELECT * FROM {project_usage_week_release} WHERE nid = %d ORDER BY timestamp DESC", $node->nid); + while ($row = db_fetch_object($query)) { + $rows[] = array(format_date($row->timestamp, 'small'), $row->count); + } + return theme('table', $header, $rows); +} + +/** * Module settings form. */ function project_usage_settings_form() {