Пример #1
0
 protected function initFlavorIds()
 {
     $flavorIds = $this->getRequestParameter("flavorIds", null);
     if (!is_null($flavorIds)) {
         $this->flavorIds = explode(',', $flavorIds);
     }
     $flavorId = $this->getRequestParameter("flavorId", null);
     if (!is_null($flavorId)) {
         $this->flavorIds = array($flavorId);
     }
     if (!is_null($this->flavorIds)) {
         return;
     }
     $flavorParamIds = $this->getRequestParameter("flavorParamIds", null);
     if (!is_null($flavorParamIds)) {
         $this->flavorParamsIds = explode(',', $flavorParamIds);
     }
     $flavorParamId = $this->getRequestParameter("flavorParamId", null);
     if (!is_null($flavorParamId)) {
         $this->flavorParamsIds = array($flavorParamId);
     }
     if (is_null($this->flavorParamsIds)) {
         return;
     }
     $this->flavorParamsIds = $this->secureEntryHelper->filterAllowedFlavorParams($this->flavorParamsIds);
     if (is_null($this->flavorParamsIds)) {
         return;
     }
     $this->flavorIds = assetPeer::retrieveReadyFlavorsIdsByEntryId($this->entryId, $this->flavorParamsIds);
 }
 /**
  * @param EntryDistribution $entryDistribution
  * @param entry $entry
  * @param DistributionProfile $distributionProfile
  * @return boolean true if the list of flavors modified
  */
 public static function assignFlavorAssets(EntryDistribution $entryDistribution, entry $entry, DistributionProfile $distributionProfile)
 {
     $submittingStatuses = array(EntryDistributionStatus::PENDING, EntryDistributionStatus::QUEUED, EntryDistributionStatus::SUBMITTING, EntryDistributionStatus::IMPORT_SUBMITTING, EntryDistributionStatus::ERROR_SUBMITTING);
     // if not in first submmiting status then it's an update and need to check if update is supported.
     if (!in_array($entryDistribution->getStatus(), $submittingStatuses)) {
         $distributionProvider = $distributionProfile->getProvider();
         if (!$distributionProvider) {
             KalturaLog::log("Entry distribution [" . $entryDistribution->getId() . "] provider not found");
             return false;
         }
         if (!$distributionProvider->isUpdateEnabled() || !$distributionProvider->isMediaUpdateEnabled()) {
             KalturaLog::log("Entry distribution [" . $entryDistribution->getId() . "] provider [" . $distributionProvider->getName() . "] does not support update");
             return false;
         }
     }
     $requiredFlavorParamsIds = $distributionProfile->getRequiredFlavorParamsIdsArray();
     $optionalFlavorParamsIds = $distributionProfile->getOptionalFlavorParamsIdsArray();
     $flavorParamsIds = array_merge($requiredFlavorParamsIds, $optionalFlavorParamsIds);
     $flavorAssetIds = array();
     if (!is_array($flavorParamsIds)) {
         return false;
     }
     $originalList = $entryDistribution->getFlavorAssetIds();
     // remove deleted flavor assets
     if ($originalList) {
         $assignedFlavorAssetIds = explode(',', $originalList);
         $assignedFlavorAssets = assetPeer::retrieveByIds($assignedFlavorAssetIds);
         foreach ($assignedFlavorAssets as $assignedFlavorAsset) {
             if (in_array($assignedFlavorAsset->getFlavorParamsId(), $flavorParamsIds)) {
                 $flavorAssetIds[] = $assignedFlavorAsset->getId();
             }
         }
     }
     // adds added flavor assets
     $newFlavorAssetIds = assetPeer::retrieveReadyFlavorsIdsByEntryId($entry->getId(), $flavorParamsIds);
     foreach ($newFlavorAssetIds as $newFlavorAssetId) {
         $flavorAssetIds[] = $newFlavorAssetId;
     }
     $entryDistribution->setFlavorAssetIds($flavorAssetIds);
     return $originalList != $entryDistribution->getFlavorAssetIds();
 }
 protected function initFlavorIds()
 {
     $flavorIdsStr = $this->getRequestParameter("flavorIds", null);
     if ($flavorIdsStr) {
         $this->flavorIds = explode(",", $flavorIdsStr);
     }
     $this->flavorId = $this->getRequestParameter("flavorId", null);
     if (!$this->flavorId) {
         $flavorParamIds = $this->getRequestParameter("flavorParamIds", null);
         if ($flavorParamIds !== null) {
             $this->flavorIds = assetPeer::retrieveReadyFlavorsIdsByEntryId($this->entry->getId(), explode(",", $flavorParamIds));
             if (!$this->flavorIds || count($this->flavorIds) == 0) {
                 KExternalErrors::dieError(KExternalErrors::FLAVOR_NOT_FOUND);
             }
         } else {
             $flavorParamId = $this->getRequestParameter("flavorParamId", null);
             if ($flavorParamId || $flavorParamId === "0") {
                 $flavorAsset = assetPeer::retrieveByEntryIdAndParams($this->entry->getId(), $flavorParamId);
                 if (!$flavorAsset) {
                     KExternalErrors::dieError(KExternalErrors::FLAVOR_NOT_FOUND);
                 }
                 $this->flavorId = $flavorAsset->getId();
             }
         }
     }
 }