public function validateForSubmission(EntryDistribution $entryDistribution, $action)
 {
     $validationErrors = parent::validateForSubmission($entryDistribution, $action);
     //validation of flavor format
     $flavorAsset = null;
     $flavorAssets = assetPeer::retrieveByIds(explode(',', $entryDistribution->getFlavorAssetIds()));
     // if we have specific flavor assets for this distribution, grab the first one
     if (count($flavorAssets)) {
         $flavorAsset = reset($flavorAssets);
         $fileExt = $flavorAsset->getFileExt();
         $allowedExts = explode(',', self::FLAVOR_VALID_FORMATS);
         if (!in_array($fileExt, $allowedExts)) {
             KalturaLog::debug('flavor asset id [' . $flavorAsset->getId() . '] does not have a valid extension [' . $fileExt . ']');
             $errorMsg = 'Flavor format must be one of [' . self::FLAVOR_VALID_FORMATS . ']';
             $validationError = $this->createValidationError($action, DistributionErrorType::INVALID_DATA);
             $validationError->setValidationErrorType(DistributionValidationErrorType::CUSTOM_ERROR);
             $validationError->setValidationErrorParam($errorMsg);
             $validationError->setDescription($errorMsg);
             $validationErrors[] = $validationError;
         }
     }
     $inListOrNullFields = array(IdeticDistributionField::GENRE => explode(',', self::GENRE_VALID_VALUES));
     $allFieldValues = $this->getAllFieldValues($entryDistribution);
     if (!$allFieldValues || !is_array($allFieldValues)) {
         KalturaLog::err('Error getting field values from entry distribution id [' . $entryDistribution->getId() . '] profile id [' . $this->getId() . ']');
         return $validationErrors;
     }
     $validationErrors = array_merge($validationErrors, $this->validateInListOrNull($inListOrNullFields, $allFieldValues, $action));
     //validating Slot is a whole number
     $validationErrors = array_merge($validationErrors, $this->validateIsWholeNumber(IdeticDistributionField::SLOT, $allFieldValues, $action));
     return $validationErrors;
 }
 public function validateForSubmission(EntryDistribution $entryDistribution, $action)
 {
     $validationErrors = parent::validateForSubmission($entryDistribution, $action);
     $maxLengthFields = array(YouTubeDistributionField::MEDIA_DESCRIPTION => self::MEDIA_DESCRIPTION_MAXIMUM_LENGTH, YouTubeDistributionField::MEDIA_TITLE => self::MEDIA_TITLE_MAXIMUM_LENGTH, YouTubeDistributionField::WEB_METADATA_CUSTOM_ID => self::METADATA_CUSTOM_ID_MAXIMUM_LENGTH, YouTubeDistributionField::MOVIE_METADATA_CUSTOM_ID => self::METADATA_CUSTOM_ID_MAXIMUM_LENGTH, YouTubeDistributionField::TV_METADATA_CUSTOM_ID => self::METADATA_CUSTOM_ID_MAXIMUM_LENGTH, YouTubeDistributionField::TV_METADATA_EPISODE => self::TV_METADATA_EPISODE_MAXIMUM_LENGTH, YouTubeDistributionField::TV_METADATA_EPISODE_TITLE => self::TV_METADATA_EPISODE_TITLE_MAXIMUM_LENGTH, YouTubeDistributionField::TV_METADATA_SEASON => self::TV_METADATA_SEASON_MAXIMUM_LENGTH, YouTubeDistributionField::TV_METADATA_SHOW_TITLE => self::TV_METADATA_SHOW_TITLE_MAXIMUM_LENGTH, YouTubeDistributionField::TV_METADATA_TMS_ID => self::TV_METADATA_TMS_ID_MAXIMUM_LENGTH, YouTubeDistributionField::MOVIE_METADATA_TITLE => self::MOVIE_METADATA_TITLE_MAXIMUM_LENGTH, YouTubeDistributionField::MOVIE_METADATA_TMS_ID => self::MOVIE_METADATA_TMS_ID_MAXIMUM_LENGTH);
     $inListOrNullFields = array(YouTubeDistributionField::MEDIA_RATING => explode(',', self::MEDIA_RATING_VALID_VALUES), YouTubeDistributionField::ALLOW_COMMENTS => explode(',', self::ALLOW_COMMENTS_VALID_VALUES), YouTubeDistributionField::ALLOW_EMBEDDING => explode(',', self::ALLOW_EMBEDDING_VALID_VALUES), YouTubeDistributionField::ALLOW_RATINGS => explode(',', self::ALLOW_RATINGS_VALID_VALUES), YouTubeDistributionField::ALLOW_RESPONSES => explode(',', self::ALLOW_RESPONSES_VALID_VALUES), YouTubeDistributionField::ADVERTISING_INVIDEO => explode(',', self::ADVERTISING_INVIDEO_VALID_VALUES), YouTubeDistributionField::ADVERTISING_ADSENSE_FOR_VIDEO => explode(',', self::ADVERTISING_ADSENSE_FOR_VIDEO_VALUES), YouTubeDistributionField::DISTRIBUTION_RESTRICTION_DISTRIBUTION_RULE => explode(',', self::DISTRIBUTION_RESTRICTION_DISTRIBUTION_RULE_VALUES), YouTubeDistributionField::URGENT_REFERENCE_FILE => explode(',', self::URGENT_REFERENCE_FILE_VALUES), YouTubeDistributionField::KEEP_FINGERPRINT => explode(',', self::KEEP_FINGERPRINT_VALUES));
     $allFieldValues = $this->getAllFieldValues($entryDistribution);
     if (!$allFieldValues || !is_array($allFieldValues)) {
         KalturaLog::err('Error getting field values from entry distribution id [' . $entryDistribution->getId() . '] profile id [' . $this->getId() . ']');
         return $validationErrors;
     }
     $validationErrors = array_merge($validationErrors, $this->validateMaxLength($maxLengthFields, $allFieldValues, $action));
     $validationErrors = array_merge($validationErrors, $this->validateInListOrNull($inListOrNullFields, $allFieldValues, $action));
     $fieldName = YouTubeDistributionField::NOTIFICATION_EMAIL;
     $value = $allFieldValues[$fieldName];
     //multiple email support
     $values = explode(' ', $value);
     foreach ($values as $val) {
         if (!is_null($val) && !kString::isEmailString($val)) {
             $errorMsg = $this->getUserFriendlyFieldName($fieldName) . ' value must be an email string [value:' . $val . ']';
             $validationError = $this->createValidationError($action, DistributionErrorType::INVALID_DATA, $this->getUserFriendlyFieldName($fieldName));
             $validationError->setValidationErrorType(DistributionValidationErrorType::CUSTOM_ERROR);
             $validationError->setValidationErrorParam($errorMsg);
             $validationErrors[] = $validationError;
         }
     }
     //TODO: check if MEDIA_CATEGORY is a valid YouTube category according to YouTube's XML.
     return $validationErrors;
 }
 public function validateForSubmission(EntryDistribution $entryDistribution, $action)
 {
     $validationErrors = parent::validateForSubmission($entryDistribution, $action);
     $inListOrNullFields = array(FacebookDistributionField::CALL_TO_ACTION_TYPE_VALID_VALUES => explode(',', self::CALL_TO_ACTION_TYPE_VALID_VALUES));
     if (count($entryDistribution->getFlavorAssetIds())) {
         $flavorAssets = assetPeer::retrieveByIds(explode(',', $entryDistribution->getFlavorAssetIds()));
     } else {
         $flavorAssets = assetPeer::retrieveReadyFlavorsByEntryId($entryDistribution->getEntryId());
     }
     $validVideo = false;
     foreach ($flavorAssets as $flavorAsset) {
         $validVideo = $this->validateVideo($flavorAsset);
         if ($validVideo) {
             // even one valid video is enough
             break;
         }
     }
     if (!$validVideo) {
         KalturaLog::err("No valid video found for entry [" . $entryDistribution->getEntryId() . "]");
         $validationErrors[] = $this->createCustomValidationError($action, DistributionErrorType::INVALID_DATA, 'flavorAsset', ' No valid flavor found');
     }
     $allFieldValues = $this->getAllFieldValues($entryDistribution);
     if (!$allFieldValues || !is_array($allFieldValues)) {
         KalturaLog::err('Error getting field values from entry distribution id [' . $entryDistribution->getId() . '] profile id [' . $this->getId() . ']');
         return $validationErrors;
     }
     if ($allFieldValues[FacebookDistributionField::SCHEDULE_PUBLISHING_TIME] && $allFieldValues[FacebookDistributionField::SCHEDULE_PUBLISHING_TIME] > time() && !dateUtils::isWithinTimeFrame($allFieldValues[FacebookDistributionField::SCHEDULE_PUBLISHING_TIME], FacebookConstants::FACEBOOK_MIN_POSTPONE_POST_IN_SECONDS, FacebookConstants::FACEBOOK_MAX_POSTPONE_POST_IN_SECONDS)) {
         KalturaLog::err("Scheduled time to publish defies the facebook restriction of six minute to six months from now got" . $allFieldValues[FacebookDistributionField::SCHEDULE_PUBLISHING_TIME]);
         $validationErrors[] = $this->createCustomValidationError($action, DistributionErrorType::INVALID_DATA, 'sunrise', 'Distribution sunrise is invalid (should be 6 minutes to 6 months from now)');
     }
     $validationErrors = array_merge($validationErrors, $this->validateInListOrNull($inListOrNullFields, $allFieldValues, $action));
     return $validationErrors;
 }
 public function validateForSubmission(EntryDistribution $entryDistribution, $action)
 {
     $validationErrors = parent::validateForSubmission($entryDistribution, $action);
     $allFieldValues = $this->getAllFieldValues($entryDistribution);
     if (!$allFieldValues || !is_array($allFieldValues)) {
         KalturaLog::err('Error getting field values from entry distribution id [' . $entryDistribution->getId() . '] profile id [' . $this->getId() . ']');
         return $validationErrors;
     }
     return $validationErrors;
 }
 public function validateForSubmission(EntryDistribution $entryDistribution, $action)
 {
     $validationErrors = parent::validateForSubmission($entryDistribution, $action);
     $allFieldValues = $this->getAllFieldValues($entryDistribution);
     if (!is_array($allFieldValues)) {
         $allFieldValues = array();
     }
     $validationErrors = array_merge($validationErrors, $this->validateMaxLength($this->maxLengthValidation, $allFieldValues, $action));
     $validationErrors = array_merge($validationErrors, $this->validateInListOrNull($this->inListOrNullValidation, $allFieldValues, $action));
     return $validationErrors;
 }
 public function validateForSubmission(EntryDistribution $entryDistribution, $action)
 {
     $validationErrors = parent::validateForSubmission($entryDistribution, $action);
     $maxLengthFields = array(UnicornDistributionField::TITLE => self::ITEM_TITLE_MAXIMUM_LENGTH);
     $allFieldValues = $this->getAllFieldValues($entryDistribution);
     if (!$allFieldValues || !is_array($allFieldValues)) {
         KalturaLog::err('Error getting field values from entry distribution id [' . $entryDistribution->getId() . '] profile id [' . $this->getId() . ']');
         return $validationErrors;
     }
     $validationErrors = array_merge($validationErrors, $this->validateMaxLength($maxLengthFields, $allFieldValues, $action));
     return $validationErrors;
 }
 public function validateForSubmission(EntryDistribution $entryDistribution, $action)
 {
     $validationErrors = parent::validateForSubmission($entryDistribution, $action);
     $maxLengthFields = array(AttUverseDistributionField::ITEM_TITLE => self::ITEM_TITLE_MAXIMUM_LENGTH, AttUverseDistributionField::ITEM_METADATA_TUNEIN => self::ITEM_METADATA_TUNEIN_MAXIMUM_LENGTH, AttUverseDistributionField::ITEM_DESCRIPTION => self::ITEM_DESCRIPTION_MAXIMUM_LENGTH, AttUverseDistributionField::ITEM_METADATA_LEGAL_DISCLAIMER => self::ITEM_METADATA_LEGAL_DISCLAIMER_MAXIMUM_LENGTH);
     $allFieldValues = $this->getAllFieldValues($entryDistribution);
     if (!$allFieldValues || !is_array($allFieldValues)) {
         KalturaLog::err('Error getting field values from entry distribution id [' . $entryDistribution->getId() . '] profile id [' . $this->getId() . ']');
         return $validationErrors;
     }
     $validationErrors = array_merge($validationErrors, $this->validateMaxLength($maxLengthFields, $allFieldValues, $action));
     //$validationErrors = array_merge($validationErrors, $this->validateThumbnailExist($entryDistribution, $action));
     return $validationErrors;
 }
 public function validateForSubmission(EntryDistribution $entryDistribution, $action)
 {
     $validationErrors = parent::validateForSubmission($entryDistribution, $action);
     $maxLengthFields = array(YouTubeApiDistributionField::MEDIA_TITLE => self::MEDIA_TITLE_MAXIMUM_LENGTH, YouTubeApiDistributionField::MEDIA_DESCRIPTION => self::MEDIA_DESCRIPTION_MAXIMUM_LENGTH, YouTubeApiDistributionField::MEDIA_KEYWORDS => self::MEDIA_KEYWORDS_MAXIMUM_LENGTH);
     $inListOrNullFields = array(YouTubeApiDistributionField::ALLOW_COMMENTS => explode(',', self::ALLOW_COMMENTS_VALID_VALUES), YouTubeApiDistributionField::ALLOW_EMBEDDING => explode(',', self::ALLOW_EMBEDDING_VALID_VALUES), YouTubeApiDistributionField::ALLOW_RATINGS => explode(',', self::ALLOW_RATINGS_VALID_VALUES), YouTubeApiDistributionField::ALLOW_RESPONSES => explode(',', self::ALLOW_RESPONSES_VALID_VALUES));
     $allFieldValues = $this->getAllFieldValues($entryDistribution);
     if (!$allFieldValues || !is_array($allFieldValues)) {
         KalturaLog::err('Error getting field values from entry distribution id [' . $entryDistribution->getId() . '] profile id [' . $this->getId() . ']');
         return $validationErrors;
     }
     $validationErrors = array_merge($validationErrors, $this->validateMaxLength($maxLengthFields, $allFieldValues, $action));
     $validationErrors = array_merge($validationErrors, $this->validateInListOrNull($inListOrNullFields, $allFieldValues, $action));
     $videoTagsValue = isset($allFieldValues[YouTubeApiDistributionField::MEDIA_KEYWORDS]) ? $allFieldValues[YouTubeApiDistributionField::MEDIA_KEYWORDS] : null;
     $validationErrors = array_merge($validationErrors, $this->validateTags($videoTagsValue, $action));
     return $validationErrors;
 }
 public function validateForSubmission(EntryDistribution $entryDistribution, $action)
 {
     $validationErrors = parent::validateForSubmission($entryDistribution, $action);
     $maxLengthFields = array(DailymotionDistributionField::VIDEO_TITLE => self::VIDEO_TITLE_MAXIMUM_LENGTH, DailymotionDistributionField::VIDEO_DESCRIPTION => self::VIDEO_DESCRIPTION_MAXIMUM_LENGTH);
     $inListOrNullFields = array(DailymotionDistributionField::VIDEO_TYPE => explode(',', self::VIDEO_TYPE_ALLOWED_VALUES), DailymotionDistributionField::VIDEO_GEO_BLOCKING_OPERATION => explode(',', self::VIDEO_GEO_BLOCKING_OPERATION_ALLOWED_VALUES));
     $allFieldValues = $this->getAllFieldValues($entryDistribution);
     if (!$allFieldValues || !is_array($allFieldValues)) {
         KalturaLog::err('Error getting field values from entry distribution id [' . $entryDistribution->getId() . '] profile id [' . $this->getId() . ']');
         return $validationErrors;
     }
     $validationErrors = array_merge($validationErrors, $this->validateMaxLength($maxLengthFields, $allFieldValues, $action));
     $validationErrors = array_merge($validationErrors, $this->validateInListOrNull($inListOrNullFields, $allFieldValues, $action));
     $videoTagsValue = isset($allFieldValues[DailymotionDistributionField::VIDEO_TAGS]) ? $allFieldValues[DailymotionDistributionField::VIDEO_TAGS] : null;
     $validationErrors = array_merge($validationErrors, $this->validateTags($videoTagsValue, $action));
     return $validationErrors;
 }
 public function validateForSubmission(EntryDistribution $entryDistribution, $action)
 {
     $validationErrors = parent::validateForSubmission($entryDistribution, $action);
     $profile = DistributionProfilePeer::retrieveByPK($entryDistribution->getDistributionProfileId());
     if (!$profile) {
         KalturaLog::err("Distribution  profile [" . $entryDistribution->getDistributionProfileId() . "] not found");
         $validationErrors[] = $this->createValidationError($action, DistributionErrorType::INVALID_DATA, 'profile', 'distribution profile not found');
         return $validationErrors;
     }
     if (strlen($profile->getFeedTitle()) <= 0) {
         $newError = $this->createValidationError($action, DistributionErrorType::INVALID_DATA, 'Feed title');
         $newError->setValidationErrorType(DistributionValidationErrorType::STRING_EMPTY);
         $validationErrors[] = $newError;
     }
     if (strlen($profile->getFeedLink()) <= 0) {
         $newError = $this->createValidationError($action, DistributionErrorType::INVALID_DATA, 'Feed link');
         $newError->setValidationErrorType(DistributionValidationErrorType::STRING_EMPTY);
         $validationErrors[] = $newError;
     }
     return $validationErrors;
 }
Esempio n. 11
0
 public function validateForSubmission(EntryDistribution $entryDistribution, $action)
 {
     $validationErrors = parent::validateForSubmission($entryDistribution, $action);
     $maxLengthFields = array(YahooDistributionField::VIDEO_DESCRIPTION => self::VIDEO_DESCRIPTION_MAXIMUM_LENGTH, YahooDistributionField::VIDEO_FEEDITEM_ID => self::FEED_ITEM_ID_MAXIMUM_LENGTH);
     $inListOrNullFields = array();
     $allFieldValues = $this->getAllFieldValues($entryDistribution);
     if (!$allFieldValues || !is_array($allFieldValues)) {
         KalturaLog::err('Error getting field values from entry distribution id [' . $entryDistribution->getId() . '] profile id [' . $this->getId() . ']');
         return $validationErrors;
     }
     $validationErrors = array_merge($validationErrors, $this->validateMaxLength($maxLengthFields, $allFieldValues, $action));
     $validationErrors = array_merge($validationErrors, $this->validateInListOrNull($inListOrNullFields, $allFieldValues, $action));
     $validationErrors = array_merge($validationErrors, $this->validateTwoThumbnailsExist($entryDistribution, $action));
     //$validationErrors = array_merge($validationErrors, $this->validateVideoStreamFormatAndBitrate($entryDistribution, $action));
     //$validationErrors = array_merge($validationErrors, $this->validateThumbnailsDimensions($entryDistribution, $action));
     //TODO: validate only video stream formats and remove bitrate and thumb dimensions
     $emailField = YahooDistributionField::CONTACT_EMAIL;
     $emailValue = $allFieldValues[$emailField];
     if ($emailValue && !kString::isEmailString($emailValue)) {
         $validationError = $this->createValidationError($action, DistributionErrorType::INVALID_DATA, $this->getUserFriendlyFieldName($emailField));
         $validationError->setValidationErrorType(DistributionValidationErrorType::INVALID_FORMAT);
         $validationError->setValidationErrorParam('email');
         $validationError->setDescription('Not an email string');
         $validationErrors[] = $validationError;
     }
     //TODO: validate that if contact_email is given, contact_telephone is given
     $telephoneField = YahooDistributionField::CONTACT_TELEPHONE;
     $telephoneValue = $allFieldValues[$telephoneField];
     //if Email is given than telephone must be given too
     if ($emailValue && !$telephoneValue) {
         $validationError = $this->createValidationError($action, DistributionErrorType::MISSING_METADATA, $this->getUserFriendlyFieldName($telephoneField));
         $validationError->setValidationErrorType(DistributionValidationErrorType::CUSTOM_ERROR);
         $validationError->setValidationErrorParam('Telephone is missing');
         $validationError->setDescription('Telephone is required');
         $validationErrors[] = $validationError;
     }
     return $validationErrors;
 }
 public function validateForSubmission(EntryDistribution $entryDistribution, $action)
 {
     $validationErrors = parent::validateForSubmission($entryDistribution, $action);
     $allFieldValues = $this->getAllFieldValues($entryDistribution);
     if (!$allFieldValues || !is_array($allFieldValues)) {
         KalturaLog::err('Error getting field values from entry distribution id [' . $entryDistribution->getId() . '] profile id [' . $this->getId() . ']');
         return $validationErrors;
     }
     $validationErrors = array_merge($validationErrors, $this->validateMaxLength($this->maxLengthValidation, $allFieldValues, $action));
     $validationErrors = array_merge($validationErrors, $this->validateInListOrNull($this->inListOrNullValidation, $allFieldValues, $action));
     $validationErrors = array_merge($validationErrors, $this->validateMaxLengthCategoryName($allFieldValues[UverseClickToOrderDistributionField::CATEGORY_ENTRY_ID], $action));
     return $validationErrors;
 }
Esempio n. 13
0
 public function validateForSubmission(EntryDistribution $entryDistribution, $action)
 {
     $allFieldValues = $this->getAllFieldValues($entryDistribution);
     // check if this entry is main menu or thank you screen and override the thumbnail validation
     if (isset($allFieldValues[AvnDistributionField::CATEGORY])) {
         if (in_array(strtolower($allFieldValues[AvnDistributionField::CATEGORY]), array('main menu', 'thank you'))) {
             $this->overrideRequiredThumbs = new kDistributionThumbDimensions();
             $this->overrideRequiredThumbs->setWidth(self::SPECIAL_THUMBNAIL_WIDTH);
             $this->overrideRequiredThumbs->setHeight(self::SPECIAL_THUMBNAIL_HEIGHT);
         }
     }
     $validationErrors = parent::validateForSubmission($entryDistribution, $action);
     if (!$allFieldValues || !is_array($allFieldValues)) {
         KalturaLog::err('Error getting field values from entry distribution id [' . $entryDistribution->getId() . '] profile id [' . $this->getId() . ']');
         return $validationErrors;
     }
     $validationErrors = array_merge($validationErrors, $this->validateMaxLength($this->maxLengthValidation, $allFieldValues, $action));
     $validationErrors = array_merge($validationErrors, $this->validateInListOrNull($this->inListOrNullValidation, $allFieldValues, $action));
     return $validationErrors;
 }
 public function validateForSubmission(EntryDistribution $entryDistribution, $action)
 {
     $validationErrors = parent::validateForSubmission($entryDistribution, $action);
     // make sure that all flavor assets marked for distribution have a flavor params id assigned to them
     $flavorAssetIds = explode(',', $entryDistribution->getFlavorAssetIds());
     if (count($flavorAssetIds)) {
         $c = new Criteria();
         $c->addAnd(assetPeer::ID, $flavorAssetIds, Criteria::IN);
         $flavorTypes = assetPeer::retrieveAllFlavorsTypes();
         $c->add(assetPeer::TYPE, $flavorTypes, Criteria::IN);
         $flavorAssets = assetPeer::doSelect($c);
         foreach ($flavorAssets as $asset) {
             /* @var $asset flavorAsset */
             if (strlen($asset->getFlavorParamsId()) <= 0) {
                 $validationErrors[] = $this->createValidationError($action, DistributionErrorType::INVALID_DATA, 'flavor asset', 'flavor asset must be assigned to a flavor params id');
             }
         }
     }
     return $validationErrors;
 }
 public function validateForSubmission(EntryDistribution $entryDistribution, $action)
 {
     $validationErrors = parent::validateForSubmission($entryDistribution, $action);
     $allFieldValues = $this->getAllFieldValues($entryDistribution);
     if (!$allFieldValues || !is_array($allFieldValues)) {
         KalturaLog::err('Error getting field values from entry distribution id [' . $entryDistribution->getId() . '] profile id [' . $this->getId() . ']');
         return $validationErrors;
     }
     $validationErrors = array_merge($validationErrors, $this->validateMaxLength($this->maxLengthValidation, $allFieldValues, $action));
     $validationErrors = array_merge($validationErrors, $this->validateInListOrNull($this->inListOrNullValidation, $allFieldValues, $action));
     $validationErrors = array_merge($validationErrors, $this->validateEndDateNotPrecedesStartDatet($allFieldValues, $entryDistribution, $action));
     return $validationErrors;
 }
Esempio n. 16
0
 public function validateForSubmission(EntryDistribution $entryDistribution, $action)
 {
     $validationErrors = parent::validateForSubmission($entryDistribution, $action);
     $allFieldValues = $this->getAllFieldValues($entryDistribution);
     if (!$allFieldValues || !is_array($allFieldValues)) {
         KalturaLog::err('Error getting field values from entry distribution id [' . $entryDistribution->getId() . '] profile id [' . $this->getId() . ']');
         return $validationErrors;
     }
     $validationErrors = array_merge($validationErrors, $this->validateMaxLength($this->maxLengthValidation, $allFieldValues, $action));
     $validationErrors = array_merge($validationErrors, $this->validateInListOrNull($this->inListOrNullValidation, $allFieldValues, $action));
     if ($this->getDisableEpisodeNumberCustomValidation() !== true) {
         $validationErrors = array_merge($validationErrors, $this->validateEpisodeNumber($allFieldValues, $action));
     }
     $validationErrors = array_merge($validationErrors, $this->validateContentRatingReason($allFieldValues, $action));
     return $validationErrors;
 }
 public function validateForSubmission(EntryDistribution $entryDistribution, $action)
 {
     $validationErrors = parent::validateForSubmission($entryDistribution, $action);
     return $validationErrors;
 }
 public function validateForSubmission(EntryDistribution $entryDistribution, $action)
 {
     $validationErrors = parent::validateForSubmission($entryDistribution, $action);
     $allFieldValues = $this->getAllFieldValues($entryDistribution);
     if (!$allFieldValues || !is_array($allFieldValues)) {
         KalturaLog::err('Error getting field values from entry distribution id [' . $entryDistribution->getId() . '] profile id [' . $this->getId() . ']');
         return $validationErrors;
     }
     $validationErrors = array_merge($validationErrors, $this->validateMaxLength($this->maxLengthValidation, $allFieldValues, $action));
     //validate required channel fields
     $channelTitleValue = $this->getChannelTitle();
     if (empty($channelTitleValue)) {
         $validationError = $this->createValidationError($action, DistributionErrorType::INVALID_DATA, 'Channel title profile configuration');
         $validationError->setValidationErrorType(DistributionValidationErrorType::STRING_EMPTY);
         $validationErrors[] = $validationError;
     }
     $channelLinkValue = $this->getChannelLink();
     if (empty($channelLinkValue)) {
         $validationError = $this->createValidationError($action, DistributionErrorType::INVALID_DATA, 'Channel link profile configuration');
         $validationError->setValidationErrorType(DistributionValidationErrorType::STRING_EMPTY);
         $validationErrors[] = $validationError;
     }
     $channelDescriptionValue = $this->getChannelDescription();
     if (empty($channelDescriptionValue)) {
         $validationError = $this->createValidationError($action, DistributionErrorType::INVALID_DATA, 'Channel description profile configuration');
         $validationError->setValidationErrorType(DistributionValidationErrorType::STRING_EMPTY);
         $validationErrors[] = $validationError;
     }
     //verify channel image title exist if channel image url exists and vice versa
     $channelImageTitleValue = $this->getChannelImageTitle();
     $channelImageUrlValue = $this->getChannelImageUrl();
     if (!empty($channelImageTitleValue) && empty($channelImageUrlValue)) {
         $validationError = $this->createValidationError($action, DistributionErrorType::INVALID_DATA, 'Channel image url profile configuration');
         $validationError->setValidationErrorType(DistributionValidationErrorType::STRING_EMPTY);
         $validationErrors[] = $validationError;
     }
     if (!empty($channelImageUrlValue) && empty($channelImageTitleValue)) {
         $validationError = $this->createValidationError($action, DistributionErrorType::INVALID_DATA, 'Channel image title profile configuration');
         $validationError->setValidationErrorType(DistributionValidationErrorType::STRING_EMPTY);
         $validationErrors[] = $validationError;
     }
     // validate thumbnail assets
     $requiredThumbAssetDim = $this->getRequiredThumbDimensions();
     if (empty($requiredThumbAssetDim)) {
         $errorMsg = 'no thumbnail was configured';
         $validationError = $this->createValidationError($action, DistributionErrorType::INVALID_DATA);
         $validationError->setValidationErrorType(DistributionValidationErrorType::CUSTOM_ERROR);
         $validationError->setValidationErrorParam($errorMsg);
         $validationError->setDescription($errorMsg);
         $validationErrors[] = $validationError;
     }
     return $validationErrors;
 }