You are here

function _cms_content_sync_views_set_dynamic_entity_reference_field in CMS Content Sync 2.0.x

Same name and namespace in other branches
  1. 8 modules/cms_content_sync_views/cms_content_sync_views.module \_cms_content_sync_views_set_dynamic_entity_reference_field()
  2. 2.1.x modules/cms_content_sync_views/cms_content_sync_views.module \_cms_content_sync_views_set_dynamic_entity_reference_field()

Parameters

\Drupal\Core\Entity\EntityInterface $entity:

null|EntityInterface $reference:

Throws

\Drupal\Core\Entity\EntityStorageException

3 calls to _cms_content_sync_views_set_dynamic_entity_reference_field()
cms_content_sync_views_entity_create in modules/cms_content_sync_views/cms_content_sync_views.module
Implements hook_entity_create().
cms_content_sync_views_entity_insert in modules/cms_content_sync_views/cms_content_sync_views.module
Implements hook_entity_insert().
cms_content_sync_views_entity_update in modules/cms_content_sync_views/cms_content_sync_views.module
Implements hook_entity_update().

File

modules/cms_content_sync_views/cms_content_sync_views.module, line 37
Module file for cms_content_sync_views.

Code

function _cms_content_sync_views_set_dynamic_entity_reference_field(EntityInterface $entity, $reference = NULL) {

  // Set the referenced entity for the entity status entity.
  if (is_null($entity
    ->get('entity')->target_id)) {
    $entity_type = $entity
      ->get('entity_type')->value;
    $uuid = $entity
      ->get('entity_uuid')->value;

    /**
     * @var \Drupal\Core\Entity\EntityInterface $synced_entity
     */
    if (empty($reference)) {
      $synced_entity = Drupal::service('entity.repository')
        ->loadEntityByUuid($entity_type, $uuid);
    }
    else {
      $synced_entity = $reference;
    }
    if ($synced_entity instanceof ConfigEntityInterface) {
      return;
    }
    if (!is_null($synced_entity)) {
      $entity
        ->set('entity', $synced_entity);

      // Save new reference.
      $entity
        ->save();
    }
  }
}