function statistics_node_tracker

Page callback: Displays statistics for a node.

Return value

A render array containing node statistics. If information for the node was not found, this will deliver a page not found error via drupal_not_found().

1 string reference to 'statistics_node_tracker'
statistics_menu in modules/statistics/statistics.module
Implements hook_menu().

File

modules/statistics/statistics.pages.inc, line 15

Code

function statistics_node_tracker() {
    if ($node = node_load(arg(1))) {
        $header = array(
            array(
                'data' => 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;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.