community_builder-1.0.0-alpha1/src/Plugin/views/sort/UserCommentCountSort.php
src/Plugin/views/sort/UserCommentCountSort.php
<?php
namespace Drupal\community_builder\Plugin\views\sort;
use Drupal\views\Plugin\views\sort\SortPluginBase;
/**
* Sorts entities by user comment count.
*
* @ViewsSort("user_comment_count_sort")
*/
class UserCommentCountSort extends SortPluginBase {
/**
* Provide a list of options for the default sort form.
*
* Should be overridden by classes that don't override sort_form.
*/
protected function sortOptions() {
return [
'ASC' => $this->t('Ascending'),
'DESC' => $this->t('Descending'),
];
}
/**
* Display whether or not the sort order is ascending or descending.
*/
public function adminSummary() {
if (!empty($this->options['exposed'])) {
return $this->t('Exposed');
}
// Get the labels defined in sortOptions().
$sort_options = $this->sortOptions();
return $sort_options[strtoupper($this->options['order'])];
}
/**
* {@inheritdoc}
*/
public function query() {
$this->ensureMyTable();
$this->query->addOrderBy(NULL, "$this->tableAlias.$this->field", $this->options['order'], $this->tableAlias . '_' . $this->field);
}
}
