diff --git a/core/includes/theme.inc b/core/includes/theme.inc index 7236963..b6ce5f0 100644 --- a/core/includes/theme.inc +++ b/core/includes/theme.inc @@ -1576,9 +1576,7 @@ function template_preprocess_field_multiple_value_form(&$variables) { array( 'data' => array( '#prefix' => '', - 'title' => array( - '#markup' => t($element['#title']), - ), + '#markup' => $element['#title'], '#suffix' => '', ), 'colspan' => 2, diff --git a/core/modules/system/src/Tests/Entity/EntityBaseFieldTest.php b/core/modules/system/src/Tests/Entity/EntityBaseFieldTest.php new file mode 100644 index 0000000..a13038f --- /dev/null +++ b/core/modules/system/src/Tests/Entity/EntityBaseFieldTest.php @@ -0,0 +1,45 @@ +drupalCreateUser(['administer entity_test content']); + $this->drupalLogin($user); + + $entity = EntityTestBaseFieldDisplay::create(['name' => $this->randomString()]); + $entity->save(); + + $this->drupalGet('entity_test_base_field_display/manage/' . $entity->id()); + $this->assertResponse(200); + $this->assertRaw($entity->label()); + $this->assertText('A field with multiple values'); + // Test if labels were XSS filtered. + $this->assertEscaped(""); + } + +} diff --git a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestBaseFieldDisplay.php b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestBaseFieldDisplay.php index 210eb53..2a5ca41 100644 --- a/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestBaseFieldDisplay.php +++ b/core/modules/system/tests/modules/entity_test/src/Entity/EntityTestBaseFieldDisplay.php @@ -9,6 +9,7 @@ use Drupal\Core\Entity\EntityTypeInterface; use Drupal\Core\Field\BaseFieldDefinition; +use Drupal\entity_test\FieldStorageDefinition; /** * Defines a test entity class for base fields display. @@ -23,9 +24,10 @@ * }, * "translation" = "Drupal\content_translation\ContentTranslationHandler" * }, - * base_table = "entity_test", + * base_table = "entity_test_base_field_display", * entity_keys = { * "id" = "id", + * "label" = "name", * "uuid" = "uuid", * "bundle" = "type" * }, @@ -70,6 +72,31 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) { 'weight' => 11, )); + $fields['test_display_multiple'] = BaseFieldDefinition::create('text') + ->setLabel(t('A field with multiple values')) + ->setCardinality(FieldStorageDefinition::CARDINALITY_UNLIMITED) + ->setDisplayOptions('view', array( + 'type' => 'text_default', + 'weight' => 12, + )) + ->setDisplayOptions('form', array( + 'type' => 'text_textfield', + 'weight' => 12, + )); + + // A multi-value base field with a dangerous label. + $fields['test_display_another_multiple'] = BaseFieldDefinition::create('text') + ->setLabel("") + ->setCardinality(FieldStorageDefinition::CARDINALITY_UNLIMITED) + ->setDisplayOptions('view', array( + 'type' => 'text_default', + 'weight' => 12, + )) + ->setDisplayOptions('form', array( + 'type' => 'text_textfield', + 'weight' => 12, + )); + return $fields; }