diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/style/StylePluginBase.php b/core/modules/views/lib/Drupal/views/Plugin/views/style/StylePluginBase.php index 76bbb42..b22190c 100644 --- a/core/modules/views/lib/Drupal/views/Plugin/views/style/StylePluginBase.php +++ b/core/modules/views/lib/Drupal/views/Plugin/views/style/StylePluginBase.php @@ -158,8 +158,8 @@ function usesFields() { // If we use a row plugin, ask the row plugin. Chances are, we don't // care, it does. $row_uses_fields = FALSE; - if ($this->usesRowPlugin() && !empty($this->view->rowPlugin)) { - $row_uses_fields = $this->view->rowPlugin->usesFields(); + if ($this->usesRowPlugin() && ($row_plugin = $this->displayHandler->getPlugin('row'))) { + $row_uses_fields = $row_plugin->usesFields(); } // Otherwise, check the definition or the option. return $row_uses_fields || $this->usesFields || !empty($this->options['uses_fields']); diff --git a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/style/StyleTest.php b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/style/StyleTest.php index f7d2c7d..8c94280 100644 --- a/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/style/StyleTest.php +++ b/core/modules/views/tests/views_test_data/lib/Drupal/views_test_data/Plugin/views/style/StyleTest.php @@ -34,6 +34,13 @@ class StyleTest extends StylePluginBase { public $output; /** + * Does the style plugin allows to use style plugins. + * + * @var bool + */ + protected $usesRowPlugin = TRUE; + + /** * Overrides Drupal\views\Plugin\views\style\StylePluginBase::defineOptions(). */ protected function defineOptions() { diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/StyleUITest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/StyleUITest.php index 5666547..4a39c82 100644 --- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/StyleUITest.php +++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/StyleUITest.php @@ -64,6 +64,13 @@ public function testStyleUI() { $style = $view->display_handler->getOption('style'); $this->assertEqual($style['type'], 'test_style', 'Make sure that the test_style got saved as used style plugin.'); $this->assertEqual($style['options']['test_option'], $random_name, 'Make sure that the custom settings field got saved as expected.'); + + // Test that fields are working correctly in the UI for style plugins when + // a field row plguin is selected. + $this->drupalPost("admin/structure/views/view/$view_name/edit", array(), 'Add Page'); + $this->drupalPost("admin/structure/views/nojs/display/$view_name/page_1/row", array('row' => 'fields'), t('Apply')); + // If fields are being used this text will not be shown. + $this->assertNoText(t('The selected style or row format does not utilize fields.')); } }