diff --git a/core/modules/comment/src/Plugin/views/wizard/Comment.php b/core/modules/comment/src/Plugin/views/wizard/Comment.php index 2d3b2b5..377eb29 100644 --- a/core/modules/comment/src/Plugin/views/wizard/Comment.php +++ b/core/modules/comment/src/Plugin/views/wizard/Comment.php @@ -156,6 +156,8 @@ protected function defaultDisplayOptions() { $display_options['fields']['subject']['id'] = 'subject'; $display_options['fields']['subject']['table'] = 'comment_field_data'; $display_options['fields']['subject']['field'] = 'subject'; + $display_options['fields']['subject']['entity_type'] = 'comment'; + $display_options['fields']['subject']['entity_field'] = 'subject'; $display_options['fields']['subject']['label'] = ''; $display_options['fields']['subject']['alter']['alter_text'] = 0; $display_options['fields']['subject']['alter']['make_link'] = 0; diff --git a/core/modules/file/src/Plugin/views/wizard/File.php b/core/modules/file/src/Plugin/views/wizard/File.php index 0539ccf..81c1718 100644 --- a/core/modules/file/src/Plugin/views/wizard/File.php +++ b/core/modules/file/src/Plugin/views/wizard/File.php @@ -52,6 +52,8 @@ protected function defaultDisplayOptions() { $display_options['fields']['filename']['id'] = 'filename'; $display_options['fields']['filename']['table'] = 'file_managed'; $display_options['fields']['filename']['field'] = 'filename'; + $display_options['fields']['filename']['entity_type'] = 'file'; + $display_options['fields']['filename']['entity_field'] = 'filename'; $display_options['fields']['filename']['label'] = ''; $display_options['fields']['filename']['alter']['alter_text'] = 0; $display_options['fields']['filename']['alter']['make_link'] = 0; diff --git a/core/modules/node/src/Plugin/views/wizard/Node.php b/core/modules/node/src/Plugin/views/wizard/Node.php index 2ce97ca..f25c8d3 100644 --- a/core/modules/node/src/Plugin/views/wizard/Node.php +++ b/core/modules/node/src/Plugin/views/wizard/Node.php @@ -136,6 +136,8 @@ protected function defaultDisplayOptions() { $display_options['fields']['title']['id'] = 'title'; $display_options['fields']['title']['table'] = 'node_field_data'; $display_options['fields']['title']['field'] = 'title'; + $display_options['fields']['title']['entity_type'] = 'node'; + $display_options['fields']['title']['entity_field'] = 'title'; $display_options['fields']['title']['label'] = ''; $display_options['fields']['title']['alter']['alter_text'] = 0; $display_options['fields']['title']['alter']['make_link'] = 0; diff --git a/core/modules/node/src/Plugin/views/wizard/NodeRevision.php b/core/modules/node/src/Plugin/views/wizard/NodeRevision.php index 3297b1c..efdcbe3 100644 --- a/core/modules/node/src/Plugin/views/wizard/NodeRevision.php +++ b/core/modules/node/src/Plugin/views/wizard/NodeRevision.php @@ -97,6 +97,8 @@ protected function defaultDisplayOptions() { $display_options['fields']['changed']['id'] = 'changed'; $display_options['fields']['changed']['table'] = 'node_field_revision'; $display_options['fields']['changed']['field'] = 'changed'; + $display_options['fields']['changed']['entity_type'] = 'node'; + $display_options['fields']['changed']['entity_field'] = 'changed'; $display_options['fields']['changed']['alter']['alter_text'] = FALSE; $display_options['fields']['changed']['alter']['make_link'] = FALSE; $display_options['fields']['changed']['alter']['absolute'] = FALSE; @@ -112,6 +114,8 @@ protected function defaultDisplayOptions() { $display_options['fields']['title']['id'] = 'title'; $display_options['fields']['title']['table'] = 'node_field_revision'; $display_options['fields']['title']['field'] = 'title'; + $display_options['fields']['title']['entity_type'] = 'node'; + $display_options['fields']['title']['entity_field'] = 'title'; $display_options['fields']['title']['label'] = ''; $display_options['fields']['title']['alter']['alter_text'] = 0; $display_options['fields']['title']['alter']['make_link'] = 0; diff --git a/core/modules/taxonomy/src/Plugin/views/wizard/TaxonomyTerm.php b/core/modules/taxonomy/src/Plugin/views/wizard/TaxonomyTerm.php index 10a42ac..9decc75 100644 --- a/core/modules/taxonomy/src/Plugin/views/wizard/TaxonomyTerm.php +++ b/core/modules/taxonomy/src/Plugin/views/wizard/TaxonomyTerm.php @@ -50,6 +50,8 @@ protected function defaultDisplayOptions() { $display_options['fields']['name']['id'] = 'name'; $display_options['fields']['name']['table'] = 'taxonomy_term_field_data'; $display_options['fields']['name']['field'] = 'name'; + $display_options['fields']['name']['entity_type'] = 'taxonomy_term'; + $display_options['fields']['name']['entity_field'] = 'name'; $display_options['fields']['name']['label'] = ''; $display_options['fields']['name']['alter']['alter_text'] = 0; $display_options['fields']['name']['alter']['make_link'] = 0; diff --git a/core/modules/user/src/Plugin/views/wizard/Users.php b/core/modules/user/src/Plugin/views/wizard/Users.php index 92b29a9..9b3609e 100644 --- a/core/modules/user/src/Plugin/views/wizard/Users.php +++ b/core/modules/user/src/Plugin/views/wizard/Users.php @@ -73,6 +73,8 @@ protected function defaultDisplayOptions() { $display_options['fields']['name']['id'] = 'name'; $display_options['fields']['name']['table'] = 'users_field_data'; $display_options['fields']['name']['field'] = 'name'; + $display_options['fields']['name']['entity_type'] = 'user'; + $display_options['fields']['name']['entity_field'] = 'name'; $display_options['fields']['name']['label'] = ''; $display_options['fields']['name']['alter']['alter_text'] = 0; $display_options['fields']['name']['alter']['make_link'] = 0; diff --git a/core/modules/views/config/schema/views.data_types.schema.yml b/core/modules/views/config/schema/views.data_types.schema.yml index 0c684ca..3a9ccba 100644 --- a/core/modules/views/config/schema/views.data_types.schema.yml +++ b/core/modules/views/config/schema/views.data_types.schema.yml @@ -319,6 +319,12 @@ views_handler: admin_label: type: label label: 'A string to identify the handler instance in the admin UI.' + entity_type: + type: string + label: 'The entity type' + entity_field: + type: string + label: 'The corresponding entity field' views_argument: type: views_handler diff --git a/core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php b/core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php index f59a958..2117106 100644 --- a/core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php +++ b/core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php @@ -859,10 +859,13 @@ protected function defaultDisplayOptions() { } } } + // @todo refactor the code to use ViewExecutable::addHandler $display_options['fields'][$default_field] = array( 'table' => $this->base_table, 'field' => $default_field, 'id' => $default_field, + 'entity_type' => isset($data[$default_field]['entity type']) ? $data[$default_field]['entity type'] : NULL, + 'entity_field' => isset($data[$default_field]['entity field']) ? $data[$default_field]['entity field'] : NULL, ); // Load the plugin ID and module. diff --git a/core/modules/views/src/ViewExecutable.php b/core/modules/views/src/ViewExecutable.php index e236447..629bd39 100644 --- a/core/modules/views/src/ViewExecutable.php +++ b/core/modules/views/src/ViewExecutable.php @@ -1919,6 +1919,9 @@ public function addHandler($display_id, $type, $table, $field, $options = array( if (isset($data['table']['entity type'])) { $fields[$id]['entity_type'] = $data['table']['entity type']; } + if (isset($data[$field]['entity field'])) { + $fields[$id]['entity_field'] = $data['table']['entity type']; + } // Load the plugin ID if available. if (isset($data[$field][$handler_type]['id'])) {