public function CommentStatistics::getRankingInfo in Drupal 8
Same name and namespace in other branches
- 9 core/modules/comment/src/CommentStatistics.php \Drupal\comment\CommentStatistics::getRankingInfo()
Returns an array of ranking information for hook_ranking().
Return value
array Array of ranking information as expected by hook_ranking().
Overrides CommentStatisticsInterface::getRankingInfo
See also
File
- core/
modules/ comment/ src/ CommentStatistics.php, line 170
Class
Namespace
Drupal\commentCode
public function getRankingInfo() {
return [
'comments' => [
'title' => t('Number of comments'),
'join' => [
'type' => 'LEFT',
'table' => 'comment_entity_statistics',
'alias' => 'ces',
// Default to comment field as this is the most common use case for
// nodes.
'on' => "ces.entity_id = i.sid AND ces.entity_type = 'node' AND ces.field_name = 'comment'",
],
// 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 :comment_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 + ces.comment_count * (ROUND(:comment_scale, 4)))',
'arguments' => [
':comment_scale' => \Drupal::state()
->get('comment.node_comment_statistics_scale') ?: 0,
],
],
];
}