You are here

function statistics_ranking in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/modules/statistics/statistics.module \statistics_ranking()

Implements hook_ranking().

File

core/modules/statistics/statistics.module, line 162
Logs and displays content statistics for a site.

Code

function statistics_ranking() {
  if (\Drupal::config('statistics.settings')
    ->get('count_content_views')) {
    return array(
      'views' => array(
        'title' => t('Number of views'),
        'join' => array(
          'type' => 'LEFT',
          'table' => 'node_counter',
          'alias' => 'node_counter',
          'on' => 'node_counter.nid = i.sid',
        ),
        // Inverse law that maps the highest view count on the site to 1 and 0
        // to 0. Note that the ROUND here is necessary for PostgreSQL and SQLite
        // in order to ensure that the :statistics_scale argument is treated as
        // a numeric type, because the PostgreSQL PDO driver sometimes puts
        // values in as strings instead of numbers in complex expressions like
        // this.
        'score' => '2.0 - 2.0 / (1.0 + node_counter.totalcount * (ROUND(:statistics_scale, 4)))',
        'arguments' => array(
          ':statistics_scale' => \Drupal::state()
            ->get('statistics.node_counter_scale') ?: 0,
        ),
      ),
    );
  }
}