Index: contrib/system_charts/system_charts.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/chart/contrib/system_charts/system_charts.module,v retrieving revision 1.9 diff -u -r1.9 system_charts.module --- contrib/system_charts/system_charts.module 11 Sep 2008 21:28:15 -0000 1.9 +++ contrib/system_charts/system_charts.module 14 Jul 2009 02:28:00 -0000 @@ -1,12 +1,12 @@ * @package Chart */ - + /* ----------------------------------------------------------------- Hook Implementations @@ -19,39 +19,39 @@ function system_charts_perm(){ return array('administer system charts', 'access system charts'); } - + /** * Implementation of hook_menu(). -*/ +*/ function system_charts_menu() { $items = array(); - + $items['admin/reports/charts'] = array( 'title' => 'System Charts', 'page callback' => 'system_charts', 'page arguments' => array('nodes'), 'access arguments' => array('access system charts'), - ); + ); $items['admin/reports/charts/nodes'] = array( 'title' => 'Nodes', 'page callback' => 'system_charts', 'page arguments' => array('nodes'), 'access arguments' => array('access system charts'), - 'type' => MENU_DEFAULT_LOCAL_TASK, + 'type' => MENU_DEFAULT_LOCAL_TASK, ); $items['admin/reports/charts/users'] = array( 'title' => 'Users', 'page callback' => 'system_charts', 'page arguments' => array('users'), 'access arguments' => array('access system charts'), - 'type' => MENU_LOCAL_TASK, - ); + 'type' => MENU_LOCAL_TASK, + ); $items['admin/reports/charts/watchdog'] = array( 'title' => 'Watchdog', 'page callback' => 'system_charts', 'page arguments' => array('watchdog'), 'access arguments' => array('access system charts'), - 'type' => MENU_LOCAL_TASK, + 'type' => MENU_LOCAL_TASK, ); return $items; @@ -64,8 +64,8 @@ $colors['watchdog_severity'] = array( 'Error' => 'a00000', 'Warning' => 'e06000', - 'Notice' => 'f0c040', - ); + 'Notice' => 'f0c040', + ); } /* ----------------------------------------------------------------- @@ -74,241 +74,241 @@ ------------------------------------------------------------------ */ -/** +/** * Page callback. */ function system_charts($page = 'nodes') { return '
' . system_charts_display($page) . '
'; -} - +} + /** * Display charts and content in context to the current page. -* +* * @return string * markup, chart images. */ -function system_charts_display($page = 'nodes') { +function system_charts_display($page = 'nodes') { $output = ''; - + switch($page){ - case 'users': - $output .= system_charts_build('users_per_role'); + case 'users': + $output .= system_charts_build('users_per_role'); $output .= system_charts_build('user_status'); break; - + case 'nodes': $output .= system_charts_build('node_counts'); $output .= system_charts_build('node_counts_published'); $output .= system_charts_build('node_counts_unpublished'); $output .= system_charts_build('node_activity'); break; - + case 'watchdog': $output .= system_charts_build('watchdog_counts'); $output .= system_charts_build('watchdog_severity'); break; } - + return $output; } /** * Gather data and build a chart API structure. -* +* * @return array * chart API structure. */ function system_charts_build($type) { - $chart = array(); + $chart = array(); $now = (isset($_GET['year']) && isset($_GET['month'])) ? mktime(0, 0, 0, $_GET['month'], 30, $_GET['year']) : time(); - + switch($type) { case 'node_counts': case 'node_counts_published': case 'node_counts_unpublished': - case 'node_counts_today': + case 'node_counts_today': switch($type){ case 'node_counts': $title = t('Total'); break; - + case 'node_counts_published': - $title = t('Published'); + $title = t('Published'); $sql_where = " WHERE status = '1' "; break; - + case 'node_counts_unpublished': $title = t('Unpublished'); $sql_where = " WHERE status = '0' "; - break; + break; } - + $results = db_query(" - SELECT COUNT(*) as count, type + SELECT COUNT(*) as count, type FROM {node} - " . $sql_where . " + " . $sql_where . " GROUP BY type - ORDER BY type + ORDER BY type ", $sql_args); - + while ($result = db_fetch_array($results)){ $chart['#data'][] = $result['count']; $chart['#labels'][] = $result['type'].': '.$result['count']; $chart['#data_colors'][] = chart_unique_color($result['type']); - } - + } + $chart['#chart_id'] = $type; $chart['#title'] = chart_title($title); $chart['#type'] = CHART_TYPE_PIE; - $chart['#size'] = chart_size(600, 350); + $chart['#size'] = chart_size(600, 350); break; - + case 'node_activity': $results = db_query(" - SELECT type, created - FROM {node} + SELECT type, created + FROM {node} WHERE created < %d AND created > %d - ORDER BY created - ", $now, mktime(0, 0, 0, date('m', $now), 1, date('Y', $now))); - + ORDER BY created + ", $now, mktime(0, 0, 0, date('m', $now), 1, date('Y', $now))); + $max = array(); $counts = array(); $types = array(); - - while ($result = db_fetch_array($results)){ + + while ($result = db_fetch_array($results)){ $day = ltrim(date('d', $result['created']), '0'); - $types[$result['type']] = $result['type']; + $types[$result['type']] = $result['type']; $counts[$day][$result['type']]++; - $max[$result['type']]++; - } - + $max[$result['type']]++; + } + // Generate data and labels if (count($counts) && count($types)){ for($i = 0; $i <= date('d', $now); $i++){ $chart['#labels'][] = $i; - + foreach($types AS $type){ if ($counts[$i][$type]){ - $chart['#data'][$type][] = $counts[$i][$type]; + $chart['#data'][$type][] = $counts[$i][$type]; } else{ $chart['#data'][$type][] = '0'; } } } - } - + } + // Data colors, legends, line styles, and labels if (count($types)){ foreach($types AS $type){ $chart['#data_colors'][] = chart_unique_color($type); - $chart['#legends'][] = $type; + $chart['#legends'][] = $type; $chart['#line_styles'][] = chart_line_style(2); } - } - - $max = count($max) ? max($max) : 0; - - $chart['#chart_id'] = 'node_activity'; - $chart['#title'] = chart_title(t('Node Activity for !date', array('!date' => date('F Y', $now)))); - $chart['#type'] = CHART_TYPE_LINE; - $chart['#size'] = chart_size(620, 250); - $chart['#grid_lines'] = chart_grid_lines(25, 9.5, 1, 3); - $chart['#mixed_axis_labels'][CHART_AXIS_Y_LEFT][0][] = chart_mixed_axis_range_label(0, $max); - $chart['#adjust_resolution'] = TRUE; - break; - - case 'watchdog_counts': - $results = db_query(" - SELECT COUNT(*) as count, type - FROM {watchdog} - GROUP BY type + } + + $max = count($max) ? max($max) : 0; + + $chart['#chart_id'] = 'node_activity'; + $chart['#title'] = chart_title(t('Node Activity for !date', array('!date' => date('F Y', $now)))); + $chart['#type'] = CHART_TYPE_LINE; + $chart['#size'] = chart_size(620, 250); + $chart['#grid_lines'] = chart_grid_lines(25, 9.5, 1, 3); + $chart['#mixed_axis_labels'][CHART_AXIS_Y_LEFT][0][] = chart_mixed_axis_range_label(0, $max); + $chart['#adjust_resolution'] = TRUE; + break; + + case 'watchdog_counts': + $results = db_query(" + SELECT COUNT(*) as count, type + FROM {watchdog} + GROUP BY type ORDER BY type - "); - + "); + while ($result = db_fetch_array($results)){ $chart['#data'][] = $result['count']; - $chart['#labels'][] = $result['type'] . ': ' . $result['count']; + $chart['#labels'][] = $result['type'] . ': ' . $result['count']; $chart['#data_colors'][] = chart_unique_color($result['type']); - } - + } + $chart['#chart_id'] = 'watchdog_counts'; $chart['#title'] = chart_title(t('Watchdog Messages')); $chart['#type'] = CHART_TYPE_PIE; $chart['#size'] = chart_size(600, 350); break; - + case 'watchdog_severity': $results = db_query(" - SELECT COUNT(*) as count, severity - FROM {watchdog} - GROUP BY severity + SELECT COUNT(*) as count, severity + FROM {watchdog} + GROUP BY severity ORDER BY severity - "); - + "); + while ($result = db_fetch_array($results)){ $severity_label = _system_charts_watchdog_severity_label($result['severity']); - $chart['#data'][] = $result['count']; - $chart['#labels'][] = $severity_label . ': ' . $result['count']; + $chart['#data'][] = $result['count']; + $chart['#labels'][] = $severity_label . ': ' . $result['count']; $chart['#data_colors'][] = chart_unique_color($severity_label, 'watchdog_severity'); - } - + } + $chart['#chart_id'] = 'watchdog_severity'; $chart['#title'] = chart_title(t('Message Severity')); $chart['#type'] = CHART_TYPE_PIE; $chart['#size'] = chart_size(600, 350); break; - + case 'users_per_role': $results = db_query(" - SELECT COUNT(*) as count, r.* - FROM {users_roles} ur - LEFT JOIN {users} u ON ur.uid = u.uid + SELECT COUNT(*) as count, r.* + FROM {users_roles} ur + LEFT JOIN {users} u ON ur.uid = u.uid LEFT JOIN {role} r ON r.rid = ur.rid GROUP BY r.rid ORDER BY r.name - "); - - while ($result = db_fetch_array($results)){ - $chart['#data'][] = $result['count']; + "); + + while ($result = db_fetch_array($results)){ + $chart['#data'][] = $result['count']; $chart['#labels'][] = $result['name'] . ': ' . $result['count']; $chart['#data_colors'][] = chart_unique_color('role_' . $result['name']); - } - + } + $chart['#chart_id'] = 'users_per_role'; $chart['#title'] = chart_title('Users Per Role'); $chart['#type'] = CHART_TYPE_PIE; $chart['#size'] = chart_size(600, 350); break; - + case 'user_status': $results = db_query(" - SELECT COUNT(*) as count, status - FROM {users} + SELECT COUNT(*) as count, status + FROM {users} WHERE uid != 0 GROUP BY status ORDER BY status - "); - - while ($result = db_fetch_array($results)){ - $chart['#data'][] = $result['count']; + "); + + while ($result = db_fetch_array($results)){ + $chart['#data'][] = $result['count']; $chart['#labels'][] = _system_charts_user_status_label($result['status']) . ': ' . $result['count']; $chart['#data_colors'][] = chart_unique_color('status_' . $result['status']); - } - + } + $chart['#chart_id'] = 'user_status'; $chart['#title'] = chart_title('User Status'); $chart['#type'] = CHART_TYPE_PIE; $chart['#size'] = chart_size(600, 350); break; } - - return chart_render($chart); + + return chart_render($chart); } /** * Get available report page information. -* +* * @return array * report information. */ @@ -318,18 +318,18 @@ '#title' => t('Nodes'), '#type' => 'nodes', '#description' => t('Various node data reports.'), - ), + ), 'users' => array( '#title' => t('Users'), '#type' => 'users', '#description' => t('User access and information reporting.'), - ), + ), 'watchdog' => array( '#title' => t('Watchdog'), '#type' => 'watchdog', '#description' => t('Log charts.'), - ), - ); + ), + ); } /* ----------------------------------------------------------------- @@ -346,11 +346,11 @@ case WATCHDOG_NOTICE: return t('Notice'); break; - + case WATCHDOG_WARNING: return t('Warning'); break; - + case WATCHDOG_ERROR: return t('Error'); break;