X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fentity_reference_revisions%2Fsrc%2FEntityReferenceRevisionsFieldItemList.php;fp=web%2Fmodules%2Fcontrib%2Fentity_reference_revisions%2Fsrc%2FEntityReferenceRevisionsFieldItemList.php;h=0000000000000000000000000000000000000000;hp=ba907277add9b397cae852212a1535035c1508e1;hb=059867c3f96750652c80f39e44c442a58c2549ee;hpb=f8fc16ae6b862bef59baaad5d051dd37b7ff11b2 diff --git a/web/modules/contrib/entity_reference_revisions/src/EntityReferenceRevisionsFieldItemList.php b/web/modules/contrib/entity_reference_revisions/src/EntityReferenceRevisionsFieldItemList.php deleted file mode 100644 index ba907277a..000000000 --- a/web/modules/contrib/entity_reference_revisions/src/EntityReferenceRevisionsFieldItemList.php +++ /dev/null @@ -1,125 +0,0 @@ -list)) { - return array(); - } - - // Collect the IDs of existing entities to load, and directly grab the - // "autocreate" entities that are already populated in $item->entity. - $target_entities = $ids = array(); - foreach ($this->list as $delta => $item) { - if ($item->hasNewEntity()) { - $target_entities[$delta] = $item->entity; - } - elseif ($item->target_revision_id !== NULL) { - $ids[$delta] = $item->target_revision_id; - } - } - - // Load and add the existing entities. - if ($ids) { - $target_type = $this->getFieldDefinition()->getSetting('target_type'); - foreach ($ids as $delta => $target_id) { - $entity = \Drupal::entityTypeManager()->getStorage($target_type)->loadRevision($target_id); - if ($entity) { - $target_entities[$delta] = $entity; - } - } - // Ensure the returned array is ordered by deltas. - ksort($target_entities); - } - - return $target_entities; - } - - /** - * {@inheritdoc} - */ - public static function processDefaultValue($default_value, FieldableEntityInterface $entity, FieldDefinitionInterface $definition) { - $default_value = parent::processDefaultValue($default_value, $entity, $definition); - - if ($default_value) { - // Convert UUIDs to numeric IDs. - $uuids = array(); - foreach ($default_value as $delta => $properties) { - if (isset($properties['target_uuid'])) { - $uuids[$delta] = $properties['target_uuid']; - } - } - if ($uuids) { - $target_type = $definition->getSetting('target_type'); - $entity_ids = \Drupal::entityQuery($target_type) - ->condition('uuid', $uuids, 'IN') - ->execute(); - $entities = \Drupal::entityTypeManager() - ->getStorage($target_type) - ->loadMultiple($entity_ids); - - $entity_uuids = array(); - foreach ($entities as $id => $entity) { - $entity_uuids[$entity->uuid()] = $id; - } - foreach ($uuids as $delta => $uuid) { - if (isset($entity_uuids[$uuid])) { - $default_value[$delta]['target_id'] = $entity_uuids[$uuid]; - unset($default_value[$delta]['target_uuid']); - } - else { - unset($default_value[$delta]); - } - } - } - - // Ensure we return consecutive deltas, in case we removed unknown UUIDs. - $default_value = array_values($default_value); - } - - return $default_value; - } - - /** - * {@inheritdoc} - */ - public function defaultValuesFormSubmit(array $element, array &$form, FormStateInterface $form_state) { - $default_value = parent::defaultValuesFormSubmit($element, $form, $form_state); - - // Convert numeric IDs to UUIDs to ensure config deployability. - $ids = array(); - foreach ($default_value as $delta => $properties) { - $ids[] = $properties['target_revision_id']; - } - - $entities = array(); - foreach($ids as $id) { - $entities[$id] = \Drupal::entityTypeManager() - ->getStorage($this->getSetting('target_type')) - ->loadRevision($id); - } - - foreach ($default_value as $delta => $properties) { - $default_value[$delta] = array( - 'target_uuid' => $entities[$properties['target_revision_id']]->uuid(), - 'target_revision_id' => $properties['target_revision_id'], - ); - } - return $default_value; - } - -}