/** * List all distribution providers * * @action list * @param KalturaDistributionProviderFilter $filter * @param KalturaFilterPager $pager * @return KalturaDistributionProviderListResponse */ function listAction(KalturaDistributionProviderFilter $filter = null, KalturaFilterPager $pager = null) { if (!$filter) { $filter = new KalturaDistributionProviderFilter(); } $c = new Criteria(); if ($filter instanceof KalturaGenericDistributionProviderFilter) { $genericDistributionProviderFilter = new GenericDistributionProviderFilter(); $filter->toObject($genericDistributionProviderFilter); $genericDistributionProviderFilter->attachToCriteria($c); } $count = GenericDistributionProviderPeer::doCount($c); if (!$pager) { $pager = new KalturaFilterPager(); } $pager->attachToCriteria($c); $list = GenericDistributionProviderPeer::doSelect($c); $response = new KalturaDistributionProviderListResponse(); $response->objects = KalturaDistributionProviderArray::fromDbArray($list, $this->getResponseProfile()); $response->totalCount = $count; $syndicationProvider = new KalturaSyndicationDistributionProvider(); $syndicationProvider->fromObject(SyndicationDistributionProvider::get()); $response->objects[] = $syndicationProvider; $response->totalCount++; $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaContentDistributionProvider'); foreach ($pluginInstances as $pluginInstance) { $provider = $pluginInstance->getKalturaProvider(); if ($provider) { $response->objects[] = $provider; $response->totalCount++; } } return $response; }
/** * @return array<IKalturaMrssContributor> */ public static function getMrssContributors() { if (self::$mrssContributors) { return self::$mrssContributors; } self::$mrssContributors = KalturaPluginManager::getPluginInstances('IKalturaMrssContributor'); return self::$mrssContributors; }
protected function _loadTranslationData($data, $locale, array $options = array()) { $translate = parent::_loadTranslationData($data, $locale, $options); $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaApplicationTranslations'); foreach ($pluginInstances as $pluginInstance) { /* @var $pluginInstance IKalturaApplicationTranslations */ $translations = $pluginInstance->getTranslations($locale); $translate = array_merge_recursive($translate, $translations); } return $translate; }
/** * Creates a new KalturaCriteria for the given object name * * @param string $objectType object type to create Criteria for. * @return KalturaCriteria derived object */ public static function create($objectType) { $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaCriteriaFactory'); foreach ($pluginInstances as $pluginInstance) { $criteria = $pluginInstance->getKalturaCriteria($objectType); if ($criteria) { return $criteria; } } return new KalturaCriteria(); }
public function doAction(Zend_Controller_Action $action) { $action->getHelper('layout')->disableLayout(); $request = $action->getRequest(); $drmProfileId = $this->_getParam('drm_profile_id'); $partnerId = $this->_getParam('new_partner_id'); $drmProfileProvider = $this->_getParam('new_drm_profile_provider'); $drmProfileForm = null; $action->view->formValid = false; try { if ($request->isPost()) { $partnerId = $this->_getParam('partnerId'); $drmProfileProvider = $this->_getParam('provider'); $drmProfileForm = new Form_DrmProfileConfigure($partnerId, $drmProfileProvider); $action->view->formValid = $this->processForm($drmProfileForm, $request->getPost(), $partnerId, $drmProfileId); if (!is_null($drmProfileId)) { $drmProfile = $drmProfileForm->getObject("Kaltura_Client_Drm_Type_DrmProfile", $request->getPost(), false, true); } } else { if (!is_null($drmProfileId)) { $client = Infra_ClientHelper::getClient(); $drmPluginClient = Kaltura_Client_Drm_Plugin::get($client); $drmProfile = $drmPluginClient->drmProfile->get($drmProfileId); $partnerId = $drmProfile->partnerId; $drmProfileProvider = $drmProfile->provider; $drmProfileForm = new Form_DrmProfileConfigure($partnerId, $drmProfileProvider); $drmProfileForm->populateFromObject($drmProfile, false); } else { $drmProfileForm = new Form_DrmProfileConfigure($partnerId, $drmProfileProvider); $drmProfileForm->getElement('partnerId')->setValue($partnerId); } } } catch (Exception $e) { $action->view->formValid = false; KalturaLog::err($e->getMessage() . "\n" . $e->getTraceAsString()); $action->view->errMessage = $e->getMessage(); } $action->view->form = $drmProfileForm; $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaApplicationPartialView'); KalturaLog::debug("plugin instances [" . count($pluginInstances) . "]"); foreach ($pluginInstances as $pluginInstance) { $drmProfilePlugins = $pluginInstance->getApplicationPartialViews('plugin', get_class($this)); if (!$drmProfilePlugins) { continue; } foreach ($drmProfilePlugins as $plugin) { /* @var $plugin Kaltura_View_Helper_PartialViewPlugin */ $plugin->plug($action->view); } } }
protected function _initNavigation() { $this->bootstrap('layout'); $this->bootstrap('acl'); $layout = $this->getResource('layout'); $view = $layout->getView(); $config = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml'); $navigation = new Zend_Navigation($config); $additionalNavigation = Zend_Registry::get('config')->navigation; $menu = $additionalNavigation->monitoring; $subMenu = $menu->enableDisable; $target = ''; if ($subMenu->target) { $target = $subMenu->target; } $navigation->addPage(array('label' => $subMenu->label, 'uri' => $subMenu->uri, 'target' => $target)); $menuPage = $navigation->findOneBy('label', 'Monitoring'); $subMenuPage = $navigation->findOneBy('label', $subMenu->label); $subMenuPage->setParent($menuPage); $pluginAdminConsolePages = array(); $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaAdminConsolePages'); foreach ($pluginInstances as $pluginInstance) { foreach ($pluginInstance->getAdminConsolePages() as $pluginAdminConsolePage) { $pluginAdminConsolePages[] = $pluginAdminConsolePage; } } foreach ($pluginAdminConsolePages as $pluginAdminConsolePage) { if (!$pluginAdminConsolePage instanceof KalturaAdminConsolePlugin) { continue; } if (!$pluginAdminConsolePage->accessCheck(Kaltura_AclHelper::getCurrentPermissions())) { continue; } $navigation->addPage(array('label' => $pluginAdminConsolePage->getNavigationActionLabel(), 'controller' => 'plugin', 'action' => get_class($pluginAdminConsolePage))); $subMenuPage = $navigation->findOneBy('label', $pluginAdminConsolePage->getNavigationActionLabel()); $menuPage = null; if ($pluginAdminConsolePage->getNavigationRootLabel()) { $menuPage = $navigation->findOneBy('label', $pluginAdminConsolePage->getNavigationRootLabel()); if (!$menuPage) { $navigation->addPage(array('label' => $pluginAdminConsolePage->getNavigationRootLabel(), 'controller' => 'plugin', 'action' => get_class($pluginAdminConsolePage))); $menuPage = $navigation->findOneBy('label', $pluginAdminConsolePage->getNavigationRootLabel()); } } if ($menuPage) { $subMenuPage->setParent($menuPage); } } $this->checkAclForNavigation($navigation); $view->navigation($navigation); }
public static function initialize() { $dbConfigs = array(); $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaDatabaseConfig'); foreach ($pluginInstances as $pluginInstance) { $dbConfigs[] = $pluginInstance->getDatabaseConfig(); } foreach ($dbConfigs as $dbConfig) { self::addExtraConfiguration($dbConfig); } Propel::setConfiguration(self::$config); Propel::setLogger(KalturaLog::getInstance()); Propel::initialize(); }
public static function clearMemory() { foreach (self::$peerNames as $peerName => $dontCare) { call_user_func(array($peerName, 'clearInstancePool')); } self::$peerNames = array(); $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaMemoryCleaner'); foreach ($pluginInstances as $pluginInstance) { $pluginInstance->cleanMemory(); } if (function_exists('gc_collect_cycles')) { // php 5.3 and above gc_collect_cycles(); } }
public static function mergeDescriptions($baseEnumName, array $descriptions) { $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaEnumerator'); foreach ($pluginInstances as $pluginInstance) { $pluginName = $pluginInstance->getPluginName(); $enums = $pluginInstance->getEnums($baseEnumName); foreach ($enums as $enum) { $additionalDescriptions = $enum::getAdditionalDescriptions(); foreach ($additionalDescriptions as $key => $description) { $descriptions[$key] = $description; } } } return $descriptions; }
public function __construct($file_name, $service_name = null, $load_plugins = true, $useDefualt = true) { KalturaServiceConfig::setStrictMode(false); if ($load_plugins) { $serviceConfigs = array(); $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaServices'); foreach ($pluginInstances as $pluginInstance) { $serviceConfigs[] = $pluginInstance->getServiceConfig(); } foreach ($serviceConfigs as $serviceConfig) { KalturaServiceConfig::addSecondaryConfigTables($serviceConfig); } } parent::myServiceConfig($file_name, $service_name, $useDefualt); }
/** * @param EntryDistribution $entryDistribution * @param SimpleXMLElement $xmlElement * @return SimpleXMLElement */ public function contributeDistribution(EntryDistribution $entryDistribution, SimpleXMLElement $mrss) { $distributionsProvider = null; $distributionsProfile = DistributionProfilePeer::retrieveByPK($entryDistribution->getDistributionProfileId()); if ($distributionsProfile) { $distributionsProvider = $distributionsProfile->getProvider(); } $distribution = $mrss->addChild('distribution'); $distribution->addAttribute('entryDistributionId', $entryDistribution->getId()); $distribution->addAttribute('distributionProfileId', $entryDistribution->getDistributionProfileId()); $distribution->addAttribute('lastReport', $entryDistribution->getLastReport(null)); if ($distributionsProvider) { $distribution->addAttribute('provider', $distributionsProvider->getName()); if ($distributionsProvider->getType() == DistributionProviderType::GENERIC) { $distribution->addAttribute('distributionProviderId', $distributionsProvider->getId()); } elseif ($distributionsProvider->getType() == DistributionProviderType::SYNDICATION) { if ($distributionsProfile instanceof SyndicationDistributionProfile) { $distribution->addAttribute('feedId', $distributionsProfile->getFeedId()); } } else { $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaContentDistributionProvider'); foreach ($pluginInstances as $pluginInstance) { if ($pluginInstance->getProvider() === $distributionsProvider) { $pluginInstance->contributeMRSS($entryDistribution, $distribution); } } } } if ($entryDistribution->getRemoteId()) { $distribution->addChild('remoteId', $entryDistribution->getRemoteId()); } if ($entryDistribution->getSunrise(null)) { $distribution->addChild('sunrise', $entryDistribution->getSunrise(null)); } if ($entryDistribution->getSunset(null)) { $distribution->addChild('sunset', $entryDistribution->getSunset(null)); } $flavorAssetIds = explode(',', $entryDistribution->getFlavorAssetIds()); $flavorAssetIdsNode = $distribution->addChild('flavorAssetIds'); foreach ($flavorAssetIds as $flavorAssetId) { $flavorAssetIdsNode->addChild('flavorAssetId', $flavorAssetId); } $thumbAssetIds = explode(',', $entryDistribution->getThumbAssetIds()); $thumbAssetIdsNode = $distribution->addChild('thumbAssetIds'); foreach ($thumbAssetIds as $thumbAssetId) { $thumbAssetIdsNode->addChild('thumbAssetId', $thumbAssetId); } }
protected static function loadConsumers() { $cachePath = kConf::get('cache_root_path') . '/EventConsumers.cache'; if (file_exists($cachePath)) { self::$consumers = unserialize(file_get_contents($cachePath)); return; } $coreConsumers = kConf::get('event_consumers'); $pluginConsumers = array(); $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaEventConsumers'); foreach ($pluginInstances as $pluginInstance) { foreach ($pluginInstance->getEventConsumers() as $pluginConsumer) { $pluginConsumers[] = $pluginConsumer; } } $consumers = array_merge($coreConsumers, $pluginConsumers); $consumersLists = array(); foreach ($consumers as $consumer) { if (!class_exists($consumer)) { continue; } $clazz = new ReflectionClass($consumer); $interfaces = $clazz->getInterfaces(); foreach ($interfaces as $interface) { if ($interface->name == self::BASE_CONSUMER_INTERFACE) { continue; } if (!$interface->implementsInterface(self::BASE_CONSUMER_INTERFACE)) { continue; } if (!isset($consumersLists[$interface->name])) { $consumersLists[$interface->name] = array(); } $consumersLists[$interface->name][] = $consumer; } } foreach ($consumersLists as $interfaceName => $interfaceConsumersArray) { usort($interfaceConsumersArray, array('kEventsManager', 'compareConsumers')); self::$consumers[$interfaceName] = $interfaceConsumersArray; } $cacheDir = dirname($cachePath); if (!file_exists($cacheDir)) { kFile::fullMkfileDir($cacheDir, 0777, true); } @file_put_contents($cachePath, serialize(self::$consumers)); }
public static function mergeDescriptions($baseEnumName, array $descriptions) { $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaEnumerator'); foreach ($pluginInstances as $pluginInstance) { $pluginName = $pluginInstance->getPluginName(); $enums = $pluginInstance->getEnums($baseEnumName); foreach ($enums as $enum) { // TODO remove call_user_func after moving to php 5.3 $additionalDescriptions = call_user_func(array($enum, 'getAdditionalDescriptions')); // $additionalDescriptions = $enum::getAdditionalDescriptions(); foreach ($additionalDescriptions as $key => $description) { $descriptions[$key] = $description; } } } return $descriptions; }
protected static function getExtraDatabaseConfigs() { if (function_exists('apc_fetch')) { $dbConfigs = apc_fetch(self::EXTRA_DB_CONFIG_KEY); if ($dbConfigs !== false) { return $dbConfigs; } } $dbConfigs = array(); $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaDatabaseConfig'); foreach ($pluginInstances as $pluginInstance) { $dbConfigs[] = $pluginInstance->getDatabaseConfig(); } if (function_exists('apc_store')) { apc_store(self::EXTRA_DB_CONFIG_KEY, $dbConfigs); } return $dbConfigs; }
static function cacheMap($servicePath, $cacheFilePath) { if (!is_dir($servicePath)) { throw new Exception('Invalid directory [' . $servicePath . ']'); } $servicePath = realpath($servicePath); $serviceMap = array(); $classMap = KAutoloader::getClassMap(); $checkedClasses = array(); foreach ($classMap as $class => $classFilePath) { $classFilePath = realpath($classFilePath); if (strpos($classFilePath, $servicePath) === 0) { $reflectionClass = new ReflectionClass($class); if ($reflectionClass->isSubclassOf('KalturaBaseService')) { $docComment = $reflectionClass->getDocComment(); $parser = new KalturaDocCommentParser($docComment); $serviceId = strtolower($parser->serviceName); $serviceMap[$serviceId] = $class; } } $checkedClasses[] = $class; } $pluginServices = array(); $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaServices'); foreach ($pluginInstances as $pluginName => $pluginInstance) { $pluginServices = $pluginInstance->getServicesMap(); foreach ($pluginServices as $serviceName => $serviceClass) { $serviceName = strtolower($serviceName); $serviceId = "{$pluginName}_{$serviceName}"; $pluginServices[$serviceId] = $serviceClass; $serviceMap[$serviceId] = $serviceClass; } } $cachedFile = ''; $cachedFile .= '<?php' . PHP_EOL; $cachedFile .= 'self::$services = ' . var_export($serviceMap, true) . ';' . PHP_EOL; if (!is_dir(dirname($cacheFilePath))) { mkdir(dirname($cacheFilePath), 0777); } file_put_contents($cacheFilePath, $cachedFile); }
/** * @param IIndexable $object */ public function saveToMySql(IIndexable $object) { $id = $object->getId(); if (!$id) { KalturaLog::err("Object [" . get_class($object) . "] id [" . $object->getId() . "] could not be saved to MySql, id is empty"); return false; } $searchObject = self::getMySqlSearchObject($object->getObjectIndexName(), $id); $fields = $object->getIndexFieldsMap(); foreach ($fields as $field => $getterName) { $setterName = str_replace('_', '', $field); $getter = "get{$getterName}"; $setter = "set{$setterName}"; if (!method_exists($searchObject, $setter)) { continue; } $value = call_user_func(array($object, $getter)); call_user_func(array($searchObject, $setter), $value); } $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaSearchDataContributor'); $pluginsData = array(); foreach ($pluginInstances as $pluginName => $pluginInstance) { KalturaLog::debug("Loading {$pluginName} search texts"); $pluginData = null; try { $pluginData = $pluginInstance->getSearchData($object); } catch (Exception $e) { KalturaLog::err($e->getMessage()); continue; } if ($pluginData) { KalturaLog::debug("Search data for {$pluginName} [{$pluginData}]"); $pluginsData[] = $pluginData; } } if (count($pluginsData)) { $searchObject->setPluginData(implode(',', $pluginsData)); } $searchObject->save(); }
/** * batch addBulkUploadResultAction action adds KalturaBulkUploadResult to the DB * * @action addBulkUploadResult * @param KalturaBulkUploadResult $bulkUploadResult The results to save to the DB * @param KalturaBulkUploadPluginDataArray $pluginDataArray * @return KalturaBulkUploadResult */ function addBulkUploadResultAction(KalturaBulkUploadResult $bulkUploadResult, KalturaBulkUploadPluginDataArray $pluginDataArray = null) { if (is_null($bulkUploadResult->action)) { $bulkUploadResult->action = KalturaBulkUploadAction::ADD; } $bulkUploadResult->pluginsData = $pluginDataArray; $dbBulkUploadResult = BulkUploadResultPeer::retrieveByBulkUploadIdAndIndex($bulkUploadResult->bulkUploadJobId, $bulkUploadResult->lineIndex); if ($dbBulkUploadResult) { $dbBulkUploadResult = $bulkUploadResult->toUpdatableObject($dbBulkUploadResult); } else { $dbBulkUploadResult = $bulkUploadResult->toInsertableObject(); } /* @var $dbBulkUploadResult BulkUploadResult */ $dbBulkUploadResult->save(); if ($bulkUploadResult->objectId) { $dbBulkUploadResult->handleRelatedObjects(); $jobs = BatchJobPeer::retrieveByEntryId($bulkUploadResult->objectId); foreach ($jobs as $job) { if (!$job->getParentJobId()) { $job->setRootJobId($bulkUploadResult->bulkUploadJobId); $job->setBulkJobId($bulkUploadResult->bulkUploadJobId); $job->save(); } } if ($dbBulkUploadResult->getObject() && $pluginDataArray && $pluginDataArray->count) { $pluginValues = $pluginDataArray->toValuesArray(); if (count($pluginValues)) { $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaBulkUploadHandler'); foreach ($pluginInstances as $pluginInstance) { $pluginInstance->handleBulkUploadData($dbBulkUploadResult->getObject(), $pluginValues); } } } } $bulkUploadResult->fromObject($dbBulkUploadResult); return $bulkUploadResult; }
/** * Used to add dynamic JSON attributes to the search index */ public function getDynamicAttributes() { $dynamicAttributes = array(); // Map catrgories to creation date $categoryEntries = categoryEntryPeer::selectByEntryId($this->getId()); foreach ($categoryEntries as $categoryEntry) { $createdAt = $categoryEntry->getCreatedAt(null); // Passing null in order to get a numerical Unix Time Stamp instead of a string // Get the dyn. attrib. name in the format of: cat_{cat id}_createdAt (e.g.: cat_123_createdAt) $dynAttribName = kCategoryEntryAdvancedFilter::getCategoryCreatedAtDynamicAttributeName($categoryEntry->getCategoryId()); $dynamicAttributes[$dynAttribName] = $createdAt; } $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaDynamicAttributesContributer'); foreach ($pluginInstances as $pluginName => $pluginInstance) { try { $dynamicAttributes += $pluginInstance->getDynamicAttributes($this); } catch (Exception $e) { KalturaLog::err($e->getMessage()); continue; } } return $dynamicAttributes; }
/** * Gets an item and insert it into the system * @param SimpleXMLElement $item */ protected function handleItemAdd(SimpleXMLElement $item) { KalturaLog::debug("xml [" . $item->asXML() . "]"); //Throw exception in case of max proccessed items and handle all exceptions there $createdEntryBulkUploadResult = $this->createUploadResult($item, KalturaBulkUploadAction::ADD); if ($this->exceededMaxRecordsEachRun) { // exit if we have proccessed max num of items return; } $entry = $this->createEntryFromItem($item); //Creates the entry from the item element $this->handleTypedElement($entry, $item); //Sets the typed element values (Mix, Media, ...) $entry->creatorId = $this->data->userId; KalturaLog::debug("current entry is: " . print_r($entry, true)); $thumbAssets = array(); $flavorAssets = array(); $noParamsThumbAssets = array(); //Holds the no flavor params thumb assests $noParamsThumbResources = array(); //Holds the no flavor params resources assests $noParamsFlavorAssets = array(); //Holds the no flavor params flavor assests $noParamsFlavorResources = array(); //Holds the no flavor params flavor resources $resource = new KalturaAssetsParamsResourceContainers(); // holds all teh needed resources for the conversion $resource->resources = array(); //For each content in the item element we add a new flavor asset if (isset($item->contentAssets)) { foreach ($item->contentAssets->content as $contentElement) { $assetResource = $this->getResource($contentElement, $entry->conversionProfileId); if (!$assetResource) { continue; } $assetResourceContainer = new KalturaAssetParamsResourceContainer(); $flavorAsset = $this->getFlavorAsset($contentElement, $entry->conversionProfileId); if (is_null($flavorAsset->flavorParamsId)) { KalturaLog::debug("flavorAsset [" . print_r($flavorAsset, true) . "]"); $noParamsFlavorAssets[] = $flavorAsset; $noParamsFlavorResources[] = $assetResource; } else { KalturaLog::debug("flavorAsset->flavorParamsId [{$flavorAsset->flavorParamsId}]"); $flavorAssets[$flavorAsset->flavorParamsId] = $flavorAsset; $assetResourceContainer->assetParamsId = $flavorAsset->flavorParamsId; $assetResourceContainer->resource = $assetResource; $resource->resources[] = $assetResourceContainer; } } } //For each thumbnail in the item element we create a new thumb asset if (isset($item->thumbnails)) { foreach ($item->thumbnails->thumbnail as $thumbElement) { $assetResource = $this->getResource($thumbElement, $entry->conversionProfileId); if (!$assetResource) { continue; } $assetResourceContainer = new KalturaAssetParamsResourceContainer(); $thumbAsset = $this->getThumbAsset($thumbElement, $entry->conversionProfileId); if (is_null($thumbAsset->thumbParamsId)) { KalturaLog::debug("thumbAsset [" . print_r($thumbAsset, true) . "]"); $noParamsThumbAssets[] = $thumbAsset; $noParamsThumbResources[] = $assetResource; } else { KalturaLog::debug("thumbAsset->thumbParamsId [{$thumbAsset->thumbParamsId}]"); $thumbAssets[$thumbAsset->thumbParamsId] = $thumbAsset; $assetResourceContainer->assetParamsId = $thumbAsset->thumbParamsId; $assetResourceContainer->resource = $assetResource; $resource->resources[] = $assetResourceContainer; } } } if (!count($resource->resources)) { if (count($noParamsFlavorResources) == 1) { $resource = reset($noParamsFlavorResources); $noParamsFlavorResources = array(); $noParamsFlavorAssets = array(); } else { $resource = null; } } $createdEntry = $this->sendItemAddData($entry, $resource, $noParamsFlavorAssets, $noParamsFlavorResources, $noParamsThumbAssets, $noParamsThumbResources); if (isset($item->categories)) { $createdEntryBulkUploadResult = $this->createCategoryAssociations($createdEntry->id, $this->implodeChildElements($item->categories), $createdEntryBulkUploadResult); } //Updates the bulk upload result for the given entry (with the status and other data) $this->updateObjectsResults(array($createdEntry), array($createdEntryBulkUploadResult)); //Adds the additional data for the flavors and thumbs $this->handleFlavorAndThumbsAdditionalData($createdEntry->id, $flavorAssets, $thumbAssets); //Handles the plugin added data $pluginsErrorResults = array(); $pluginsInstances = KalturaPluginManager::getPluginInstances('IKalturaBulkUploadXmlHandler'); foreach ($pluginsInstances as $pluginsInstance) { /* @var $pluginsInstance IKalturaBulkUploadXmlHandler */ try { $pluginsInstance->configureBulkUploadXmlHandler($this); $pluginsInstance->handleItemAdded($createdEntry, $item); } catch (Exception $e) { KBatchBase::unimpersonate(); KalturaLog::err($pluginsInstance->getContainerName() . ' failed: ' . $e->getMessage()); $pluginsErrorResults[] = $pluginsInstance->getContainerName() . ' failed: ' . $e->getMessage(); } } if (count($pluginsErrorResults)) { throw new Exception(implode(', ', $pluginsErrorResults)); } }
private function appendPlugins(DOMElement $pluginsElement) { // Add all the plugins that offer services to the list of required plugins $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaPlugin'); foreach ($pluginInstances as $pluginInstance) { if (!$this->pluginHasServices($pluginInstance)) { continue; } $pluginName = $pluginInstance->getPluginName(); if (!in_array($pluginName, $this->_requiredPlugins)) { $this->_requiredPlugins[] = $pluginName; } } // Add plugin tags to the XML $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaPlugin'); foreach ($pluginInstances as $pluginInstance) { if (!in_array($pluginInstance->getPluginName(), $this->_requiredPlugins)) { continue; } $this->appendPlugin($pluginsElement, $pluginInstance); } }
<?php define('ROOT_DIR', realpath(dirname(__FILE__) . '/../../../')); define('SPHINX_CONFIG_DIR', ROOT_DIR . '/configurations/sphinx/'); require_once ROOT_DIR . '/alpha/config/kConf.php'; require_once ROOT_DIR . '/infra/bootstrap_base.php'; require_once ROOT_DIR . '/infra/KAutoloader.php'; KAutoloader::addClassPath(KAutoloader::buildPath(KALTURA_ROOT_PATH, "vendor", "propel", "*")); KAutoloader::addClassPath(KAutoloader::buildPath(KALTURA_ROOT_PATH, "plugins", "*")); KAutoloader::setClassMapFilePath(kConf::get("cache_root_path") . '/deploy/classMap.cache'); KAutoloader::register(); $sphinxBase = SPHINX_CONFIG_DIR . 'base.conf'; $sphinxConfig = SPHINX_CONFIG_DIR . 'kaltura.conf'; if (!file_exists($sphinxBase)) { echo "Sphinx base file [{$sphinxBase}] not found\n"; exit; } copy($sphinxBase, $sphinxConfig); $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaSphinxConfiguration'); foreach ($pluginInstances as $pluginInstance) { $filePath = $pluginInstance->getSphinxConfigPath(); if ($filePath && file_exists($filePath)) { echo "Appending config file [{$filePath}]\n"; $config = file_get_contents($filePath); file_put_contents($sphinxConfig, $config, FILE_APPEND); } }
public function generateFileName($sub_type, $version = null) { self::validateFileSyncSubType($sub_type); switch ($sub_type) { case self::FILE_SYNC_BATCHJOB_SUB_TYPE_BULKUPLOAD: $ext = 'csv'; $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaBulkUpload'); foreach ($pluginInstances as $pluginInstance) { $pluginExt = $pluginInstance->getFileExtension($this->getJobSubType()); if ($pluginExt) { $ext = $pluginExt; break; } } return 'bulk_' . $this->getId() . '.' . $ext; case self::FILE_SYNC_BATCHJOB_SUB_TYPE_CONFIG: return 'config_' . $this->getId() . '.xml'; } return null; }
/** * @param array<CuePoint> $cuePoints * @return string xml */ public static function generateXml(array $cuePoints) { $schemaType = CuePointPlugin::getApiValue(CuePointSchemaType::SERVE_API); $xsdUrl = "http://" . kConf::get('cdn_host') . "/api_v3/service/schema/action/serve/type/{$schemaType}"; $scenes = new SimpleXMLElement('<scenes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="' . $xsdUrl . '" />'); $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaCuePointXmlParser'); foreach ($cuePoints as $cuePoint) { $scene = null; foreach ($pluginInstances as $pluginInstance) { $scene = $pluginInstance->generateXml($cuePoint, $scenes, $scene); } } $xmlContent = $scenes->asXML(); $xml = new KDOMDocument(); libxml_use_internal_errors(true); libxml_clear_errors(); if (!$xml->loadXML($xmlContent)) { $errorMessage = kXml::getLibXmlErrorDescription($xmlContent); throw new kCuePointException("XML is invalid:\n{$errorMessage}", kCuePointException::XML_INVALID); } $xsdPath = SchemaService::getSchemaPath($schemaType); libxml_clear_errors(); if (!$xml->schemaValidate($xsdPath)) { $errorMessage = kXml::getLibXmlErrorDescription($xmlContent); throw new kCuePointException("XML is invalid:\n{$errorMessage}", kCuePointException::XML_INVALID); } return $xmlContent; }
public function doAction(Zend_Controller_Action $action) { $action->getHelper('layout')->disableLayout(); $this->client = Infra_ClientHelper::getClient(); $eventNotificationPlugin = Kaltura_Client_EventNotification_Plugin::get($this->client); $request = $action->getRequest(); $partnerId = $this->_getParam('partner_id'); if (!$partnerId) { $partnerId = 0; } $templateId = $this->_getParam('template_id'); $cloneTemplateId = $this->_getParam('clone_template_id'); $type = null; $eventNotificationTemplate = null; $action->view->errMessage = null; $action->view->form = ''; $action->view->plugins = array(); $form = null; try { Infra_ClientHelper::impersonate($partnerId); if ($cloneTemplateId) { if ($partnerId) { $eventNotificationTemplate = $eventNotificationPlugin->eventNotificationTemplate->cloneAction($cloneTemplateId); $templateId = $eventNotificationTemplate->id; $type = $eventNotificationTemplate->type; } else { $action->view->errMessage = "Partner ID must be defined."; $templateId = null; Infra_ClientHelper::unimpersonate(); return; } } elseif ($templateId) { $eventNotificationTemplate = $eventNotificationPlugin->eventNotificationTemplate->get($templateId); $type = $eventNotificationTemplate->type; } else { $type = $this->_getParam('type'); } $form = KalturaPluginManager::loadObject('Form_EventNotificationTemplateConfiguration', $type, array($partnerId, $type)); /* @var $form Form_EventNotificationTemplateConfiguration */ $templateClass = KalturaPluginManager::getObjectClass('Kaltura_Client_EventNotification_Type_EventNotificationTemplate', $type); KalturaLog::debug("template class [{$templateClass}]"); if (!$form || !$form instanceof Form_EventNotificationTemplateConfiguration) { $action->view->errMessage = "Template form not found for type [{$type}]"; return; } $urlParams = array('controller' => 'plugin', 'action' => 'EventNotificationTemplateConfigureAction', 'clone_template_id' => null); if ($templateId) { $urlParams['template_id'] = $templateId; } $form->setAction($action->view->url($urlParams)); if ($templateId) { if ($request->isPost()) { if ($form->isValid($request->getPost())) { $form->populate($request->getPost()); $eventNotificationTemplate = $form->getObject($templateClass, $request->getPost()); $form->resetUnUpdatebleAttributes($eventNotificationTemplate); $eventNotificationTemplate = $eventNotificationPlugin->eventNotificationTemplate->update($templateId, $eventNotificationTemplate); $form->setAttrib('class', 'valid'); $action->view->formValid = true; } else { $form->populate($request->getPost()); $eventNotificationTemplate = $form->getObject($templateClass, $request->getPost()); } $form->finit($eventNotificationTemplate); } else { $form->populateFromObject($eventNotificationTemplate); } } else { if ($request->isPost() && $form->isValid($request->getPost())) { $form->populate($request->getPost()); $eventNotificationTemplate = $form->getObject($templateClass, $request->getPost()); $eventNotificationTemplate->partnerId = null; $eventNotificationTemplate = $eventNotificationPlugin->eventNotificationTemplate->add($eventNotificationTemplate); $form->setAttrib('class', 'valid'); $action->view->formValid = true; } else { $form->populate($request->getPost()); $eventNotificationTemplate = $form->getObject($templateClass, $request->getPost()); } $form->finit($eventNotificationTemplate); } } catch (Exception $e) { KalturaLog::err($e->getMessage() . "\n" . $e->getTraceAsString()); $action->view->errMessage = $e->getMessage(); if ($form) { $form->populate($request->getPost()); $eventNotificationTemplate = $form->getObject($templateClass, $request->getPost()); } } Infra_ClientHelper::unimpersonate(); $action->view->form = $form; $action->view->templateId = $templateId; $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaApplicationPartialView'); KalturaLog::debug("plugin instances [" . count($pluginInstances) . "]"); foreach ($pluginInstances as $pluginInstance) { $entryInvestigatePlugins = $pluginInstance->getApplicationPartialViews('plugin', get_class($this)); if (!$entryInvestigatePlugins) { continue; } foreach ($entryInvestigatePlugins as $plugin) { /* @var $plugin Kaltura_View_Helper_PartialViewPlugin */ $plugin->plug($action->view); } } }
public static function getPluginSchema($type) { $coreType = kPluginableEnumsManager::apiToCore('SchemaType', $type); if ($coreType != self::getSchemaTypeCoreValue(DropFolderXmlSchemaType::DROP_FOLDER_XML)) { return null; } $xmlApiType = BulkUploadXmlPlugin::getApiValue(XmlSchemaType::BULK_UPLOAD_XML); $baseXsdElement = BulkUploadXmlPlugin::getPluginSchema($xmlApiType); $xsd = '<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">'; foreach ($baseXsdElement->children('http://www.w3.org/2001/XMLSchema') as $element) { /* @var $element SimpleXMLElement */ $xsd .= ' ' . $element->asXML(); } $xsd .= ' <xs:complexType name="T_dropFolderFileContentResource"> <xs:choice minOccurs="0" maxOccurs="1"> <xs:element name="fileSize" type="xs:long" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation> The expected size of the file<br/> Used for validation </xs:documentation> </xs:annotation> </xs:element> <xs:element name="fileChecksum" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation> The expected checksum of the file<br/> md5 or sha1<br/> Used for validation </xs:documentation> </xs:annotation> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="type" use="optional" default="md5"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="md5"/> <xs:enumeration value="sha1"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:choice> <xs:attribute name="filePath" use="required"> <xs:annotation> <xs:documentation> The name of the file in the drop folder </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="500"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="dropFolderFileId" type="xs:string" use="optional"> <xs:annotation> <xs:documentation> The id of the drop folder file object </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> <xs:element name="dropFolderFileContentResource" type="T_dropFolderFileContentResource" substitutionGroup="contentResource-extension"> <xs:annotation> <xs:documentation>Specifies that content file location is within a Kaltura defined drop folder</xs:documentation> <xs:appinfo> <example title="Using file size validation example"> <item> <action>add</action> <type>1</type> <media>...</media> <content>...</content> <thumbnail> <dropFolderFileContentResource filePath="file.jpg"> <fileSize>453453344</fileSize> </dropFolderFileContentResource> </thumbnail> </item> </example> <example title="Using checksum validation example"> <item> <action>add</action> <type>1</type> <media>...</media> <content>...</content> <thumbnail> <dropFolderFileContentResource filePath="file.jpg"> <fileChecksum type="md5">sdfsjodf90sfsdfzfasdfwrg34</fileChecksum> </dropFolderFileContentResource> </thumbnail> </item> </example> </xs:appinfo> </xs:annotation> </xs:element> '; $schemaContributors = KalturaPluginManager::getPluginInstances('IKalturaSchemaContributor'); foreach ($schemaContributors as $key => $schemaContributor) { /* @var $schemaContributor IKalturaSchemaContributor */ $elements = $schemaContributor->contributeToSchema($xmlApiType); if ($elements) { $xsd .= $elements; } } $xsd .= ' </xs:schema>'; return new SimpleXMLElement($xsd); }
/** * @param KalturaSchemaType $type * @return string filePath */ public static function getSchemaPath($type) { $cacheXsdFile = kConf::get("cache_root_path") . "/{$type}.xsd"; if (file_exists($cacheXsdFile)) { return realpath($cacheXsdFile); } $xsdFile = fopen($cacheXsdFile, 'w'); $elementsXSD = ''; $baseXsdElement = new SimpleXMLElement('<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"/>'); if ($type == SchemaType::SYNDICATION) { $baseXsdElement = new SimpleXMLElement(file_get_contents(kConf::get("syndication_core_xsd_path"))); } else { $plugin = kPluginableEnumsManager::getPlugin($type); if ($plugin instanceof IKalturaSchemaDefiner) { KalturaLog::debug("Found plugin [" . get_class($plugin) . "]"); $baseXsdElement = $plugin->getPluginSchema($type); } } if (!$baseXsdElement instanceof SimpleXMLElement) { $baseXsdElement = new SimpleXMLElement('<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"/>'); } $version = '1.0'; if ($baseXsdElement['version']) { $version = $baseXsdElement['version']; } fwrite($xsdFile, "<xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" version=\"{$version}\">"); foreach ($baseXsdElement->children('http://www.w3.org/2001/XMLSchema') as $element) { /* @var $element SimpleXMLElement */ $xsd = $element->asXML(); $elementsXSD .= $xsd; fwrite($xsdFile, ' ' . $xsd); } $schemaContributors = KalturaPluginManager::getPluginInstances('IKalturaSchemaContributor'); foreach ($schemaContributors as $key => $schemaContributor) { /* @var $schemaContributor IKalturaSchemaContributor */ $elements = $schemaContributor->contributeToSchema($type); if ($elements) { $elementsXSD .= $elements; fwrite($xsdFile, $elements); } } fwrite($xsdFile, ' <!-- Kaltura enum types --> '); $enumClasses = array(); $matches = null; if (preg_match_all('/type="(Kaltura[^"]+)"/', $elementsXSD, $matches)) { $enumClasses = $matches[1]; } $enumTypes = array(); foreach ($enumClasses as $class) { $classTypeReflector = KalturaTypeReflectorCacher::get($class); if ($classTypeReflector) { self::loadClassRecursively($classTypeReflector, $enumTypes); } } foreach ($enumTypes as $class => $classTypeReflector) { if (!is_subclass_of($class, 'KalturaEnum') && !is_subclass_of($class, 'KalturaStringEnum')) { // class must be enum continue; } $xsdType = 'int'; if ($classTypeReflector->isStringEnum()) { $xsdType = 'string'; } $xsd = ' <xs:simpleType name="' . $class . '"> <xs:annotation><xs:documentation>http://' . kConf::get('www_host') . '/api_v3/testmeDoc/index.php?object=' . $class . '</xs:documentation></xs:annotation> <xs:restriction base="xs:' . $xsdType . '">'; $contants = $classTypeReflector->getConstants(); foreach ($contants as $contant) { $xsd .= ' <xs:enumeration value="' . $contant->getDefaultValue() . '"><xs:annotation><xs:documentation>' . $contant->getName() . '</xs:documentation></xs:annotation></xs:enumeration>'; } $xsd .= ' </xs:restriction> </xs:simpleType> '; fwrite($xsdFile, $xsd); } fwrite($xsdFile, ' </xs:schema>'); fclose($xsdFile); return realpath($cacheXsdFile); }
public function isServiceExists($serviceId) { if (array_key_exists($serviceId, $this->_servicesMap)) { return true; } if (strpos($serviceId, '_') <= 0) { return false; } $serviceId = strtolower($serviceId); list($servicePlugin, $serviceName) = explode('_', $serviceId); $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaServices'); if (!isset($pluginInstances[$servicePlugin])) { return false; } $pluginInstance = $pluginInstances[$servicePlugin]; $servicesMap = $pluginInstance->getServicesMap(); KalturaLog::debug(print_r($servicesMap, true)); foreach ($servicesMap as $name => $class) { if (strtolower($name) == $serviceName) { $class = $servicesMap[$name]; KalturaServicesMap::addService($serviceId, $class); $this->_servicesMap = KalturaServicesMap::getMap(); return true; } } return false; }
protected function handleResults(array $results, array $items) { if (count($results) != count($this->operations) || count($this->operations) != count($items)) { KalturaLog::err("results count [" . count($results) . "] operations count [" . count($this->operations) . "] items count [" . count($items) . "]"); return; } $pluginsInstances = KalturaPluginManager::getPluginInstances('IKalturaBulkUploadXmlHandler'); foreach ($results as $index => $cuePoint) { if (is_array($cuePoint) && isset($cuePoint['code'])) { throw new Exception($cuePoint['message']); } foreach ($pluginsInstances as $pluginsInstance) { /* @var $pluginsInstance IKalturaBulkUploadXmlHandler */ $pluginsInstance->configureBulkUploadXmlHandler($this->xmlBulkUploadEngine); if ($this->operations[$index] == KalturaBulkUploadAction::ADD) { $pluginsInstance->handleItemAdded($cuePoint, $items[$index]); } elseif ($this->operations[$index] == KalturaBulkUploadAction::UPDATE) { $pluginsInstance->handleItemUpdated($cuePoint, $items[$index]); } elseif ($this->operations[$index] == KalturaBulkUploadAction::DELETE) { $pluginsInstance->handleItemDeleted($cuePoint, $items[$index]); } } } }
private static function executeQueryByType($partner_id, $report_type, $report_flavor, reportsInputFilter $input_filter, $page_size, $page_index, $order_by, $object_ids = null, $offset = null) { $start = microtime(true); try { $add_search_text = false; $has_object_ids = false; if ($input_filter instanceof endUserReportsInputFilter) { $has_object_ids = $input_filter->categories; } $has_object_ids = $has_object_ids || $object_ids; if (is_numeric($report_type)) { $file_path = myReportsSqlFileMgr::getSqlFilePath(self::$type_map[$report_type], self::$flavor_map[$report_flavor], $add_search_text, $has_object_ids ? true : false, $input_filter); } else { if (strpos($report_type, ".") === 0 || strpos($report_type, "/") === 0 || strpos($report_type, "http") === 0) { throw new kCoreException("Will not search for invalid report_type [{$report_type}", kCoreException::INVALID_QUERY); } $file_path = dirname(__FILE__) . "/" . $report_type . ".sql"; } $sql_raw_content = file_get_contents($file_path); if (!$sql_raw_content) { $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaReportProvider'); foreach ($pluginInstances as $pluginInstance) { $res = $pluginInstance->getReportResult($partner_id, $report_type, $report_flavor, $object_ids, $order_by); if (!is_null($res)) { return $res; } } throw new kCoreException("Cannot find sql for [{$report_type}] [{$report_flavor}] at [{$file_path}]", kCoreException::QUERY_NOT_FOUND); } $entryFilter = new entryFilter(); $entryFilter->setPartnerSearchScope($partner_id); $shouldSelectFromSearchEngine = false; $category_ids_clause = "1=1"; if ($input_filter instanceof endUserReportsInputFilter) { if ($input_filter->playbackContext || $input_filter->ancestorPlaybackContext) { $categoryFilter = new categoryFilter(); if ($input_filter->playbackContext && $input_filter->ancestorPlaybackContext) { $categoryIds = category::CATEGORY_ID_THAT_DOES_NOT_EXIST; } else { if ($input_filter->playbackContext) { $categoryFilter->set("_in_full_name", $input_filter->playbackContext); } if ($input_filter->ancestorPlaybackContext) { $categoryFilter->set("_matchor_likex_full_name", $input_filter->ancestorPlaybackContext); } $c = KalturaCriteria::create(categoryPeer::OM_CLASS); $categoryFilter->attachToCriteria($c); $c->applyFilters(); $categoryIdsFromDB = $c->getFetchedIds(); if (count($categoryIdsFromDB)) { $categoryIds = implode(",", $categoryIdsFromDB); } else { $categoryIds = category::CATEGORY_ID_THAT_DOES_NOT_EXIST; } } $category_ids_clause = "ev.context_id in ( {$categoryIds} )"; } } if ($input_filter->categories) { $entryFilter->set("_matchor_categories", $input_filter->categories); $shouldSelectFromSearchEngine = true; } if ($input_filter->keywords) { if ($input_filter->search_in_tags) { $entryFilter->set("_free_text", $input_filter->keywords); } else { $entryFilter->set("_like_admin_tags", $input_filter->keywords); } $shouldSelectFromSearchEngine = true; } $entryIdsFromDB = array(); if ($shouldSelectFromSearchEngine) { $c = KalturaCriteria::create(entryPeer::OM_CLASS); $entryFilter->attachToCriteria($c); $c->applyFilters(); $entryIdsFromDB = $c->getFetchedIds(); if ($c->getRecordsCount() > count($entryIdsFromDB)) { throw new kCoreException('Search is to general', kCoreException::SEARCH_TOO_GENERAL); } if (!count($entryIdsFromDB)) { $entryIdsFromDB[] = entry::ENTRY_ID_THAT_DOES_NOT_EXIST; } } $obj_ids_clause = null; if ($object_ids) { //the object ids are not supposed to include single quotes - if they do have them - remove them $object_ids = str_replace("'", '', $object_ids); // quote all the objects with SINGLE-QUOTES $object_ids_str = "'" . str_replace(",", "','", $object_ids) . "'"; if ($report_type == self::REPORT_TYPE_CONTENT_CONTRIBUTIONS) { $obj_ids_clause = "en.entry_media_source_id in ( {$object_ids_str})"; } else { if ($report_type == self::REPORT_TYPE_TOP_SYNDICATION) { $obj_ids_clause = "ev.domain_id in ( {$object_ids_str})"; } else { if ($report_type == self::REPORT_TYPE_MAP_OVERLAY) { $obj_ids_clause = "ev.country_id in ( {$object_ids_str})"; } else { if ($report_type == self::REPORT_TYPE_ADMIN_CONSOLE) { $obj_ids_clause = "dim_partner.partner_id in ( {$object_ids_str})"; } else { if ($report_type == self::REPORT_TYPE_PARTNER_USAGE || $report_type == self::REPORT_TYPE_VAR_USAGE || $report_type == self::REPORT_TYPE_PEAK_STORAGE) { $obj_ids_clause = "partner_id in ({$object_ids_str})"; } else { if ($report_type == self::REPORT_TYPE_PLATFORMS) { $obj_ids_clause = "device in ({$object_ids_str})"; } else { $objectIds = explode(',', $object_ids); $entryIds = "'" . implode("','", array_merge($objectIds, $entryIdsFromDB)) . "'"; $obj_ids_clause = "ev.entry_id in ( {$entryIds} )"; } } } } } } } elseif (count($entryIdsFromDB)) { $entryIds = "'" . implode("','", $entryIdsFromDB) . "'"; $obj_ids_clause = "ev.entry_id in ( {$entryIds} )"; } if ($input_filter instanceof endUserReportsInputFilter && $input_filter->userIds != null && ($report_type == self::REPORT_TYPE_USER_USAGE || $report_type == self::REPORT_TYPE_SPECIFIC_USER_USAGE)) { $userFilter = new kuserFilter(); $userFilter->set("_in_puser_id", $input_filter->userIds); $c = KalturaCriteria::create(kuserPeer::OM_CLASS); $userFilter->attachToCriteria($c); $c->applyFilters(); $userIdsFromDB = $c->getFetchedIds(); if (count($userIdsFromDB)) { $kuserIds = implode(",", $userIdsFromDB); } else { $kuserIds = kuser::KUSER_ID_THAT_DOES_NOT_EXIST; } $obj_ids_clause = "u.kuser_id in ( {$kuserIds} )"; } if (is_numeric($report_type)) { $order_by = self::getOrderBy(self::$type_map[$report_type], $order_by); } $query = self::getReplacedSql($sql_raw_content, $partner_id, $input_filter, $page_size, $page_index, $order_by, $obj_ids_clause, $category_ids_clause, $offset); if (is_numeric($report_type)) { $query_header = "/* -- " . self::$type_map[$report_type] . " " . self::$flavor_map[$report_flavor] . " -- */\n"; } else { $query_header = "/* -- " . $report_type . " -- */\n"; } KalturaLog::log("\n{$query_header}{$query}"); $res = self::executeQuery($query); $end = microtime(true); KalturaLog::log("Query took [" . ($end - $start) . "]"); return $res; } catch (Exception $ex) { KalturaLog::log($ex->getMessage()); // TODO - write proeper error if ($ex->getCode() == kCoreException::SEARCH_TOO_GENERAL) { } throw $ex; throw new Exception("Error while processing report for [{$partner_id} , {$report_type} , {$report_flavor}]"); } }
function generate() { parent::generate(); $xpath = new DOMXPath($this->_doc); // enumes $this->appendLine('<?php'); if ($this->generateDocs) { $this->appendLine('/**'); $this->appendLine(" * @package {$this->package}"); $this->appendLine(" * @subpackage {$this->subpackage}"); $this->appendLine(' */'); } $this->appendLine('require_once(dirname(__FILE__) . "/KalturaClientBase.php");'); $this->appendLine(''); $enumNodes = $xpath->query("/xml/enums/enum"); foreach ($enumNodes as $enumNode) { if (!$enumNode->hasAttribute('plugin')) { $this->writeEnum($enumNode); } } $this->addFile("KalturaEnums.php", $this->getTextBlock()); // classes $this->startNewTextBlock(); $this->appendLine('<?php'); if ($this->generateDocs) { $this->appendLine('/**'); $this->appendLine(" * @package {$this->package}"); $this->appendLine(" * @subpackage {$this->subpackage}"); $this->appendLine(' */'); } $this->appendLine('require_once(dirname(__FILE__) . "/KalturaClientBase.php");'); $this->appendLine(''); $classNodes = $xpath->query("/xml/classes/class"); foreach ($classNodes as $classNode) { if (!$classNode->hasAttribute('plugin')) { $this->writeClass($classNode); } } $this->addFile("KalturaTypes.php", $this->getTextBlock()); // services $this->startNewTextBlock(); $this->appendLine('<?php'); if ($this->generateDocs) { $this->appendLine('/**'); $this->appendLine(" * @package {$this->package}"); $this->appendLine(" * @subpackage {$this->subpackage}"); $this->appendLine(' */'); } $this->appendLine('require_once(dirname(__FILE__) . "/KalturaClientBase.php");'); $this->appendLine('require_once(dirname(__FILE__) . "/KalturaEnums.php");'); $this->appendLine('require_once(dirname(__FILE__) . "/KalturaTypes.php");'); $this->appendLine(''); $serviceNodes = $xpath->query("/xml/services/service"); foreach ($serviceNodes as $serviceNode) { if (!$serviceNode->hasAttribute('plugin')) { $this->writeService($serviceNode); } } $this->appendLine(); $configurationNodes = $xpath->query("/xml/configurations/*"); $this->writeMainClient($serviceNodes, $configurationNodes); $this->appendLine(); $this->addFile("KalturaClient.php", $this->getTextBlock()); // plugins $plugins = KalturaPluginManager::getPluginInstances(); foreach ($plugins as $plugin) { $this->writePlugin($plugin); } }