diff --git a/core/modules/views/src/Tests/Handler/FieldKernelTest.php b/core/modules/views/src/Tests/Handler/FieldKernelTest.php index 109314b..18b295a 100644 --- a/core/modules/views/src/Tests/Handler/FieldKernelTest.php +++ b/core/modules/views/src/Tests/Handler/FieldKernelTest.php @@ -200,7 +200,7 @@ public function testArgumentTokens() { // arbitrary code execution. $name_field_0->options['alter']['alter_text'] = TRUE; - $name_field_0->options['alter']['text'] = '{{ arguments.name }} {{ raw_arguments.name }}'; + $name_field_0->options['alter']['text'] = '{{ arguments.null }} {{ raw_arguments.null }}'; $row = $view->result[0]; $output = $renderer->executeInRenderContext(new RenderContext(), function () use ($name_field_0, $row) { diff --git a/core/modules/views/src/Tests/Update/ArgumentPlaceholderUpdatePathTest.php b/core/modules/views/src/Tests/Update/ArgumentPlaceholderUpdatePathTest.php index d123b5d..0221492 100644 --- a/core/modules/views/src/Tests/Update/ArgumentPlaceholderUpdatePathTest.php +++ b/core/modules/views/src/Tests/Update/ArgumentPlaceholderUpdatePathTest.php @@ -39,12 +39,14 @@ public function testArgumentPlaceholderUpdate() { $data = $view->toArray(); $this->assertEqual('{{ arguments.nid }}-test-class-{{ raw_arguments.nid }}', $data['display']['default']['display_options']['style']['options']['col_class_custom']); $this->assertEqual('{{ arguments.nid }}-test-class-{{ raw_arguments.nid }}', $data['display']['default']['display_options']['style']['options']['row_class_custom']); + $this->assertEqual('{{ arguments.nid }}-description-{{ raw_arguments.nid }}', $data['display']['feed_1']['display_options']['style']['options']['description']); $this->assertEqual('{{ arguments.nid }}-custom-text-{{ raw_arguments.nid }}', $data['display']['default']['display_options']['fields']['title']['alter']['text']); $this->assertEqual('test_token_view {{ arguments.nid }} {{ raw_arguments.nid }}', $data['display']['default']['display_options']['title']); $this->assertEqual('{{ arguments.nid }}-custom-{{ raw_arguments.nid }}', $data['display']['default']['display_options']['header']['area_text_custom']['content']); $this->assertEqual('{{ arguments.nid }}-text-{{ raw_arguments.nid }}', $data['display']['default']['display_options']['footer']['area']['content']['value']); $this->assertEqual("Displaying @start - @end of @total\n\n{{ arguments.nid }}-result-{{ raw_arguments.nid }}", $data['display']['default']['display_options']['empty']['result']['content']); $this->assertEqual('{{ arguments.nid }}-title-{{ raw_arguments.nid }}', $data['display']['default']['display_options']['empty']['title']['title']); + $this->assertEqual('{{ arguments.nid }}-entity-{{ raw_arguments.nid }}', $data['display']['default']['display_options']['empty']['entity_node']['target']); $this->assertEqual('{{ arguments.nid }} title {{ raw_arguments.nid }}', $data['display']['default']['display_options']['arguments']['nid']['title']); $this->assertEqual('{{ arguments.nid }} exception-title {{ raw_arguments.nid }}', $data['display']['default']['display_options']['arguments']['nid']['exception']['title']); $this->assertEqual('{{ arguments.nid }}-more-text-{{ raw_arguments.nid }}', $data['display']['default']['display_options']['use_more_text']); diff --git a/core/modules/views/tests/fixtures/update/argument-placeholder.php b/core/modules/views/tests/fixtures/update/argument-placeholder.php index 2a277be..9b7a6d9 100644 --- a/core/modules/views/tests/fixtures/update/argument-placeholder.php +++ b/core/modules/views/tests/fixtures/update/argument-placeholder.php @@ -4,16 +4,8 @@ $connection->insert('config') ->fields(array( - 'collection', - 'name', - 'data', - )) - ->values(array( 'collection' => '', 'name' => 'views.view.test_token_view', 'data' => serialize(\Drupal\Component\Serialization\Yaml::decode(file_get_contents('core/modules/views/tests/modules/views_test_config/test_views/views.view.test_token_view.yml'))), )) - ->fields([ - 'collection' => '', - ]) ->execute(); diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_argument_tokens.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_argument_tokens.yml index 800beaa..7c9f5f3 100644 --- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_argument_tokens.yml +++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_field_argument_tokens.yml @@ -7,7 +7,7 @@ module: views description: '' tag: '' base_table: views_test_data -base_field: nid +base_field: id core: '8' display: default: @@ -48,7 +48,7 @@ display: id: null table: views field: null - plugin_id: ull + plugin_id: null style: type: default row: diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_token_view.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_token_view.yml index aa59852..3a054e3 100644 --- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_token_view.yml +++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_token_view.yml @@ -225,6 +225,16 @@ display: empty: true title: '%1-title-!1' plugin_id: title + entity_node: + id: entity + table: views + field: entity_node + relationship: none + group_type: group + admin_label: '' + empty: true + target: '%1-entity-!1' + plugin_id: entity relationships: { } arguments: nid: @@ -313,3 +323,27 @@ display: - 'user.node_grants:view' - user.permissions cacheable: false + feed_1: + display_plugin: feed + id: feed_1 + display_title: Feed + position: 1 + display_options: + defaults: + style: false + display_extenders: { } + style: + type: rss + options: + description: %1-description-!1 + + path: test-token-view.xml + cache_metadata: + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - url + - url.query_args + - 'user.node_grants:view' + - user.permissions + cacheable: false diff --git a/core/modules/views/views.install b/core/modules/views/views.install index f00ae7a..fd49684 100644 --- a/core/modules/views/views.install +++ b/core/modules/views/views.install @@ -154,12 +154,13 @@ function views_update_8002() { if (is_array($field['alter'][$token_name])) { foreach (array_keys($field['alter'][$token_name]) as $key) { $field['alter'][$token_name][$key] = _views_update_8002_token_update($field['alter'][$token_name][$key], $argument_map_per_display[$display_name]); + $changed = TRUE; } } else { $field['alter'][$token_name] = _views_update_8002_token_update($field['alter'][$token_name], $argument_map_per_display[$display_name]); + $changed = TRUE; } - $changed = TRUE; } } } @@ -175,19 +176,26 @@ function views_update_8002() { switch ($area['plugin_id']) { case 'title': $area['title'] = _views_update_8002_token_update($area['title'], $argument_map_per_display[$display_name]); + $changed = TRUE; break; case 'result': $area['content'] = _views_update_8002_token_update($area['content'], $argument_map_per_display[$display_name]); + $changed = TRUE; break; case 'text': $area['content']['value'] = _views_update_8002_token_update($area['content']['value'], $argument_map_per_display[$display_name]); + $changed = TRUE; break; case 'text_custom': $area['content'] = _views_update_8002_token_update($area['content'], $argument_map_per_display[$display_name]); + $changed = TRUE; + break; + case 'entity': + $area['target'] = _views_update_8002_token_update($area['target'], $argument_map_per_display[$display_name]); + $changed = TRUE; break; } } - $changed = TRUE; } } } @@ -198,9 +206,11 @@ function views_update_8002() { foreach ($display['display_options']['arguments'] as &$argument) { if (isset($argument['exception']['title'])) { $argument['exception']['title'] = _views_update_8002_token_update($argument['exception']['title'], $argument_map_per_display[$display_name]); + $changed = TRUE; } if (isset($argument['title'])) { $argument['title'] = _views_update_8002_token_update($argument['title'], $argument_map_per_display[$display_name]); + $changed = TRUE; } } } @@ -211,12 +221,15 @@ function views_update_8002() { foreach ($displays as $display_name => &$display) { if (!empty($display['display_options']['title'])) { $display['display_options']['title'] = _views_update_8002_token_update($display['display_options']['title'], $argument_map_per_display[$display_name]); + $changed = TRUE; } if (!empty($display['display_options']['use_more_text'])) { $display['display_options']['use_more_text'] = _views_update_8002_token_update($display['display_options']['use_more_text'], $argument_map_per_display[$display_name]); + $changed = TRUE; } if (!empty($display['display_options']['link_url'])) { $display['display_options']['link_url'] = _views_update_8002_token_update($display['display_options']['link_url'], $argument_map_per_display[$display_name]); + $changed = TRUE; } } @@ -226,9 +239,15 @@ function views_update_8002() { if (!empty($display['display_options']['style'])) { if (!empty($display['display_options']['style']['options']['row_class_custom'])) { $display['display_options']['style']['options']['row_class_custom'] = _views_update_8002_token_update($display['display_options']['style']['options']['row_class_custom'], $argument_map_per_display[$display_name]); + $changed = TRUE; } if (!empty($display['display_options']['style']['options']['col_class_custom'])) { $display['display_options']['style']['options']['col_class_custom'] = _views_update_8002_token_update($display['display_options']['style']['options']['col_class_custom'], $argument_map_per_display[$display_name]); + $changed = TRUE; + } + if (!empty($display['display_options']['style']['options']['description'])) { + $display['display_options']['style']['options']['description'] = _views_update_8002_token_update($display['display_options']['style']['options']['description'], $argument_map_per_display[$display_name]); + $changed = TRUE; } } }