Пример #1
0
 /**
  * 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);
 }