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));
     }
 }
示例#2
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();
 }
示例#6
0
 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();
     }
 }
示例#8
0
 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);
         }
     }
 }