public function getListResponse(KalturaFilterPager $pager, KalturaDetachedResponseProfile $responseProfile = null) { list($list, $totalCount) = $this->doGetListResponse($pager); $newList = KalturaBaseEntryArray::fromDbArray($list, $responseProfile); $response = new KalturaBaseEntryListResponse(); $response->objects = $newList; $response->totalCount = $totalCount; return $response; }
/** * Retrieve playlist for playing purpose, based on content * @disableTags TAG_WIDGET_SESSION * * @action executeFromContent * @param KalturaPlaylistType $playlistType * @param string $playlistContent * @param string $detailed * @param KalturaFilterPager $pager * @return KalturaBaseEntryArray */ function executeFromContentAction($playlistType, $playlistContent, $detailed = false, $pager = null) { myDbHelper::$use_alternative_con = myDbHelper::DB_HELPER_CONN_PROPEL3; if ($this->getKs() && is_object($this->getKs()) && $this->getKs()->isAdmin()) { myPlaylistUtils::setIsAdminKs(true); } $entryList = array(); if ($playlistType == KalturaPlaylistType::DYNAMIC) { $entryList = myPlaylistUtils::executeDynamicPlaylist($this->getPartnerId(), $playlistContent, null, true, $pager); } else { if ($playlistType == KalturaPlaylistType::STATIC_LIST) { $entryList = myPlaylistUtils::executeStaticPlaylistFromEntryIdsString($playlistContent, null, true, $pager); } } myEntryUtils::updatePuserIdsForEntries($entryList); return KalturaBaseEntryArray::fromDbArray($entryList, $this->getResponseProfile()); }
/** * Search caption asset items by filter, pager and free text * * @action searchEntries * @param KalturaBaseEntryFilter $entryFilter * @param KalturaCaptionAssetItemFilter $captionAssetItemFilter * @param KalturaFilterPager $captionAssetItemPager * @return KalturaBaseEntryListResponse */ public function searchEntriesAction(KalturaBaseEntryFilter $entryFilter = null, KalturaCaptionAssetItemFilter $captionAssetItemFilter = null, KalturaFilterPager $captionAssetItemPager = null) { if (!$captionAssetItemPager) { $captionAssetItemPager = new KalturaFilterPager(); } if (!$captionAssetItemFilter) { $captionAssetItemFilter = new KalturaCaptionAssetItemFilter(); } $captionAssetItemFilter->validatePropertyNotNull(array("contentLike", "contentMultiLikeOr", "contentMultiLikeAnd")); $captionAssetItemCoreFilter = new CaptionAssetItemFilter(); $captionAssetItemFilter->toObject($captionAssetItemCoreFilter); $entryIdChunks = array(NULL); if ($entryFilter || kEntitlementUtils::getEntitlementEnforcement()) { $entryCoreFilter = new entryFilter(); if ($entryFilter) { $entryFilter->toObject($entryCoreFilter); } $entryCoreFilter->setPartnerSearchScope($this->getPartnerId()); $this->addEntryAdvancedSearchFilter($captionAssetItemFilter, $entryCoreFilter); $entryCriteria = KalturaCriteria::create(entryPeer::OM_CLASS); $entryCoreFilter->attachToCriteria($entryCriteria); $entryCriteria->setLimit(self::MAX_NUMBER_OF_ENTRIES); $entryCriteria->applyFilters(); $entryIds = $entryCriteria->getFetchedIds(); if (!$entryIds || !count($entryIds)) { $entryIds = array('NOT_EXIST'); } $entryIdChunks = array_chunk($entryIds, self::SIZE_OF_ENTRIES_CHUNK); } $entries = array(); $counter = 0; $shouldSortCaptionFiltering = $entryFilter->orderBy ? true : false; $captionAssetItemCriteria = KalturaCriteria::create(CaptionAssetItemPeer::OM_CLASS); $captionAssetItemCoreFilter->attachToCriteria($captionAssetItemCriteria); $captionAssetItemCriteria->setGroupByColumn('str_entry_id'); $captionAssetItemCriteria->setSelectColumn('str_entry_id'); foreach ($entryIdChunks as $chunk) { $currCriteria = clone $captionAssetItemCriteria; if ($chunk) { $currCriteria->add(CaptionAssetItemPeer::ENTRY_ID, $chunk, KalturaCriteria::IN); } else { $captionAssetItemPager->attachToCriteria($currCriteria); } $currCriteria->applyFilters(); $currEntries = $currCriteria->getFetchedIds(); //sorting this chunk according to results of first sphinx query if ($shouldSortCaptionFiltering) { $currEntries = array_intersect($entryIds, $currEntries); } $entries = array_merge($entries, $currEntries); $counter += $currCriteria->getRecordsCount(); } $inputPageSize = $captionAssetItemPager->pageSize; $inputPageIndex = $captionAssetItemPager->pageIndex; //page index & size validation - no negative values & size not too big $pageSize = max(min($inputPageSize, baseObjectFilter::getMaxInValues()), 0); $pageIndex = max($captionAssetItemPager::MIN_PAGE_INDEX, $inputPageIndex) - 1; $firstIndex = $pageSize * $pageIndex; $entries = array_slice($entries, $firstIndex, $pageSize); $dbList = entryPeer::retrieveByPKs($entries); if ($shouldSortCaptionFiltering) { //results ids mapping $entriesMapping = array(); foreach ($dbList as $item) { $entriesMapping[$item->getId()] = $item; } $dbList = array(); foreach ($entries as $entryId) { if (isset($entriesMapping[$entryId])) { $dbList[] = $entriesMapping[$entryId]; } } } $list = KalturaBaseEntryArray::fromDbArray($dbList, $this->getResponseProfile()); $response = new KalturaBaseEntryListResponse(); $response->objects = $list; $response->totalCount = $counter; return $response; }
/** * List base entries by filter according to reference id * * @action listByReferenceId * @param string $refId Entry Reference ID * @param KalturaFilterPager $pager Pager * @throws KalturaErrors::MISSING_MANDATORY_PARAMETER */ function listByReferenceId($refId, KalturaFilterPager $pager = null) { if (!$refId) { //if refId wasn't provided return an error of missing parameter throw new KalturaAPIException(KalturaErrors::MISSING_MANDATORY_PARAMETER, $refId); } if (!$pager) { $pager = new KalturaFilterPager(); } $entryFilter = new entryFilter(); $entryFilter->setPartnerSearchScope(baseObjectFilter::MATCH_KALTURA_NETWORK_AND_PRIVATE); //setting reference ID $entryFilter->set('_eq_reference_id', $refId); $c = KalturaCriteria::create(entryPeer::OM_CLASS); $pager->attachToCriteria($c); $entryFilter->attachToCriteria($c); $c->add(entryPeer::DISPLAY_IN_SEARCH, mySearchUtils::DISPLAY_IN_SEARCH_SYSTEM, Criteria::NOT_EQUAL); KalturaCriterion::disableTag(KalturaCriterion::TAG_WIDGET_SESSION); $list = entryPeer::doSelect($c); KalturaCriterion::restoreTag(KalturaCriterion::TAG_WIDGET_SESSION); $totalCount = $c->getRecordsCount(); $newList = KalturaBaseEntryArray::fromEntryArray($list, false); $response = new KalturaBaseEntryListResponse(); $response->objects = $newList; $response->totalCount = $totalCount; return $response; }
/** * List base entries by filter with paging support. * * @action list * @param KalturaBaseEntryFilter $filter Entry filter * @param KalturaFilterPager $pager Pager * @return KalturaBaseEntryListResponse Wrapper for array of base entries and total count */ function listAction(KalturaBaseEntryFilter $filter = null, KalturaFilterPager $pager = null) { myDbHelper::$use_alternative_con = myDbHelper::DB_HELPER_CONN_PROPEL3; list($list, $totalCount) = parent::listEntriesByFilter($filter, $pager); $ks = $this->getKs(); $isAdmin = false; if ($ks) { $isAdmin = $ks->isAdmin(); } $newList = KalturaBaseEntryArray::fromEntryArray($list, $isAdmin); $response = new KalturaBaseEntryListResponse(); $response->objects = $newList; $response->totalCount = $totalCount; return $response; }