diff --git a/core/modules/views/lib/Drupal/views/Tests/ViewsHooksTest.php b/core/modules/views/lib/Drupal/views/Tests/ViewsHooksTest.php index 9aec994..2178a3a 100644 --- a/core/modules/views/lib/Drupal/views/Tests/ViewsHooksTest.php +++ b/core/modules/views/lib/Drupal/views/Tests/ViewsHooksTest.php @@ -95,17 +95,19 @@ public function testHooks() { $this->moduleHandler->resetImplementations(); } - // Test the views_pre_render hook. + // Test the views_pre_render/views_post_render hooks of the base_theme + // to be invoked when rendering the view. + $this->container->get('state')->set('views_hook_test_views_pre_render', FALSE); + $this->container->get('state')->set('views_hook_test_views_post_render', FALSE); $base_test = new \stdClass(); - $base_test->name = 'views_test_data_base'; + $base_test->name = 'views_test_data'; $GLOBALS['base_theme_info'] = array(); $GLOBALS['base_theme_info']['test'] = $base_test; - // Render should invoke views_pre_render and views_post_render. $view->render(); - $this->assertTrue($this->container->get('state')->get('views_hook_test_base_views_pre_render')); - $this->assertTrue($this->container->get('state')->get('views_hook_test_base_views_post_render')); + $this->assertTrue($this->container->get('state')->get('views_hook_test_views_pre_render'), 'The hook_views_pre_render was invoked in the base theme.'); + $this->assertTrue($this->container->get('state')->get('views_hook_test_views_post_render'), 'The hook_views_post_render was invoked in the base theme.'); } } diff --git a/core/modules/views/lib/Drupal/views/ViewExecutable.php b/core/modules/views/lib/Drupal/views/ViewExecutable.php index a8a8dd2..5ff0683 100644 --- a/core/modules/views/lib/Drupal/views/ViewExecutable.php +++ b/core/modules/views/lib/Drupal/views/ViewExecutable.php @@ -1310,7 +1310,7 @@ public function render($display_id = NULL) { // Let the themes play too, because pre render is a very themey thing. foreach ($GLOBALS['base_theme_info'] as $base) { - $module_handler->invoke($base, 'views_pre_render', array($this)); + $module_handler->invoke($base->name, 'views_pre_render', array($this)); } $module_handler->invoke($GLOBALS['theme'], 'views_pre_render', array($this)); @@ -1332,7 +1332,7 @@ public function render($display_id = NULL) { // Let the themes play too, because post render is a very themey thing. foreach ($GLOBALS['base_theme_info'] as $base) { - $module_handler->invoke($base, 'views_post_render', array($this)); + $module_handler->invoke($base->name, 'views_post_render', array($this)); } $module_handler->invoke($GLOBALS['theme'], 'views_post_render', array($this)); diff --git a/core/modules/views/tests/views_test_data/views_test_data.module b/core/modules/views/tests/views_test_data/views_test_data.module index 644bd2a..9dc5159 100644 --- a/core/modules/views/tests/views_test_data/views_test_data.module +++ b/core/modules/views/tests/views_test_data/views_test_data.module @@ -129,17 +129,3 @@ function template_preprocess_views_view_mapping_test(&$variables) { function theme_views_view_mapping_test($variables) { return drupal_render($variables['element']); } - -/** - * Implements hook_views_pre_execute(). - */ -function views_test_data_base_views_pre_render(ViewExecutable $view) { - Drupal::state()->set('views_hook_test_base_views_pre_render', TRUE); -} - -/** - * Implements hook_views_post_execute(). - */ -function views_test_data_base_views_post_render(ViewExecutable $view) { - Drupal::state()->set('views_hook_test_base_views_post_render', TRUE); -}