reverted: --- b/src/Element/TokenTreeTable.php +++ a/src/Element/TokenTreeTable.php @@ -55,11 +55,6 @@ public static function preRenderTokenTree($element) { $multiple_token_types = count($element['#token_tree']) > 1; foreach ($element['#token_tree'] as $token_type => $type_info) { - // Do not show nested tokens. - if (!empty($type_info['nested']) && empty($element['#show_nested'])) { - continue; - } - if ($multiple_token_types) { $row = static::formatRow($token_type, $type_info, $element['#columns'], TRUE); $element['#rows'][] = $row; diff -u b/tests/src/Kernel/FieldTest.php b/tests/src/Kernel/FieldTest.php --- b/tests/src/Kernel/FieldTest.php +++ b/tests/src/Kernel/FieldTest.php @@ -144,6 +144,7 @@ // Verify that no third token was generated for the list_string field. $this->assertNoTokens('node', ['node' => $entity], [ 'test_list:2', + 'test_list:2:value', ]); // Test the test_list token metadata. diff -u b/token.tokens.inc b/token.tokens.inc --- b/token.tokens.inc +++ b/token.tokens.inc @@ -1241,7 +1241,6 @@ 'name' => SafeMarkup::checkPlain($label), 'description' => t('@label tokens.', ['@label' => SafeMarkup::checkPlain($label)]), 'needs-data' => $field_token_name, - 'nested' => TRUE, ]; // Field list token type. if ($cardinality > 1) { @@ -1249,7 +1248,6 @@ 'name' => t('List of @type values', array('@type' => SafeMarkup::checkPlain($label))), 'description' => t('Tokens for lists of @type values.', array('@type' => SafeMarkup::checkPlain($label))), 'needs-data' => "list<$field_token_name>", - 'nested' => TRUE, ); } @@ -1394,7 +1392,7 @@ // tokens. else if ($field_tokens = \Drupal::token()->findWithPrefix($tokens, $field_name)) { $property_token_data = [ - 'token_type' => 'field_property', + 'field_property' => TRUE, $data['entity_type'] . '-' . $field_name => $data['entity']->$field_name, 'field_name' => $data['entity_type'] . '-' . $field_name, ]; @@ -1405,7 +1403,7 @@ // Remove the cloned object from memory. unset($entity); } - elseif (!empty($data['token_type']) && $data['token_type'] == 'field_property') { + elseif (!empty($data['field_property'])) { foreach ($tokens as $name => $original) { // Handle [entity:field_name:0:value] tokens. if (strpos($name, ':') !== FALSE) { @@ -1416,19 +1414,8 @@ else { $delta = 0; } - if ($field_delta = $data[$data['field_name']][$delta]) { - $field_delta_value = $field_delta->getValue(); - if (isset($field_delta_value[$name])) { - $replacements[$original] = $field_delta_value[$name]; - } - // This is not a field property token. - else { - continue; - } - } - // If no such delta exists, let's not replace the token. - else { - continue; + if (isset($data[$data['field_name']][$delta]) && isset($data[$data['field_name']][$delta]->$name)) { + $replacements[$original] = $data[$data['field_name']][$delta]->$name; } } }