예제 #1
0
 /**
  * Creates a draft from a published or archived version.
  *
  * If no version is given, the current published version is used.
  * 4.x: The draft is created with the initialLanguage code of the source version or if not present with the main language.
  * It can be changed on updating the version.
  *
  * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException if the user is not allowed to create the draft
  *
  * @param \eZ\Publish\API\Repository\Values\Content\ContentInfo $contentInfo
  * @param \eZ\Publish\API\Repository\Values\Content\VersionInfo $versionInfo
  * @param \eZ\Publish\API\Repository\Values\User\User $user if set given user is used to create the draft - otherwise the current user is used
  *
  * @return \eZ\Publish\API\Repository\Values\Content\Content - the newly created content draft
  */
 public function createContentDraft( ContentInfo $contentInfo, VersionInfo $versionInfo = null, User $user = null )
 {
     $returnValue = $this->service->createContentDraft( $contentInfo, $versionInfo, $user );
     $this->signalDispatcher->emit(
         new CreateContentDraftSignal(
             array(
                 'contentId' => $contentInfo->id,
                 'versionNo' => ( $versionInfo !== null ? $versionInfo->versionNo : null ),
                 'userId' => ( $user !== null ? $user->id : null ),
             )
         )
     );
     return $returnValue;
 }