diff --git a/core/lib/Drupal/Core/Entity/EntityPublishedTrait.php b/core/lib/Drupal/Core/Entity/EntityPublishedTrait.php index 59fddd5..49b5529 100644 --- a/core/lib/Drupal/Core/Entity/EntityPublishedTrait.php +++ b/core/lib/Drupal/Core/Entity/EntityPublishedTrait.php @@ -32,11 +32,26 @@ public static function publishedBaseFieldDefinitions(EntityTypeInterface $entity throw new UnsupportedEntityTypeDefinitionException('The entity type ' . $entity_type->id() . ' does not have a "published" entity key.'); } - return [$entity_type->getKey('published') => BaseFieldDefinition::create('boolean') + $fields = []; + $fields[$entity_type->getKey('published')] = BaseFieldDefinition::create('boolean') ->setLabel(new TranslatableMarkup('Published')) ->setRevisionable(TRUE) ->setTranslatable(TRUE) - ->setDefaultValue(TRUE)]; + ->setDefaultValue(TRUE); + + // Add the status form field. + if ($entity_type->hasKey('status')) { + $fields['status']->setDisplayOptions('form', [ + 'type' => 'boolean_checkbox', + 'settings' => [ + 'display_label' => TRUE, + ], + 'weight' => 120, + ]) + ->setDisplayConfigurable('form', TRUE); + } + + return $fields; } /**