diff --git a/core/modules/comment/src/Plugin/views/row/Rss.php b/core/modules/comment/src/Plugin/views/row/Rss.php index 5f6f512..2412892 100644 --- a/core/modules/comment/src/Plugin/views/row/Rss.php +++ b/core/modules/comment/src/Plugin/views/row/Rss.php @@ -18,7 +18,7 @@ * help = @Translation("Display the comment as RSS."), * theme = "views_view_row_rss", * register_theme = FALSE, - * base = {"comment"}, + * base = {"comment_field_data"}, * display_types = {"feed"} * ) */ @@ -27,7 +27,7 @@ class Rss extends RssPluginBase { /** * {@inheritdoc} */ - protected $base_table = 'comment'; + protected $base_table = 'comment_field_data'; /** * {@inheritdoc} diff --git a/core/modules/entity_reference/src/Tests/Views/SelectionTest.php b/core/modules/entity_reference/src/Tests/Views/SelectionTest.php index 9faf512..d324b12 100644 --- a/core/modules/entity_reference/src/Tests/Views/SelectionTest.php +++ b/core/modules/entity_reference/src/Tests/Views/SelectionTest.php @@ -118,7 +118,7 @@ public function testSelectionHandlerRelationship() { $view->displayHandlers->get('default')->setOption('relationships', array( 'test_relationship' => array( 'id' => 'uid', - 'table' => 'users_field_data', + 'table' => 'node_field_data', 'field' => 'uid', ), )); diff --git a/core/modules/file/tests/modules/file_test_views/test_views/views.view.test_file_user_file_data.yml b/core/modules/file/tests/modules/file_test_views/test_views/views.view.test_file_user_file_data.yml index 9387275..07f3e22 100644 --- a/core/modules/file/tests/modules/file_test_views/test_views/views.view.test_file_user_file_data.yml +++ b/core/modules/file/tests/modules/file_test_views/test_views/views.view.test_file_user_file_data.yml @@ -9,7 +9,7 @@ label: test_file_user_file_data module: views description: '' tag: '' -base_table: users +base_table: users_field_data base_field: uid core: 8.x display: diff --git a/core/modules/image/tests/modules/image_test_views/test_views/views.view.test_image_user_image_data.yml b/core/modules/image/tests/modules/image_test_views/test_views/views.view.test_image_user_image_data.yml index 62a82bd..5a504cb 100644 --- a/core/modules/image/tests/modules/image_test_views/test_views/views.view.test_image_user_image_data.yml +++ b/core/modules/image/tests/modules/image_test_views/test_views/views.view.test_image_user_image_data.yml @@ -9,7 +9,7 @@ label: test_image_user_image_data module: views description: '' tag: '' -base_table: users +base_table: users_field_data base_field: uid core: 8.x display: diff --git a/core/modules/node/src/NodeViewsData.php b/core/modules/node/src/NodeViewsData.php index aa33abc..95897ea 100644 --- a/core/modules/node/src/NodeViewsData.php +++ b/core/modules/node/src/NodeViewsData.php @@ -298,8 +298,8 @@ public function getViewsData() { $data['node_field_revision']['table']['wizard_id'] = 'node_field_revision'; - $data['node_field_revision']['table']['join']['node']['left_field'] = 'vid'; - $data['node_field_revision']['table']['join']['node']['field'] = 'vid'; + $data['node_field_revision']['table']['join']['node_field_data']['left_field'] = 'vid'; + $data['node_field_revision']['table']['join']['node_field_data']['field'] = 'vid'; $data['node_field_revision']['status']['field']['output formats'] = [ 'published-notpublished' => [t('Published'), t('Not published')], diff --git a/core/modules/node/src/Plugin/views/field/RevisionLink.php b/core/modules/node/src/Plugin/views/field/RevisionLink.php index 569532f..b510e50 100644 --- a/core/modules/node/src/Plugin/views/field/RevisionLink.php +++ b/core/modules/node/src/Plugin/views/field/RevisionLink.php @@ -29,7 +29,7 @@ class RevisionLink extends Link { public function init(ViewExecutable $view, DisplayPluginBase $display, array &$options = NULL) { parent::init($view, $display, $options); - $this->additional_fields['node_vid'] = array('table' => 'node_revision', 'field' => 'vid'); + $this->additional_fields['node_vid'] = array('table' => 'node_field_revision', 'field' => 'vid'); } /** diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_nid.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_nid.yml index 86166b2..8c2c0bf 100644 --- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_nid.yml +++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_node_revision_nid.yml @@ -30,8 +30,8 @@ display: entity_type: node entity_field: vid nid_1: - id: node_field_revision - table: revision_data_table + id: nid_1 + table: node_field_revision field: nid plugin_id: standard entity_type: node @@ -47,7 +47,7 @@ display: arguments: nid: id: nid - table: revision_data_table + table: node_field_revision field: nid plugin_id: node_nid entity_type: node diff --git a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_status_extra.yml b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_status_extra.yml index 90029aa..c3e4cd6 100644 --- a/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_status_extra.yml +++ b/core/modules/node/tests/modules/node_test_views/test_views/views.view.test_status_extra.yml @@ -9,7 +9,7 @@ label: test_status_extra module: views description: '' tag: '' -base_table: node +base_table: node_field_data base_field: nid core: 8.x display: diff --git a/core/modules/taxonomy/config/install/views.view.taxonomy_term.yml b/core/modules/taxonomy/config/install/views.view.taxonomy_term.yml index 3d74812..d7bbb87 100644 --- a/core/modules/taxonomy/config/install/views.view.taxonomy_term.yml +++ b/core/modules/taxonomy/config/install/views.view.taxonomy_term.yml @@ -9,7 +9,7 @@ label: 'Taxonomy term' module: taxonomy description: 'Content belonging to a certain taxonomy term.' tag: default -base_table: node +base_table: node_field_data base_field: nid core: '8' display: diff --git a/core/modules/tracker/tests/modules/tracker_test_views/test_views/views.view.test_tracker_user_uid.yml b/core/modules/tracker/tests/modules/tracker_test_views/test_views/views.view.test_tracker_user_uid.yml index 2d00240..1b7940b 100644 --- a/core/modules/tracker/tests/modules/tracker_test_views/test_views/views.view.test_tracker_user_uid.yml +++ b/core/modules/tracker/tests/modules/tracker_test_views/test_views/views.view.test_tracker_user_uid.yml @@ -10,7 +10,7 @@ label: 'tracker test' module: views description: '' tag: '' -base_table: node +base_table: node_field_data base_field: nid core: 8.x display: @@ -109,7 +109,7 @@ display: filters: uid_touch_tracker: id: uid_touch_tracker - table: node + table: node_field_data field: uid_touch_tracker relationship: none group_type: group @@ -149,7 +149,7 @@ display: arguments: uid_touch_tracker: id: uid_touch_tracker - table: node + table: node_field_data field: uid_touch_tracker relationship: none group_type: group diff --git a/core/modules/user/config/install/views.view.who_s_new.yml b/core/modules/user/config/install/views.view.who_s_new.yml index 9551a3c..0f10a8d 100644 --- a/core/modules/user/config/install/views.view.who_s_new.yml +++ b/core/modules/user/config/install/views.view.who_s_new.yml @@ -8,7 +8,7 @@ label: 'Who''s new' module: user description: 'Shows a list of the newest user accounts on the site.' tag: default -base_table: users +base_table: users_field_data base_field: uid core: 8.x display: diff --git a/core/modules/user/config/install/views.view.who_s_online.yml b/core/modules/user/config/install/views.view.who_s_online.yml index 34fbfc3..db54c5b 100644 --- a/core/modules/user/config/install/views.view.who_s_online.yml +++ b/core/modules/user/config/install/views.view.who_s_online.yml @@ -8,7 +8,7 @@ label: 'Who''s online block' module: user description: 'Shows the user names of the most recently active users, and the total number of active users.' tag: default -base_table: users +base_table: users_field_data base_field: uid core: 8.x display: diff --git a/core/modules/user/src/Plugin/views/field/Permissions.php b/core/modules/user/src/Plugin/views/field/Permissions.php index bec1689..9488c08 100644 --- a/core/modules/user/src/Plugin/views/field/Permissions.php +++ b/core/modules/user/src/Plugin/views/field/Permissions.php @@ -71,7 +71,7 @@ public static function create(ContainerInterface $container, array $configuratio public function init(ViewExecutable $view, DisplayPluginBase $display, array &$options = NULL) { parent::init($view, $display, $options); - $this->additional_fields['uid'] = array('table' => 'users', 'field' => 'uid'); + $this->additional_fields['uid'] = array('table' => 'users_field_data', 'field' => 'uid'); } public function query() { diff --git a/core/modules/user/src/UserViewsData.php b/core/modules/user/src/UserViewsData.php index e524f5c..4736301 100644 --- a/core/modules/user/src/UserViewsData.php +++ b/core/modules/user/src/UserViewsData.php @@ -288,7 +288,7 @@ public function getViewsData() { $data['user__roles']['table']['group'] = t('User'); $data['user__roles']['table']['join'] = array( - 'users' => array( + 'users_field_data' => array( 'left_field' => 'uid', 'field' => 'entity_id', ), diff --git a/core/modules/views/src/EntityViewsData.php b/core/modules/views/src/EntityViewsData.php index 2ada727..d69c95d 100644 --- a/core/modules/views/src/EntityViewsData.php +++ b/core/modules/views/src/EntityViewsData.php @@ -153,7 +153,7 @@ public function getViewsData() { } } - $data[$views_base_table]['operations'] = array( + $data[$base_table]['operations'] = array( 'field' => array( 'title' => $this->t('Operations links'), 'help' => $this->t('Provides links to perform entity operations.'), @@ -184,7 +184,7 @@ public function getViewsData() { 'title' => $this->t('@entity_type revisions', array('@entity_type' => $this->entityType->getLabel())), ); // Join the revision table to the base table. - $data[$revision_table]['table']['join'][$base_table] = array( + $data[$revision_table]['table']['join'][$views_base_table] = array( 'left_field' => $revision_field, 'field' => $revision_field, 'type' => 'INNER', diff --git a/core/modules/views/src/Plugin/Derivative/DefaultWizardDeriver.php b/core/modules/views/src/Plugin/Derivative/DefaultWizardDeriver.php index 51eaa2d..f7610f2 100644 --- a/core/modules/views/src/Plugin/Derivative/DefaultWizardDeriver.php +++ b/core/modules/views/src/Plugin/Derivative/DefaultWizardDeriver.php @@ -22,7 +22,6 @@ class DefaultWizardDeriver extends DeriverBase { public function getDerivativeDefinitions($base_plugin_definition) { $views_data = Views::viewsData(); $base_tables = array_keys($views_data->fetchBaseTables()); - print_r($base_tables); $this->derivatives = array(); foreach ($base_tables as $table) { $views_info = $views_data->get($table); @@ -35,7 +34,6 @@ public function getDerivativeDefinitions($base_plugin_definition) { ); } } - print_r($this->derivatives); return parent::getDerivativeDefinitions($base_plugin_definition); } } diff --git a/core/modules/views/src/Tests/FieldApiDataTest.php b/core/modules/views/src/Tests/FieldApiDataTest.php index 31c73ad..5519633 100644 --- a/core/modules/views/src/Tests/FieldApiDataTest.php +++ b/core/modules/views/src/Tests/FieldApiDataTest.php @@ -62,8 +62,8 @@ function testViewsData() { $this->assertTrue(isset($data[$current_table])); $this->assertTrue(isset($data[$revision_table])); // The node field should join against node. - $this->assertTrue(isset($data[$current_table]['table']['join']['node'])); - $this->assertTrue(isset($data[$revision_table]['table']['join']['node_revision'])); + $this->assertTrue(isset($data[$current_table]['table']['join']['node_field_data'])); + $this->assertTrue(isset($data[$revision_table]['table']['join']['node_field_revision'])); $expected_join = array( 'left_table' => 'node_field_data', @@ -74,7 +74,7 @@ function testViewsData() { array('left_field' => 'langcode', 'field' => 'langcode'), ), ); - $this->assertEqual($expected_join, $data[$current_table]['table']['join']['node']); + $this->assertEqual($expected_join, $data[$current_table]['table']['join']['node_field_data']); $expected_join = array( 'left_table' => 'node_field_revision', 'left_field' => 'vid', @@ -84,7 +84,7 @@ function testViewsData() { array('left_field' => 'langcode', 'field' => 'langcode'), ), ); - $this->assertEqual($expected_join, $data[$revision_table]['table']['join']['node_revision']); + $this->assertEqual($expected_join, $data[$revision_table]['table']['join']['node_field_revision']); // Test click sortable. $this->assertTrue($data[$current_table][$field_storage->getName()]['field']['click sortable'], 'String field is click sortable.'); diff --git a/core/modules/views/tests/src/Unit/EntityViewsDataTest.php b/core/modules/views/tests/src/Unit/EntityViewsDataTest.php index f251b4d..e943f8a 100644 --- a/core/modules/views/tests/src/Unit/EntityViewsDataTest.php +++ b/core/modules/views/tests/src/Unit/EntityViewsDataTest.php @@ -178,7 +178,8 @@ public function testBaseTables() { * Tests data_table support. */ public function testDataTable() { - $entity_type = $this->baseEntityType->set('data_table', 'entity_test_mul_property_data') + $entity_type = $this->baseEntityType + ->set('data_table', 'entity_test_mul_property_data') ->set('id', 'entity_test_mul') ->setKey('label', 'label'); @@ -237,7 +238,41 @@ public function testRevisionTableWithoutDataTable() { /** * Tests revision table with data table support. */ - public function testRevisionTableWithDataTable() { + public function testRevisionTableWithRevisionDataTableAndDataTable() { + $entity_type = $this->baseEntityType + ->set('data_table', 'entity_test_mul_property_data') + ->set('revision_table', 'entity_test_mulrev_revision') + ->set('revision_data_table', 'entity_test_mulrev_property_revision') + ->set('id', 'entity_test_mulrev') + ->setKey('revision', 'revision_id') + ; + $this->viewsData->setEntityType($entity_type); + + $data = $this->viewsData->getViewsData(); + + $this->assertEquals('Entity test revisions', $data['entity_test_mulrev_property_revision']['table']['base']['title']); + $this->assertEquals('revision_id', $data['entity_test_mulrev_property_revision']['table']['base']['field']); + $this->assertFalse(isset($data['entity_test_mulrev_revision']['table']['base'])); + + $this->assertEquals('entity_test_mulrev', $data['entity_test_mulrev_property_revision']['table']['entity type']); + $this->assertEquals('Entity test revision', $data['entity_test_mulrev_revision']['table']['group']); + $this->assertEquals('entity_test', $data['entity_test']['table']['provider']); + + // Ensure the join information is set up properly. + // Tests the join definition between the base and the revision table. + $revision_data = $data['entity_test_mulrev_revision']; + $this->assertCount(1, $revision_data['table']['join']); + $this->assertEquals(['entity_test_mul_property_data' => ['left_field' => 'revision_id', 'field' => 'revision_id', 'type' => 'INNER']], $revision_data['table']['join']); + $revision_data = $data['entity_test_mulrev_property_revision']; + $this->assertCount(1, $revision_data['table']['join']); + $this->assertEquals(['entity_test_mulrev_revision' => ['left_field' => 'revision_id', 'field' => 'revision_id', 'type' => 'INNER']], $revision_data['table']['join']); + $this->assertFalse(isset($data['data_table'])); + } + + /** + * Tests revision table with data table support. + */ + public function testRevisionTableWithRevisionDataTable() { $entity_type = $this->baseEntityType ->set('revision_table', 'entity_test_mulrev_revision') ->set('revision_data_table', 'entity_test_mulrev_property_revision')