[Решено] Сложная сортировка Views

Главные вкладки

Аватар пользователя mNigma@drupal.org mNigma@drupal.org 23 июля 2016 в 22:43
1

Здравствуйте!
Первый раз залез так глубоко в views.
Есть свой модуль и своя таблица в которую заносятся данные голосования за материал пользователями.
Главные поля: nid_node и points.
nid_node не уникальный столбец и nid_ы могут повторяться.
Хочу сделать сортировку виевса по поинтам (столбец points), но чтобы они были изначально просуммированы.

Что делаю:
В своем модуле добавил поддержку своей таблицы через hook_views_api .. hook_views_data().
В hook_views_data ссылаюсь на свой класс mymodule_handler_sort_customsort:

<?php
#....
 
$data['mymodule_user_points']['points'] = array(
    
'title'  => 'Поинты',
    
'help'   => 'Поинты за ноду',
    
'group'  => t('Custom'),                        
    
'sort'   => array('handler' => 'mymodule_handler_sort_customsort'), 
  );
#...
?>

В файле скопировал кусок из базового класса, а как изменить под свой запрос не знаю.

<?php
class mymodule_handler_sort_customsort extends views_handler_sort {
 function 
query() {
    
$this->ensure_my_table();
    
// Add the field.
    
$this->query->add_orderby($this->table_alias$this->real_field$this->options['order']);
  }
}
?>

Может кто подскажет как переделать или где посмотреть?

P.S. Нашел такие варианты $this->query->add_where() и $this->query->add_where_expression() тут. А какие еще есть запросы, где можно найти по ним информацию для себя?

Комментарии