trait EntityPublishedTrait in Drupal 8
Same name and namespace in other branches
- 9 core/lib/Drupal/Core/Entity/EntityPublishedTrait.php \Drupal\Core\Entity\EntityPublishedTrait
Provides a trait for published status.
Hierarchy
- trait \Drupal\Core\Entity\EntityPublishedTrait
5 files declare their use of EntityPublishedTrait
- Comment.php in core/
modules/ comment/ src/ Entity/ Comment.php - EntityTestMulRevPub.php in core/
modules/ system/ tests/ modules/ entity_test/ src/ Entity/ EntityTestMulRevPub.php - EntityTestMulWithRevisionLogPub.php in core/
modules/ system/ tests/ modules/ entity_test_revlog/ src/ Entity/ EntityTestMulWithRevisionLogPub.php - EntityTestRevPub.php in core/
modules/ system/ tests/ modules/ entity_test/ src/ Entity/ EntityTestRevPub.php - PathAlias.php in core/
modules/ path_alias/ src/ Entity/ PathAlias.php
File
- core/
lib/ Drupal/ Core/ Entity/ EntityPublishedTrait.php, line 12
Namespace
Drupal\Core\EntityView source
trait EntityPublishedTrait {
/**
* Returns an array of base field definitions for publishing status.
*
* @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
* The entity type to add the publishing status field to.
*
* @return \Drupal\Core\Field\BaseFieldDefinition[]
* An array of base field definitions.
*
* @throws \Drupal\Core\Entity\Exception\UnsupportedEntityTypeDefinitionException
* Thrown when the entity type does not implement EntityPublishedInterface
* or if it does not have a "published" entity key.
*/
public static function publishedBaseFieldDefinitions(EntityTypeInterface $entity_type) {
if (!is_subclass_of($entity_type
->getClass(), EntityPublishedInterface::class)) {
throw new UnsupportedEntityTypeDefinitionException('The entity type ' . $entity_type
->id() . ' does not implement \\Drupal\\Core\\Entity\\EntityPublishedInterface.');
}
if (!$entity_type
->hasKey('published')) {
throw new UnsupportedEntityTypeDefinitionException('The entity type ' . $entity_type
->id() . ' does not have a "published" entity key.');
}
return [
$entity_type
->getKey('published') => BaseFieldDefinition::create('boolean')
->setLabel(new TranslatableMarkup('Published'))
->setRevisionable(TRUE)
->setTranslatable(TRUE)
->setDefaultValue(TRUE),
];
}
/**
* {@inheritdoc}
*/
public function isPublished() {
return (bool) $this
->getEntityKey('published');
}
/**
* {@inheritdoc}
*/
public function setPublished($published = NULL) {
if ($published !== NULL) {
@trigger_error('The $published parameter is deprecated since version 8.3.x and will be removed in 9.0.0.', E_USER_DEPRECATED);
$value = (bool) $published;
}
else {
$value = TRUE;
}
$key = $this
->getEntityType()
->getKey('published');
$this
->set($key, $value);
return $this;
}
/**
* {@inheritdoc}
*/
public function setUnpublished() {
$key = $this
->getEntityType()
->getKey('published');
$this
->set($key, FALSE);
return $this;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
EntityPublishedTrait:: |
public | function | ||
EntityPublishedTrait:: |
public static | function | Returns an array of base field definitions for publishing status. | |
EntityPublishedTrait:: |
public | function | ||
EntityPublishedTrait:: |
public | function |