/** * @param entry $entry * @param SimpleXMLElement $mrss * @return SimpleXMLElement */ public function contribute(entry $entry, SimpleXMLElement $mrss) { $entryDistributions = EntryDistributionPeer::retrieveByEntryId($entry->getId()); foreach ($entryDistributions as $entryDistribution) { $this->contributeDistribution($entryDistribution, $mrss); } }
public function contribute(BaseObject $object, SimpleXMLElement $mrss, kMrssParameters $mrssParams = null) { if (!$object instanceof entry) { return; } $entryDistributions = EntryDistributionPeer::retrieveByEntryId($object->getId()); foreach ($entryDistributions as $entryDistribution) { $this->contributeDistribution($entryDistribution, $mrss); } }
public static function getEntrySearchValues(entry $entry) { if (!ContentDistributionPlugin::isAllowedPartner($entry->getPartnerId())) { return null; } $entryDistributions = EntryDistributionPeer::retrieveByEntryId($entry->getId()); if (!count($entryDistributions)) { return self::getSearchStringNoDistributionProfiles(); } $searchValues = array(); foreach ($entryDistributions as $entryDistribution) { $distributionProfileId = $entryDistribution->getDistributionProfileId(); $searchValues[] = self::getSearchStringDistributionProfile($distributionProfileId); $searchValues[] = self::getSearchStringDistributionStatus($entryDistribution->getStatus(), $distributionProfileId); $searchValues[] = self::getSearchStringDistributionFlag($entryDistribution->getDirtyStatus(), $distributionProfileId); $searchValues[] = self::getSearchStringDistributionSunStatus($entryDistribution->getSunStatus(), $distributionProfileId); $validationErrors = $entryDistribution->getValidationErrors(); if (count($validationErrors)) { $searchValues[] = self::getSearchStringDistributionHasValidationError($distributionProfileId); } foreach ($validationErrors as $validationError) { $searchValues[] = self::getSearchStringDistributionValidationError($validationError->getErrorType(), $distributionProfileId); } } return implode(' ', $searchValues); }
/** * @param asset $asset */ public static function onAssetReadyOrDeleted(asset $asset) { if (!ContentDistributionPlugin::isAllowedPartner($asset->getPartnerId())) { KalturaLog::log("Partner [" . $asset->getPartnerId() . "] is not allowed"); return true; } $entry = $asset->getentry(); if (!$entry) { KalturaLog::log("Entry [" . $asset->getEntryId() . "] not found"); return true; } $entryDistributions = EntryDistributionPeer::retrieveByEntryId($asset->getEntryId()); foreach ($entryDistributions as $entryDistribution) { $distributionProfileId = $entryDistribution->getDistributionProfileId(); $distributionProfile = DistributionProfilePeer::retrieveByPK($distributionProfileId); if (!$distributionProfile) { KalturaLog::log("Entry distribution [" . $entryDistribution->getId() . "] profile [{$distributionProfileId}] not found"); continue; } if ($entryDistribution->getStatus() == EntryDistributionStatus::QUEUED || $entryDistribution->getStatus() == EntryDistributionStatus::PENDING) { $listChanged = kContentDistributionManager::assignFlavorAssets($entryDistribution, $entry, $distributionProfile); $listChanged = $listChanged | kContentDistributionManager::assignThumbAssets($entryDistribution, $entry, $distributionProfile); $listChanged = $listChanged | kContentDistributionManager::assignAssets($entryDistribution, $entry, $distributionProfile); if (!$listChanged) { KalturaLog::log("Entry distribution [" . $entryDistribution->getId() . "] asset lists didn't change"); continue; } $validationErrors = $distributionProfile->validateForSubmission($entryDistribution, DistributionAction::SUBMIT); $entryDistribution->setValidationErrorsArray($validationErrors); $entryDistribution->save(); if ($entryDistribution->getStatus() == EntryDistributionStatus::QUEUED) { if ($entryDistribution->getDirtyStatus() != EntryDistributionDirtyStatus::SUBMIT_REQUIRED) { self::submitAddEntryDistribution($entryDistribution, $distributionProfile); } } } // submit if ($entryDistribution->getStatus() == EntryDistributionStatus::READY || $entryDistribution->getStatus() == EntryDistributionStatus::ERROR_UPDATING) { $distributionProvider = $distributionProfile->getProvider(); if (!$distributionProvider) { KalturaLog::log("Entry distribution [" . $entryDistribution->getId() . "] provider not found"); continue; } if (!$distributionProvider->isUpdateEnabled() || !$distributionProvider->isMediaUpdateEnabled()) { KalturaLog::log("Entry distribution [" . $entryDistribution->getId() . "] provider [" . $distributionProvider->getName() . "] does not support update"); continue; } $listChanged = kContentDistributionManager::assignFlavorAssets($entryDistribution, $entry, $distributionProfile); $listChanged = $listChanged | kContentDistributionManager::assignThumbAssets($entryDistribution, $entry, $distributionProfile); $listChanged = $listChanged | kContentDistributionManager::assignAssets($entryDistribution, $entry, $distributionProfile); if (!$listChanged) { KalturaLog::log("Entry distribution [" . $entryDistribution->getId() . "] asset lists didn't change"); continue; } $validationErrors = $distributionProfile->validateForSubmission($entryDistribution, DistributionAction::UPDATE); $entryDistribution->setValidationErrorsArray($validationErrors); $entryDistribution->save(); if (!count($validationErrors) && $distributionProfile->getUpdateEnabled() == DistributionProfileActionStatus::AUTOMATIC) { self::submitUpdateEntryDistribution($entryDistribution, $distributionProfile); } else { KalturaLog::log("Entry distribution [" . $entryDistribution->getId() . "] should not be updated automatically"); $entryDistribution->setDirtyStatus(EntryDistributionDirtyStatus::UPDATE_REQUIRED); $entryDistribution->save(); continue; } } // update } return true; }
/** * @param asset $asset */ public static function onAssetReadyOrDeleted(asset $asset) { if (!ContentDistributionPlugin::isAllowedPartner($asset->getPartnerId())) { return true; } $entry = $asset->getentry(); if (!$entry) { return true; } $entryDistributions = EntryDistributionPeer::retrieveByEntryId($asset->getEntryId()); foreach ($entryDistributions as $entryDistribution) { $distributionProfileId = $entryDistribution->getDistributionProfileId(); $distributionProfile = DistributionProfilePeer::retrieveByPK($distributionProfileId); if (!$distributionProfile) { continue; } $validateStatuses = array(EntryDistributionStatus::QUEUED, EntryDistributionStatus::PENDING, EntryDistributionStatus::READY); if (!in_array($entryDistribution->getStatus(), $validateStatuses)) { continue; } /* * we have special thumbnail definition for 'main menu' & 'thank you' entries * so we need to revalidate avn distribution profile because those thumbnails are not * defined in the distribution porofile so automatic revalidation doesn't work */ if ($distributionProfile instanceof AvnDistributionProfile) { $validationErrors = $distributionProfile->validateForSubmission($entryDistribution, DistributionAction::SUBMIT); $entryDistribution->setValidationErrorsArray($validationErrors); $entryDistribution->save(); } } return true; }