/** * Saves content draft corresponding to $data. * Depending on the nature of $data (create or update data), the draft will either be created or simply updated. * * @param ContentStruct|\EzSystems\RepositoryForms\Data\Content\ContentCreateData|\EzSystems\RepositoryForms\Data\Content\ContentUpdateData $data * @param $languageCode * @return \eZ\Publish\API\Repository\Values\Content\Content */ private function saveDraft(ContentStruct $data, $languageCode) { foreach ($data->fieldsData as $fieldDefIdentifier => $fieldData) { $data->setField($fieldDefIdentifier, $fieldData->value, $languageCode); } if ($data->isNew()) { $contentDraft = $this->contentService->createContent($data, $data->getLocationStructs()); } else { $contentDraft = $this->contentService->updateContent($data->contentDraft->getVersionInfo(), $data); } return $contentDraft; }
/** * Updates the fields of a draft. * * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException if the user is not allowed to update this version * @throws \eZ\Publish\API\Repository\Exceptions\BadStateException if the version is not a draft * @throws \eZ\Publish\API\Repository\Exceptions\ContentFieldValidationException if a field in the $contentUpdateStruct is not valid * @throws \eZ\Publish\API\Repository\Exceptions\ContentValidationException if a required field is set to an empty value * @throws \eZ\Publish\API\Repository\Exceptions\InvalidArgumentException if a field value is not accepted by the field type * * @param \eZ\Publish\API\Repository\Values\Content\VersionInfo $versionInfo * @param \eZ\Publish\API\Repository\Values\Content\ContentUpdateStruct $contentUpdateStruct * * @return \eZ\Publish\API\Repository\Values\Content\Content the content draft with the updated fields */ public function updateContent( VersionInfo $versionInfo, ContentUpdateStruct $contentUpdateStruct ) { $returnValue = $this->service->updateContent( $versionInfo, $contentUpdateStruct ); $this->signalDispatcher->emit( new UpdateContentSignal( array( 'contentId' => $versionInfo->getContentInfo()->id, 'versionNo' => $versionInfo->versionNo, ) ) ); return $returnValue; }