You are here

function statistics_ranking in Drupal 8

Same name and namespace in other branches
  1. 7 modules/statistics/statistics.module \statistics_ranking()
  2. 9 core/modules/statistics/statistics.module \statistics_ranking()
  3. 10 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 [
      'views' => [
        'title' => t('Number of views'),
        'join' => [
          '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' => [
          ':statistics_scale' => \Drupal::state()
            ->get('statistics.node_counter_scale') ?: 0,
        ],
      ],
    ];
  }
}