diff -r 07239de796bb -r e756a8c72c3d cms/drupal/modules/statistics/statistics.pages.inc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/drupal/modules/statistics/statistics.pages.inc Fri Sep 08 12:04:06 2017 +0200 @@ -0,0 +1,101 @@ + t('Time'), 'field' => 'a.timestamp', 'sort' => 'desc'), + array('data' => t('Referrer'), 'field' => 'a.url'), + array('data' => t('User'), 'field' => 'u.name'), + array('data' => t('Operations'))); + + $query = db_select('accesslog', 'a', array('target' => 'slave'))->extend('PagerDefault')->extend('TableSort'); + $query->join('users', 'u', 'a.uid = u.uid'); + + $query + ->fields('a', array('aid', 'timestamp', 'url', 'uid')) + ->fields('u', array('name')) + ->condition(db_or() + ->condition('a.path', 'node/' . $node->nid) + ->condition('a.path', 'node/' . $node->nid . '/%', 'LIKE')) + ->limit(30) + ->orderByHeader($header); + + $result = $query->execute(); + $rows = array(); + foreach ($result as $log) { + $rows[] = array( + array('data' => format_date($log->timestamp, 'short'), 'class' => array('nowrap')), + _statistics_link($log->url), + theme('username', array('account' => $log)), + l(t('details'), "admin/reports/access/$log->aid"), + ); + } + + drupal_set_title($node->title); + $build['statistics_table'] = array( + '#theme' => 'table', + '#header' => $header, + '#rows' => $rows, + '#empty' => t('No statistics available.'), + ); + $build['statistics_pager'] = array('#theme' => 'pager'); + return $build; + } + return MENU_NOT_FOUND; +} + +/** + * Page callback: Displays statistics for a user. + * + * @return array + * A render array containing user statistics. If information for the user was + * not found, this will deliver a page not found error via drupal_not_found(). + */ +function statistics_user_tracker() { + if ($account = user_load(arg(1))) { + + $header = array( + array('data' => t('Timestamp'), 'field' => 'timestamp', 'sort' => 'desc'), + array('data' => t('Page'), 'field' => 'path'), + array('data' => t('Operations'))); + $query = db_select('accesslog', 'a', array('target' => 'slave'))->extend('PagerDefault')->extend('TableSort'); + $query + ->fields('a', array('aid', 'timestamp', 'path', 'title')) + ->condition('uid', $account->uid) + ->limit(30) + ->orderByHeader($header); + + $result = $query->execute(); + $rows = array(); + foreach ($result as $log) { + $rows[] = array( + array('data' => format_date($log->timestamp, 'short'), 'class' => array('nowrap')), + _statistics_format_item($log->title, $log->path), + l(t('details'), "admin/reports/access/$log->aid")); + } + + drupal_set_title(format_username($account)); + $build['statistics_table'] = array( + '#theme' => 'table', + '#header' => $header, + '#rows' => $rows, + '#empty' => t('No statistics available.'), + ); + $build['statistics_pager'] = array('#theme' => 'pager'); + return $build; + } + return MENU_NOT_FOUND; +}