/** * Copy entry into new entry * * @action addFromEntry * @param string $sourceEntryId Document entry id to copy from * @param KalturaDocumentEntry $documentEntry Document entry metadata * @param int $sourceFlavorParamsId The flavor to be used as the new entry source, source flavor will be used if not specified * @return KalturaDocumentEntry The new document entry * @throws KalturaErrors::ENTRY_ID_NOT_FOUND * @throws KalturaErrors::ORIGINAL_FLAVOR_ASSET_IS_MISSING * @throws KalturaErrors::FLAVOR_PARAMS_NOT_FOUND * @throws KalturaErrors::ORIGINAL_FLAVOR_ASSET_NOT_CREATED */ function addFromEntryAction($sourceEntryId, KalturaDocumentEntry $documentEntry = null, $sourceFlavorParamsId = null) { $srcEntry = entryPeer::retrieveByPK($sourceEntryId); if (!$srcEntry || $srcEntry->getType() != entryType::DOCUMENT) { throw new KalturaAPIException(KalturaErrors::ENTRY_ID_NOT_FOUND, $sourceEntryId); } $srcFlavorAsset = null; assetPeer::resetInstanceCriteriaFilter(); if (is_null($sourceFlavorParamsId)) { $srcFlavorAsset = assetPeer::retreiveOriginalByEntryId($sourceEntryId); if (!$srcFlavorAsset) { throw new KalturaAPIException(KalturaErrors::ORIGINAL_FLAVOR_ASSET_IS_MISSING); } } else { $srcFlavorAssets = assetPeer::retreiveReadyByEntryIdAndFlavorParams($sourceEntryId, array($sourceFlavorParamsId)); if (count($srcFlavorAssets)) { $srcFlavorAsset = reset($srcFlavorAssets); } else { throw new KalturaAPIException(KalturaErrors::FLAVOR_PARAMS_NOT_FOUND); } } if ($documentEntry === null) { $documentEntry = new KalturaDocumentEntry(); } $documentEntry->documentType = $srcEntry->getMediaType(); return $this->addEntryFromFlavorAsset($documentEntry, $srcEntry, $srcFlavorAsset); }