/** * Add new Syndication Feed * * @action add * @param KalturaBaseSyndicationFeed $syndicationFeed * @return KalturaBaseSyndicationFeed */ public function addAction(KalturaBaseSyndicationFeed $syndicationFeed) { $syndicationFeed->validatePlaylistId(); $syndicationFeed->validateStorageId($this->getPartnerId()); if ($syndicationFeed instanceof KalturaGenericXsltSyndicationFeed) { $syndicationFeed->validatePropertyNotNull('xslt'); $syndicationFeedDB = new genericSyndicationFeed(); $syndicationFeedDB->incrementVersion(); } else { $syndicationFeedDB = new syndicationFeed(); } $syndicationFeed->toInsertableObject($syndicationFeedDB); $syndicationFeedDB->setPartnerId($this->getPartnerId()); $syndicationFeedDB->setStatus(KalturaSyndicationFeedStatus::ACTIVE); $syndicationFeedDB->save(); if ($syndicationFeed->addToDefaultConversionProfile) { $partner = PartnerPeer::retrieveByPK($this->getPartnerId()); $c = new Criteria(); $c->addAnd(flavorParamsConversionProfilePeer::CONVERSION_PROFILE_ID, $partner->getDefaultConversionProfileId()); $c->addAnd(flavorParamsConversionProfilePeer::FLAVOR_PARAMS_ID, $syndicationFeed->flavorParamId); $is_exist = flavorParamsConversionProfilePeer::doCount($c); if (!$is_exist || $is_exist === 0) { $assetParams = assetParamsPeer::retrieveByPK($syndicationFeed->flavorParamId); $fpc = new flavorParamsConversionProfile(); $fpc->setConversionProfileId($partner->getDefaultConversionProfileId()); $fpc->setFlavorParamsId($syndicationFeed->flavorParamId); if ($assetParams) { $fpc->setReadyBehavior($assetParams->getReadyBehavior()); $fpc->setSystemName($assetParams->getSystemName()); if ($assetParams->hasTag(assetParams::TAG_SOURCE) || $assetParams->hasTag(assetParams::TAG_INGEST)) { $fpc->setOrigin(assetParamsOrigin::INGEST); } else { $fpc->setOrigin(assetParamsOrigin::CONVERT); } } $fpc->save(); } } if ($syndicationFeed instanceof KalturaGenericXsltSyndicationFeed) { $key = $syndicationFeedDB->getSyncKey(genericSyndicationFeed::FILE_SYNC_SYNDICATION_FEED_XSLT); kFileSyncUtils::file_put_contents($key, $syndicationFeed->xslt); } $syndicationFeed->fromObject($syndicationFeedDB, $this->getResponseProfile()); return $syndicationFeed; }