class EntityRevision in Workbench Moderation to Content Moderation 8.2
Fixes bugs in the core EntityRevision destination plugin:
1) getEntity() drops the return value of updateEntity(). 2) save() and getIds() do not respect translations. 3) getEntity() decides whether the entity is the default revision.
This plugin can be iced once these issues are fixed in core.
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\migrate\Plugin\migrate\destination\DestinationBase implements MigrateDestinationInterface, RequirementsInterface
- class \Drupal\migrate\Plugin\migrate\destination\Entity implements DependentPluginInterface, ContainerFactoryPluginInterface uses DependencyTrait, EntityFieldDefinitionTrait
- class \Drupal\migrate\Plugin\migrate\destination\EntityContentBase implements HighestIdInterface, MigrateValidatableEntityInterface uses DeprecatedServicePropertyTrait
- class \Drupal\migrate\Plugin\migrate\destination\EntityRevision
- class \Drupal\wbm2cm\Plugin\migrate\destination\EntityRevision
- class \Drupal\migrate\Plugin\migrate\destination\EntityRevision
- class \Drupal\migrate\Plugin\migrate\destination\EntityContentBase implements HighestIdInterface, MigrateValidatableEntityInterface uses DeprecatedServicePropertyTrait
- class \Drupal\migrate\Plugin\migrate\destination\Entity implements DependentPluginInterface, ContainerFactoryPluginInterface uses DependencyTrait, EntityFieldDefinitionTrait
- class \Drupal\migrate\Plugin\migrate\destination\DestinationBase implements MigrateDestinationInterface, RequirementsInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of EntityRevision
1 file declares its use of EntityRevision
File
- src/
Plugin/ migrate/ destination/ EntityRevision.php, line 18
Namespace
Drupal\wbm2cm\Plugin\migrate\destinationView source
class EntityRevision extends BaseEntityRevision {
/**
* {@inheritdoc}
*/
protected function getEntity(Row $row, array $old_destination_id_values) {
$revision_id = $old_destination_id_values ? reset($old_destination_id_values) : $row
->getDestinationProperty($this
->getKey('revision'));
if (!empty($revision_id) && ($entity = $this->storage
->loadRevision($revision_id))) {
$entity
->setNewRevision(FALSE);
}
else {
$entity_id = $row
->getDestinationProperty($this
->getKey('id'));
$entity = $this->storage
->load($entity_id);
// If we fail to load the original entity something is wrong and we need
// to return immediately.
if (!$entity) {
return FALSE;
}
$entity
->enforceIsNew(FALSE);
$entity
->setNewRevision(TRUE);
}
return $this
->updateEntity($entity, $row) ?: $entity;
}
/**
* {@inheritdoc}
*/
public function getIds() {
$ids = parent::getIds();
// A revision could contain multiple translations, so this allows revisions
// to be identified by language, not just by revision ID.
if ($this
->isTranslationDestination()) {
if ($key = $this
->getKey('langcode')) {
$ids[$key] = $this
->getDefinitionFromEntity($key);
}
else {
throw new MigrateException('This entity type does not support translation.');
}
}
return $ids;
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
DependencyTrait:: |
protected | property | The object's dependencies. | |
DependencyTrait:: |
protected | function | Adds multiple dependencies. | |
DependencyTrait:: |
protected | function | Adds a dependency. | |
DeprecatedServicePropertyTrait:: |
public | function | Allows to access deprecated/removed properties. | |
DestinationBase:: |
protected | property | The migration. | |
DestinationBase:: |
protected | property | The rollback action to be saved for the last imported item. | |
DestinationBase:: |
protected | property | Indicates whether the destination can be rolled back. | |
DestinationBase:: |
public | function |
Checks if requirements for this plugin are OK. Overrides RequirementsInterface:: |
|
DestinationBase:: |
public | function |
Gets the destination module handling the destination data. Overrides MigrateDestinationInterface:: |
1 |
DestinationBase:: |
public | function |
The rollback action for the last imported item. Overrides MigrateDestinationInterface:: |
|
DestinationBase:: |
protected | function | For a destination item being updated, set the appropriate rollback action. | |
DestinationBase:: |
public | function |
Whether the destination can be rolled back or not. Overrides MigrateDestinationInterface:: |
|
Entity:: |
protected | property | The list of the bundles of this entity type. | |
Entity:: |
protected | property | The entity storage. | |
Entity:: |
public | function |
Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: |
|
Entity:: |
public | function |
Returns an array of destination fields. Overrides MigrateDestinationInterface:: |
|
Entity:: |
public | function | Gets the bundle for the row taking into account the default. | |
Entity:: |
protected | function | Gets the entity ID of the row. | 2 |
Entity:: |
protected | function | Returns a specific entity key. | |
EntityContentBase:: |
protected | property | ||
EntityContentBase:: |
protected | property | Entity field manager. | |
EntityContentBase:: |
protected | property | Field type plugin manager. | |
EntityContentBase:: |
public static | function |
Creates an instance of the plugin. Overrides Entity:: |
2 |
EntityContentBase:: |
public | function |
Overrides MigrateDestinationInterface:: |
3 |
EntityContentBase:: |
public | function |
Returns a state of whether an entity needs to be validated before saving. Overrides MigrateValidatableEntityInterface:: |
|
EntityContentBase:: |
public | function | ||
EntityContentBase:: |
protected | function | Populates as much of the stub row as possible. | 3 |
EntityContentBase:: |
public | function |
Delete the specified destination object from the target Drupal. Overrides Entity:: |
1 |
EntityContentBase:: |
protected | function | Updates an entity with the new values from row. | 3 |
EntityContentBase:: |
public | function |
Validates the entity. Overrides MigrateValidatableEntityInterface:: |
|
EntityFieldDefinitionTrait:: |
protected | function | Gets the field definition from a specific entity base field. | |
EntityFieldDefinitionTrait:: |
protected static | function | Finds the entity type from configuration or plugin ID. | 5 |
EntityRevision:: |
protected | function |
Gets the entity. Overrides EntityRevision:: |
|
EntityRevision:: |
public | function |
Returns the highest ID tracked by the implementing plugin. Overrides EntityContentBase:: |
|
EntityRevision:: |
public | function |
Gets the destination IDs. Overrides EntityRevision:: |
|
EntityRevision:: |
protected | function |
Saves the entity. Overrides EntityContentBase:: |
1 |
EntityRevision:: |
public | function |
Constructs a content entity. Overrides EntityContentBase:: |
|
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |