namespace Drupal\node\Entity;
-use Drupal\Core\Entity\ContentEntityBase;
-use Drupal\Core\Entity\EntityChangedTrait;
-use Drupal\Core\Entity\EntityPublishedTrait;
+use Drupal\Core\Entity\EditorialContentEntityBase;
use Drupal\Core\Entity\EntityStorageInterface;
use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\Core\Field\BaseFieldDefinition;
* "published" = "status",
* "uid" = "uid",
* },
+ * revision_metadata_keys = {
+ * "revision_user" = "revision_uid",
+ * "revision_created" = "revision_timestamp",
+ * "revision_log_message" = "revision_log"
+ * },
* bundle_entity_type = "node_type",
* field_ui_base_route = "entity.node_type.edit_form",
* common_reference_target = TRUE,
* "edit-form" = "/node/{node}/edit",
* "version-history" = "/node/{node}/revisions",
* "revision" = "/node/{node}/revisions/{node_revision}/view",
+ * "create" = "/node",
* }
* )
*/
-class Node extends ContentEntityBase implements NodeInterface {
-
- use EntityChangedTrait;
- use EntityPublishedTrait;
+class Node extends EditorialContentEntityBase implements NodeInterface {
/**
* Whether the node is being previewed or not.
return $this;
}
- /**
- * {@inheritdoc}
- */
- public function getRevisionCreationTime() {
- return $this->get('revision_timestamp')->value;
- }
-
- /**
- * {@inheritdoc}
- */
- public function setRevisionCreationTime($timestamp) {
- $this->set('revision_timestamp', $timestamp);
- return $this;
- }
-
/**
* {@inheritdoc}
*/
return $this->getRevisionUser();
}
- /**
- * {@inheritdoc}
- */
- public function getRevisionUser() {
- return $this->get('revision_uid')->entity;
- }
-
/**
* {@inheritdoc}
*/
return $this;
}
- /**
- * {@inheritdoc}
- */
- public function setRevisionUser(UserInterface $user) {
- $this->set('revision_uid', $user);
- return $this;
- }
-
- /**
- * {@inheritdoc}
- */
- public function getRevisionUserId() {
- return $this->get('revision_uid')->entity->id();
- }
-
- /**
- * {@inheritdoc}
- */
- public function setRevisionUserId($user_id) {
- $this->set('revision_uid', $user_id);
- return $this;
- }
-
- /**
- * {@inheritdoc}
- */
- public function getRevisionLogMessage() {
- return $this->get('revision_log')->value;
- }
-
- /**
- * {@inheritdoc}
- */
- public function setRevisionLogMessage($revision_log_message) {
- $this->set('revision_log', $revision_log_message);
- return $this;
- }
-
/**
* {@inheritdoc}
*/
public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
$fields = parent::baseFieldDefinitions($entity_type);
- $fields += static::publishedBaseFieldDefinitions($entity_type);
$fields['title'] = BaseFieldDefinition::create('string')
->setLabel(t('Title'))
])
->setDisplayConfigurable('form', TRUE);
+ $fields['status']
+ ->setDisplayOptions('form', [
+ 'type' => 'boolean_checkbox',
+ 'settings' => [
+ 'display_label' => TRUE,
+ ],
+ 'weight' => 120,
+ ])
+ ->setDisplayConfigurable('form', TRUE);
+
$fields['created'] = BaseFieldDefinition::create('created')
->setLabel(t('Authored on'))
->setDescription(t('The time that the node was created.'))
])
->setDisplayConfigurable('form', TRUE);
- $fields['revision_timestamp'] = BaseFieldDefinition::create('created')
- ->setLabel(t('Revision timestamp'))
- ->setDescription(t('The time that the current revision was created.'))
- ->setQueryable(FALSE)
- ->setRevisionable(TRUE);
-
- $fields['revision_uid'] = BaseFieldDefinition::create('entity_reference')
- ->setLabel(t('Revision user ID'))
- ->setDescription(t('The user ID of the author of the current revision.'))
- ->setSetting('target_type', 'user')
- ->setQueryable(FALSE)
- ->setRevisionable(TRUE);
-
- $fields['revision_log'] = BaseFieldDefinition::create('string_long')
- ->setLabel(t('Revision log message'))
- ->setDescription(t('Briefly describe the changes you have made.'))
- ->setRevisionable(TRUE)
- ->setDefaultValue('')
- ->setDisplayOptions('form', [
- 'type' => 'string_textarea',
- 'weight' => 25,
- 'settings' => [
- 'rows' => 4,
- ],
- ]);
-
- $fields['revision_translation_affected'] = BaseFieldDefinition::create('boolean')
- ->setLabel(t('Revision translation affected'))
- ->setDescription(t('Indicates if the last edit of a translation belongs to current revision.'))
- ->setReadOnly(TRUE)
- ->setRevisionable(TRUE)
- ->setTranslatable(TRUE);
-
return $fields;
}