protected function addMetadataProfile($enableNone = false) { $metadataProfiles = null; try { $metadataProfileFilter = new KalturaMetadataProfileFilter(); $metadataProfileFilter->metadataObjectTypeEqual = KalturaMetadataObjectType::ENTRY; $client = Kaltura_ClientHelper::getClient(); Kaltura_ClientHelper::impersonate($this->partnerId); $metadataProfileList = $client->metadataProfile->listAction($metadataProfileFilter); Kaltura_ClientHelper::unimpersonate(); $metadataProfiles = $metadataProfileList->objects; } catch (KalturaClientException $e) { $metadataProfiles = null; } if (count($metadataProfiles)) { $this->addElement('select', 'metadata_profile_id', array('label' => 'Metadata Profile ID:', 'filters' => array('StringTrim'))); $element = $this->getElement('metadata_profile_id'); if ($enableNone) { $element->addMultiOption('', 'None'); } foreach ($metadataProfiles as $metadataProfile) { $element->addMultiOption($metadataProfile->id, $metadataProfile->name); } } else { $this->addElement('hidden', 'metadata_profile_id', array('value' => 0)); } }
/** * * @param int $offset * @param int $itemCountPerPage */ protected function callService($offset, $itemCountPerPage) { $client = Kaltura_ClientHelper::getClient(); if ($this->impersonatedPartnerId) { Kaltura_ClientHelper::impersonate($this->impersonatedPartnerId); } $pager = new KalturaFilterPager(); $pager->pageIndex = (int) ($offset / $itemCountPerPage) + 1; $pager->pageSize = $itemCountPerPage; $service = $this->service; $action = $this->action; $params = $this->args; $params[] = $pager; $response = call_user_func_array(array($client->{$service}, $action), $params); $this->totalCount = $response->totalCount; return $response->objects; }
public function getDataArray($entryId, $partnerId) { $client = Kaltura_ClientHelper::getClient(); if (!$client) { $errors[] = 'init client failed'; return; } $filter = new KalturaEntryDistributionFilter(); $filter->entryIdEqual = $entryId; $distributions = array(); $distributionFileSyncs = array(); $errDescription = null; try { Kaltura_ClientHelper::impersonate($partnerId); $entryDistributionList = $client->entryDistribution->listAction($filter); Kaltura_ClientHelper::unimpersonate(); $distributions = $entryDistributionList->objects; } catch (Exception $e) { $errDescription = $e->getMessage(); } $distributionIds = array(); foreach ($distributions as $distribution) { $distributionFileSyncs[$distribution->id] = array(); $distributionIds[] = $distribution->id; } if (count($distributionIds)) { try { $filter = new KalturaFileSyncFilter(); $filter->fileObjectTypeEqual = KalturaFileSyncObjectType::ENTRY_DISTRIBUTION; $filter->objectIdIn = implode(',', $distributionIds); $pager = new KalturaFilterPager(); $pager->pageSize = 100; $fileSyncList = $client->fileSync->listAction($filter, $pager); $fileSyncs = $fileSyncList->objects; foreach ($fileSyncs as $fileSync) { $distributionFileSyncs[$fileSync->objectId][] = $fileSync; } } catch (Exception $e) { $errDescription = $e->getMessage(); } } return array('distributions' => $distributions, 'distributionFileSyncs' => $distributionFileSyncs, 'errDescription' => $errDescription); }
public function doAction(Zend_Controller_Action $action) { $action->getHelper('layout')->disableLayout(); $providerId = $this->_getParam('provider_id'); $this->client = Kaltura_ClientHelper::getClient(); $form = new Form_GenericProviderConfiguration(); $form->setAction($action->view->url(array('controller' => 'plugin', 'action' => 'GenericDistributionProviderConfigureAction'))); $request = $action->getRequest(); $pager = new KalturaFilterPager(); $pager->pageSize = 100; $flavorParamsResponse = $this->client->flavorParams->listAction(null, $pager); $action->view->errMessage = null; $action->view->form = ''; try { if ($providerId) { if ($request->isPost()) { $form->populate($request->getPost()); $genericDistributionProvider = $form->getObject("KalturaGenericDistributionProvider", $request->getPost()); $genericDistributionProvider->partnerId = null; $this->client->genericDistributionProvider->update($providerId, $genericDistributionProvider); $this->saveProviderActions($providerId, $form); } else { $genericDistributionProvider = $this->client->genericDistributionProvider->get($providerId); $form->populateFromObject($genericDistributionProvider); $optionalFlavorParamsIds = array(); $requiredFlavorParamsIds = array(); if (!is_null($genericDistributionProvider->optionalFlavorParamsIds) && strlen($genericDistributionProvider->optionalFlavorParamsIds)) { $optionalFlavorParamsIds = explode(',', $genericDistributionProvider->optionalFlavorParamsIds); } if (!is_null($genericDistributionProvider->requiredFlavorParamsIds) && strlen($genericDistributionProvider->requiredFlavorParamsIds)) { $requiredFlavorParamsIds = explode(',', $genericDistributionProvider->requiredFlavorParamsIds); } $form->addFlavorParamsFields($flavorParamsResponse, $optionalFlavorParamsIds, $requiredFlavorParamsIds); foreach ($genericDistributionProvider->requiredThumbDimensions as $dimensions) { $form->addThumbDimensions($dimensions, true); } foreach ($genericDistributionProvider->optionalThumbDimensions as $dimensions) { $form->addThumbDimensions($dimensions, false); } $form->addThumbDimensionsForm(); $form->addProviderActions(); $form->populateActions($genericDistributionProvider); $action->view->form = $form; } } else { if ($request->isPost()) { $form->populate($request->getPost()); $genericDistributionProvider = $form->getObject("KalturaGenericDistributionProvider", $request->getPost()); if (!$genericDistributionProvider->partnerId) { $genericDistributionProvider->partnerId = 0; } Kaltura_ClientHelper::impersonate($genericDistributionProvider->partnerId); $genericDistributionProvider->partnerId = null; $genericDistributionProvider = $this->client->genericDistributionProvider->add($genericDistributionProvider); $this->saveProviderActions($genericDistributionProvider->id, $form); Kaltura_ClientHelper::unimpersonate(); } else { $form->addFlavorParamsFields($flavorParamsResponse); $form->addThumbDimensionsForm(); $form->addProviderActions(); $action->view->form = $form; } } } catch (Exception $e) { KalturaLog::err($e->getMessage() . "\n" . $e->getTraceAsString()); $action->view->errMessage = $e->getMessage(); } }
protected function addProviderElements() { $element = new Zend_Form_Element_Hidden('providerElements'); $element->setLabel('Generic Provider Configuration'); $element->setDecorators(array('ViewHelper', array('Label', array('placement' => 'append')), array('HtmlTag', array('tag' => 'b')))); $this->addElements(array($element)); $client = Kaltura_ClientHelper::getClient(); Kaltura_ClientHelper::impersonate($this->partnerId); $genericDistributionProviderList = $client->genericDistributionProvider->listAction(); Kaltura_ClientHelper::unimpersonate(); $this->addElement('select', 'generic_provider_id', array('label' => 'Provider', 'decorators' => array('ViewHelper', array('Label', array('placement' => 'prepend')), array('HtmlTag', array('tag' => 'dt'))))); $element = $this->getElement('generic_provider_id'); if ($genericDistributionProviderList && $genericDistributionProviderList->totalCount) { foreach ($genericDistributionProviderList->objects as $genericDistributionProvider) { $element->addMultiOption($genericDistributionProvider->id, $genericDistributionProvider->name); } } $this->addEntryFields(); $this->addMetadataFields(); }
public function configureStorageAction() { $this->_helper->layout->disableLayout(); $storageId = $this->_getParam('storageId'); $editMode = false; if ($storageId) { $editMode = true; } $client = Kaltura_ClientHelper::getClient(); $form = new Form_Partner_StorageConfiguration(); Form_Partner_StorageHelper::addProtocolsToForm($form); Form_Partner_StorageHelper::addPathManagersToForm($form); Form_Partner_StorageHelper::addUrlManagersToForm($form); Form_Partner_StorageHelper::addTriggersToForm($form); $request = $this->getRequest(); if (!$editMode) { $flavorParamsResponse = $client->flavorParams->listAction(); $form->addFlavorParamsFields($flavorParamsResponse); } else { $storage = $client->storageProfile->get($storageId); Kaltura_ClientHelper::impersonate($storage->partnerId); $flavorParamsResponse = $client->flavorParams->listAction(); Kaltura_ClientHelper::unimpersonate(); $flavorParamsIds = array(); if ($storage->flavorParamsIds) { $flavorParamsIds = explode(',', $storage->flavorParamsIds); } $form->getElement('partnerId')->setAttrib('readonly', true); $form->addFlavorParamsFields($flavorParamsResponse, $flavorParamsIds); if (!$request->isPost()) { $form->populateFromObject($storage, false); } } $this->view->formValid = true; if ($request->isPost()) { $request = $this->getRequest(); $formData = $request->getPost(); if ($form->isValid($formData)) { KalturaLog::log('Request: ' . print_r($request->getPost(), true)); $form->populate($request->getPost()); $storage = $form->getObject("KalturaStorageProfile", $request->getPost(), false, true); $flavorParams = array(); foreach ($flavorParamsResponse->objects as $flavorParamsItem) { if ($this->_getParam('flavorParamsId_' . $flavorParamsItem->id, false)) { $flavorParams[] = $flavorParamsItem->id; } } if (count($flavorParams)) { $storage->flavorParamsIds = implode(',', $flavorParams); } else { $storage->flavorParamsIds = ''; } KalturaLog::log('Storage: ' . print_r($storage, true)); Kaltura_ClientHelper::impersonate($storage->partnerId); $storage->partnerId = null; if (!$editMode) { $client->storageProfile->add($storage); } else { $client->storageProfile->update($storageId, $storage); } } else { $this->view->formValid = false; $form->populate($formData); } } $this->view->form = $form; }
public function doAction(Zend_Controller_Action $action) { $action->getHelper('layout')->disableLayout(); $this->client = Kaltura_ClientHelper::getClient(); $request = $action->getRequest(); $profileId = $this->_getParam('profile_id'); $providerType = null; $partnerId = null; $distributionProfile = null; $action->view->errMessage = null; $action->view->form = ''; try { if ($profileId) { $distributionProfile = $this->client->distributionProfile->get($profileId); $providerType = $distributionProfile->providerType; $partnerId = $distributionProfile->partnerId; } else { $providerType = $this->_getParam('provider_type'); $partnerId = $this->_getParam('partner_id'); } $form = null; $profileClass = 'KalturaDistributionProfile'; if ($providerType == KalturaDistributionProviderType::GENERIC) { $form = new Form_GenericProviderProfileConfiguration($partnerId, $providerType); $profileClass = 'KalturaGenericDistributionProfile'; } elseif ($providerType == KalturaDistributionProviderType::SYNDICATION) { $form = new Form_SyndicationProviderProfileConfiguration($partnerId, $providerType); $profileClass = 'KalturaSyndicationDistributionProfile'; } else { $form = KalturaPluginManager::loadObject('Form_ProviderProfileConfiguration', $providerType, array($partnerId, $providerType)); $profileClass = KalturaPluginManager::getObjectClass('KalturaDistributionProfile', $providerType); } if (!$form) { $action->view->errMessage = "Profile form not found for provider [{$providerType}]"; return; } $form->setAction($action->view->url(array('controller' => 'plugin', 'action' => 'DistributionProfileConfigureAction'))); $pager = new KalturaFilterPager(); $pager->pageSize = 100; $flavorParamsResponse = $this->client->flavorParams->listAction(null, $pager); if ($profileId) { if ($request->isPost()) { $form->populate($request->getPost()); $distributionProfile = $form->getObject($profileClass, $request->getPost()); $form->resetUnUpdatebleAttributes($distributionProfile); $distributionProfile = $this->client->distributionProfile->update($profileId, $distributionProfile); $form->saveProviderAdditionalObjects($distributionProfile); $form->setAttrib('class', 'valid'); } else { $form->populateFromObject($distributionProfile); $optionalFlavorParamsIds = array(); $requiredFlavorParamsIds = array(); if (!is_null($distributionProfile->optionalFlavorParamsIds) && strlen($distributionProfile->optionalFlavorParamsIds)) { $optionalFlavorParamsIds = explode(',', $distributionProfile->optionalFlavorParamsIds); } if (!is_null($distributionProfile->requiredFlavorParamsIds) && strlen($distributionProfile->requiredFlavorParamsIds)) { $requiredFlavorParamsIds = explode(',', $distributionProfile->requiredFlavorParamsIds); } $form->addFlavorParamsFields($flavorParamsResponse, $optionalFlavorParamsIds, $requiredFlavorParamsIds); foreach ($distributionProfile->requiredThumbDimensions as $dimensions) { $form->addThumbDimensions($dimensions, true); } foreach ($distributionProfile->optionalThumbDimensions as $dimensions) { $form->addThumbDimensions($dimensions, false); } $form->addThumbDimensionsForm(); } $action->view->form = $form; } else { if ($request->isPost()) { $form->populate($request->getPost()); $distributionProfile = $form->getObject($profileClass, $request->getPost()); if (!$distributionProfile->partnerId) { $distributionProfile->partnerId = 0; } Kaltura_ClientHelper::impersonate($distributionProfile->partnerId); $distributionProfile->partnerId = null; $distributionProfile = $this->client->distributionProfile->add($distributionProfile); Kaltura_ClientHelper::unimpersonate(); $form->saveProviderAdditionalObjects($distributionProfile); $form->setAttrib('class', 'valid'); } else { $form->addFlavorParamsFields($flavorParamsResponse); $form->addThumbDimensionsForm(); } $action->view->form = $form; } } catch (Exception $e) { KalturaLog::err($e->getMessage() . "\n" . $e->getTraceAsString()); $action->view->errMessage = $e->getMessage(); } }
public function entryInvestigationAction() { $request = $this->getRequest(); $this->view->errors = array(); $this->view->investigateData = null; $this->view->enableActions = false; $action = $this->view->url(array('controller' => 'batch', 'action' => 'entry-investigation'), null, true); $this->view->searchEntryForm = new Form_Batch_SearchEntry(); $this->view->searchEntryForm->populate($request->getParams()); $this->view->searchEntryForm->setAction($action); $submitAction = $this->view->searchEntryForm->getElement('submitAction'); $submitAction->setValue(''); if (Kaltura_Support::isAdminEnabled()) { $upload = new Zend_File_Transfer_Adapter_Http(); $files = $upload->getFileInfo(); if (count($files) && isset($files['entryFile']) && $files['entryFile']['size']) { $file = $files['entryFile']; $investigateData = unserialize(base64_decode(file_get_contents($file['tmp_name']))); $entryIdField = $this->view->searchEntryForm->getElement('entryId'); $entryIdField->setValue($investigateData->entry->id); $this->view->investigateData = $investigateData; $this->view->enableActions = false; return; } } $entryId = $request->getParam('entryId', false); if (!$entryId) { return; } $client = Kaltura_ClientHelper::getClient(); if (!$client) { $this->view->errors[] = 'init client failed'; return; } if ($request->getParam('searchType') == 'by-flavor-asset-id') { try { // $entryId is actually flavor id in this case $entry = $client->entryAdmin->getByFlavorId($entryId); } catch (Exception $e) { $this->view->errors[] = 'Flavor asset not found: ' . $e->getMessage(); return; } $entryId = $entry->id; } $submitAction = $request->getParam('submitAction', false); if ($submitAction && strlen($submitAction)) { $partnerId = $request->getParam('partnerId', 0); Kaltura_ClientHelper::impersonate($partnerId); if ($submitAction == 'retry') { $jobId = $request->getParam('actionJobId', 0); $jobType = $request->getParam('actionJobType', 0); $client->jobs->retryJob($jobId, $jobType); } if ($submitAction == 'reconvertEntry') { $client->jobs->addConvertProfileJob($entryId); } if ($submitAction == 'reconvert') { $flavorAssetId = $request->getParam('actionFlavorAssetId', 0); $client->flavorAsset->reconvert($flavorAssetId); } if ($submitAction == 'regenerate') { $thumbAssetId = $request->getParam('actionFlavorAssetId', 0); $client->thumbAsset->regenerate($thumbAssetId); } Kaltura_ClientHelper::unimpersonate(); } $this->view->investigateData = $this->getEntryInvestigationData($entryId, $this->view->errors); $this->view->enableActions = true; $partnerId = $this->view->investigateData->entry->partnerId; $this->view->plugins = array(); $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaAdminConsoleEntryInvestigate'); foreach ($pluginInstances as $pluginInstance) { $entryInvestigatePlugins = $pluginInstance->getEntryInvestigatePlugins(); if (!$entryInvestigatePlugins) { continue; } foreach ($entryInvestigatePlugins as $plugin) { $this->view->addBasePath($plugin->getTemplatePath()); $this->view->plugins[$plugin->getPHTML()] = $plugin->getDataArray($entryId, $partnerId); } } }