All pastes #150719 Raw Edit

functions in monitor

public php v1 · immutable
#150719 ·published 2006-08-27 07:23 UTC
rendered paste body
<?php/** * Implementation of hook_perm().*/function monitor_perm() { return array('access monitor', 'administer monitor');} /** * Implementation of hook_menu().*/function monitor_menu($may_cache) {  $items = array();    $items[] = array(      'path' => 'admin/logs/monitor',      'title' => t('stats monitor'),      'description' => t('Monitor important stats of your site'),      'callback' => 'monitor_dashboard',      'access' => user_access('access monitor'),      'type' => MENU_NORMAL_ITEM);     return $items;}/** * Veiw the dashboard.*/ function monitor_dashboard() {  drupal_set_title('Stats Monitor');  return(monitor_search_terms().    '<br />'.    monitor_page_most_viewed().    '<br />'.    monitor_page_most_commented());}function monitor_search_terms() {  $sql = 'SELECT message, link, COUNT(message) AS count FROM {watchdog} WHERE type = '.    "'search'".' AND uid = 0 GROUP BY message ORDER BY count DESC LIMIT 10';  $result = db_query($sql);  $rows = array();  $header = array(t('Search Term'), t('Link'), t('Count'));  while ($s = db_fetch_object($result)) {    preg_match('!<em>(.*?)</em>!', $s->message, $matches);    $rows[] = array($matches[1], $s->link, $s->count);  }  if ($rows)    $output .= theme_table($header, $rows, array('width' => '100%'), t('Most Searched Terms by Anonymous Users'));    $rows = array();  $sql = 'SELECT message, link, COUNT(message) AS count FROM {watchdog} WHERE type = '.  "'search'".' AND uid != 0 GROUP BY message ORDER BY count DESC LIMIT 10';  $result = db_query($sql);  while ($s = db_fetch_object($result)) {    preg_match('!<em>(.*?)</em>!', $s->message, $matches);    $rows[] = array($matches[1], $s->link, $s->count);  }  if ($rows)    $output .= theme_table($header, $rows, array('width' => '100%'), t('Most Searched Terms by Authenticated Users'));    return $output;}function monitor_page_most_viewed() {  $sql = 'SELECT title, path, COUNT(path) AS count FROM {accesslog} WHERE path != '.    "'node'".' GROUP BY path ORDER BY count DESC LIMIT 10';  $result = db_query($sql);  $rows = array();  $header = array(t('Page Title'), t('Path'), t('Views Count'));  while ($s = db_fetch_object($result)) {    $rows[] = array($s->title, $s->path, $s->count);  }  if ($rows)    $output .= theme_table($header, $rows, array('width' => '100%'), t('Most Viewed Pages'));    return $output;}function monitor_page_most_commented() {  $sql = 'SELECT n.nid, n.title, COUNT(c.subject) AS count from {comments} c'.    ' INNER JOIN {node} n ON n.nid = c.nid GROUP BY nid ORDER BY count LIMIT 10';  $result = db_query($sql);  $rows = array();  $header = array(t('Page Title'), t('Path'), t('Comments Count'));  while ($s = db_fetch_object($result)) {    $rows[] = array($s->title, 'node/'.$s->nid, $s->count);  }  if ($rows)    $output .= theme_table($header, $rows, array('width' => '100%'), t('Most Commented Pages'));    return $output;}