You are here

function kaltura_installation_form_submit in Kaltura 6.2

File

includes/kaltura.install.inc, line 318
Contains functions for installation of Kaltura module.

Code

function kaltura_installation_form_submit($form, &$form_state) {
  global $base_url;
  $form_state['storage'] = array_merge($form_state['storage'], $form_state['values']);
  switch ($form_state['storage']['step']) {
    case 3:
      switch ($form_state['storage']['login_register']) {
        case 'login':

          // import an existing partner (was kaltura_import_ce())
          $config = Kalturahelpers::getServiceConfiguration();
          $config->partnerId = $form_state['storage']['kaltura_partner_id'];
          $config->serviceUrl = $form_state['storage']['kaltura_server_url'];
          $client = new KalturaClient($config);
          try {
            $result = $client->partner
              ->getSecrets($form_state['storage']['kaltura_partner_id'], $form_state['storage']['kaltura_login_email'], $form_state['storage']['kaltura_login_password']);
            variable_set('kaltura_partner_id', $result->id);
            variable_set('kaltura_subp_id', $result->id . "00");
            variable_set('kaltura_secret', $result->secret);
            variable_set('kaltura_admin_secret', $result->adminSecret);
            variable_set('kaltura_local_registration', 1);
            variable_set('kaltura_server_url', $form_state['storage']['kaltura_server_url']);
            variable_set('kaltura_partner_cms_email', $form_state['storage']['kaltura_login_email']);
            variable_set('kaltura_partner_cms_password', $form_state['storage']['kaltura_login_password']);
            variable_set('kaltura_partner_url2', $form_state['storage']['partner_url2']);
            variable_set('kaltura_notification_type', 0);
            kaltura_update_kaltura_partner(2, $partner->notificationUrl);

            // kaltura_create_widgets_for_partner($partner->id, $secret);
            drupal_set_message('Congratulations!  You have successfully installed the Kaltura Module and connected to your Kaltura server.');
            drupal_goto('admin/settings/kaltura/general');
          } catch (Exception $ex) {
            drupal_set_message(t('Kaltura client exception: @message', array(
              '@message' => $ex
                ->getMessage(),
            )), 'error');
          }
        case 'register':
          $partner = new KalturaPartner();
          $partner->name = $form_state['storage']['partner_site_name'];
          $partner->website = $form_state['storage']['website'];

          // would be nice to respect clean URLs here too.
          // $partner->notificationUrl = url($form_state['storage']['partner_url2'], array('query' => array('q' => 'kaltura/notification_handler'))) ;
          $partner->notificationUrl = url('kaltura/notification_handler', array(
            'absolute' => TRUE,
          ));
          $partner->adminName = $form_state['storage']['admin_name'];
          $partner->adminEmail = $form_state['storage']['admin_email'];
          $partner->description = $form_state['storage']['description'];
          $partner->commercialUse = 'non-commercial_use';

          // odd that this is hard-coded, must ask ZB
          $partner->type = 102;

          // likewise, what is this?
          $partner->appearInSearch = 1;
          $content_categories = new KalturaContentCategories();
          foreach ($form_state['storage']['site_content'] as $k => $category) {
            if ($category) {
              $categories[] = $k;
            }
          }
          $partner->contentCategories = !empty($categories) ? implode(',', $categories) : 'N/A';

          // in old form this was: $partner->adultContent = ($_REQUEST['kaltura_adult_content'] == 1)? true: false;
          // but when testing, I always found that (regardless of submitted value), the Kaltura server then
          // listed the registered account as FALSE for this value.
          $partner->adultContent = $form_state['storage']['adult_content']['yes'] ? TRUE : FALSE;
          $config = KalturaHelpers::getServiceConfiguration();
          $config->serviceUrl = $form_state['storage']['kaltura_server_url'];

          // also [#1018042]
          $config->curlTimeout = 60;
          $client = new KalturaClient($config);
          watchdog('kaltura', 'Registering Kaltura partner: <pre>!partner</pre>', array(
            '!partner' => print_r($partner, 1),
          ));
          try {
            $res = $client->partner
              ->register($partner, $form_state['storage']['cms_password']);
            if ($res->id) {
              variable_set('kaltura_partner_id', $res->id);
              variable_set('kaltura_subp_id', $res->id . '00');
              variable_set('kaltura_secret', $res->secret);
              variable_set('kaltura_admin_secret', $res->adminSecret);
              variable_set('kaltura_local_registration', 1);
              variable_set('kaltura_server_url', $form_state['storage']['kaltura_server_url']);
              variable_set('kaltura_partner_cms_email', $res->adminEmail);
              variable_set('kaltura_partner_cms_password', $res->cmsPassword);
              variable_set('kaltura_partner_url2', $form_state['storage']['partner_url2']);
              variable_set('kaltura_notification_type', 0);
              variable_set('kaltura_content_categories', $res->categories);
              kaltura_update_kaltura_partner(2, $partner->notificationUrl);
              drupal_set_message('Congratulations! You have successfully installed the Kaltura Video Module and registered for the Kaltura Partner Program.');
              drupal_goto('admin/settings/kaltura/general');
            }
            else {
              form_set_error('', t('Error registering for the Kaltura Partner Program: @message', array(
                '@message' => $res['error'][0]['desc'],
              )));
              drupal_set_message(t('Error registering for the Kaltura Partner Program: @message', array(
                '@message' => $res['error'][0]['desc'],
              )), 'error');
            }
          } catch (Exception $ex) {
            if (stristr($ex
              ->getMessage(), 'timed out after')) {
              form_set_error('', t('Registration attempt with Kaltura server timed out. You may wish to try again, or !register_manually.', array(
                '!register_manually' => l('register manually', 'http://corp.kaltura.com/about/signup'),
              )));
            }
            else {
              form_set_error('', t('Registration error: @message', array(
                '@message' => $ex
                  ->getMessage(),
              )), 'error');

              //if (module_exists('devel')) {

              //  dpm($ex->getTrace(), 'Exception stack trace');

              //}
            }
            watchdog('kaltura', 'Registration error: @message', array(
              '@message' => $ex
                ->getMessage(),
            ));
            watchdog('kaltura', 'Backtrace for failed registration: <pre>!trace</pre>', array(
              '!trace' => print_r($ex
                ->getTrace(), 1),
            ));

            // If we re-display the form here, we will lose $form['storage'].
            // Redirect back to step 0 to avoid confusion.
            drupal_goto('admin/settings/kaltura/install');
          }
          break;
      }
      break;
  }
}