diff -u b/paragraphs.module b/paragraphs.module --- b/paragraphs.module +++ b/paragraphs.module @@ -675,35 +675,38 @@ // In case the entity has been changed / created, save it and set the id. // If the host entity creates a new revision, save new item-revisions as // well. + $entity = FALSE; if (isset($item['entity'])) { + $entity = paragraphs_field_get_entity($item); + } elseif (isset($item['revision_id'])) { + $entity = paragraphs_item_revision_load($item['revision_id']); + } - if ($entity = paragraphs_field_get_entity($item)) { - - $entity->setHostEntity($host_entity_type, $host_entity, $langcode, FALSE); + if ($entity) { + $entity->setHostEntity($host_entity_type, $host_entity, $langcode, FALSE); - // If the host entity supports revisions and is saved as new revision, do the same for the item. - if (!empty($host_entity->revision)) { - $entity->revision = TRUE; - $is_default = entity_revision_is_default($host_entity_type, $host_entity); - // If an entity type does not support saving non-default entities, - // assume it will be saved as default. - if (!isset($is_default) || $is_default) { - $entity->default_revision = TRUE; - $entity->archived = FALSE; - } + // If the host entity supports revisions and is saved as new revision, do the same for the item. + if (!empty($host_entity->revision)) { + $entity->revision = TRUE; + $is_default = entity_revision_is_default($host_entity_type, $host_entity); + // If an entity type does not support saving non-default entities, + // assume it will be saved as default. + if (!isset($is_default) || $is_default) { + $entity->default_revision = TRUE; + $entity->archived = FALSE; } + } - if (isset($entity->removed) && $entity->removed) { - unset($items[$key]); - } - else { - $entity->save(TRUE); + if (isset($entity->removed) && $entity->removed) { + unset($items[$key]); + } + else { + $entity->save(TRUE); - $item = array( - 'value' => $entity->item_id, - 'revision_id' => $entity->revision_id, - ); - } + $item = array( + 'value' => $entity->item_id, + 'revision_id' => $entity->revision_id, + ); } } }