diff --git a/lib/Drupal/views/Plugin/views/HandlerBase.php b/lib/Drupal/views/Plugin/views/HandlerBase.php index 9cf2130a1f3463bbb540b8a7dd84aceaf332038f..8a6640d2b34af65d12ece07d9910295a2d6e69a0 100644 --- a/lib/Drupal/views/Plugin/views/HandlerBase.php +++ b/lib/Drupal/views/Plugin/views/HandlerBase.php @@ -182,8 +182,11 @@ function get_field($field = NULL) { $this->view->init_query(); if ($this->query) { $info = $this->query->get_aggregation_info(); - if (!empty($info[$this->options['group_type']]['method']) && function_exists($info[$this->options['group_type']]['method'])) { - return $info[$this->options['group_type']]['method']($this->options['group_type'], $field); + if (!empty($info[$this->options['group_type']]['method'])) { + $method = $info[$this->options['group_type']]['method']; + if (method_exists($this->query, $method)) { + return $this->query->$method($this->options['group_type'], $field); + } } } } @@ -311,7 +314,7 @@ function use_group_by() { function groupby_form(&$form, &$form_state) { $view = &$form_state['view']; $display_id = $form_state['display_id']; - $types = Views::views_object_types(); + $types = View::views_object_types(); $type = $form_state['type']; $id = $form_state['id']; diff --git a/lib/Drupal/views/Tests/QueryGroupByTest.php b/lib/Drupal/views/Tests/QueryGroupByTest.php index df383a8f98f567a5d2b144fb2c1b25fa0f9edbb0..70498dedcd65b0b6190b2abd1b11d2a8776f16b1 100644 --- a/lib/Drupal/views/Tests/QueryGroupByTest.php +++ b/lib/Drupal/views/Tests/QueryGroupByTest.php @@ -250,7 +250,7 @@ public function testGroupByCountOnlyFilters() { $this->assertTrue(strpos($view->build_info['query'], 'HAVING'), t('Make sure that HAVING is in the query')); } - function viewsGroupByCountViewOnlyFilters() { + public function viewsGroupByCountViewOnlyFilters() { $view = new View(); $view->name = 'group_by_in_filters'; $view->description = ''; @@ -270,7 +270,7 @@ function viewsGroupByCountViewOnlyFilters() { $handler->display->display_options['pager']['type'] = 'some'; $handler->display->display_options['style_plugin'] = 'default'; $handler->display->display_options['row_plugin'] = 'fields'; - /* Field: Nodo: Tipo */ + /* Field: Node: Type */ $handler->display->display_options['fields']['type']['id'] = 'type'; $handler->display->display_options['fields']['type']['table'] = 'node'; $handler->display->display_options['fields']['type']['field'] = 'type'; @@ -284,7 +284,7 @@ function viewsGroupByCountViewOnlyFilters() { $handler->display->display_options['fields']['type']['hide_empty'] = 0; $handler->display->display_options['fields']['type']['empty_zero'] = 0; $handler->display->display_options['fields']['type']['link_to_node'] = 0; - /* Filtrar: Nodo: Nid */ + /* Filter: Node: Nid */ $handler->display->display_options['filters']['nid']['id'] = 'nid'; $handler->display->display_options['filters']['nid']['table'] = 'node'; $handler->display->display_options['filters']['nid']['field'] = 'nid';