You are here

function kaltura_settings_form in Kaltura 6.2

Same name and namespace in other branches
  1. 5 includes/kaltura.admin.inc \kaltura_settings_form()
  2. 6 includes/kaltura.admin.inc \kaltura_settings_form()
  3. 7.2 includes/kaltura.admin.inc \kaltura_settings_form()

determine how the general settings form will look like.

returns one of 2 states of forms: 1) registration form (if variables do not exist in the DB)

  • either as SaaS or Kaltura CE

2) notifications settings + configuration test + settings form

@TODO remove the registration form component from this now that we have a separate form.

@TODO FAPI rewrite.

2 string references to 'kaltura_settings_form'
kaltura_form_alter in includes/kaltura.admin.inc
kaltura_menu in ./kaltura.module

File

includes/kaltura.admin.inc, line 101

Code

function kaltura_settings_form() {
  global $base_url;
  if (variable_get('kaltura_partner_id', '') == '') {
    drupal_goto('admin/settings/kaltura/install');
  }
  if (!module_exists('advanced_help')) {
    $form['kaltura_help'] = array(
      '#value' => t('For more detailed help enable the advanced help module.'),
    );
  }

  /* status report */
  $form['kaltura_server_status'] = array(
    '#type' => 'fieldset',
    '#title' => t('Server Status'),
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
  );
  list($admin_session_status, $admin_session_error) = kaltura_check_server_status($admin = 1);
  list($normal_session_status, $normal_session_error) = kaltura_check_server_status($admin = 0);
  $status_class = $admin_session_status && $normal_session_status ? 'ok' : 'bad';
  $session_status = $admin_session_status && $normal_session_status ? 'OK' : 'ERROR';
  $error = '';
  if ($admin_session_error) {
    $error .= '<br />Admin Session: ' . $admin_session_error;
    $error_status = TRUE;
  }
  if ($normal_session_error) {
    $error .= '<br />Normal Session: ' . $normal_session_error;
    $error_status = TRUE;
  }
  $form['kaltura_server_status']['kaltura_Admin_test_server'] = array(
    '#type' => 'item',
    '#title' => t('Drupal to Kaltura Session Test'),
    '#prefix' => '<div class="kaltura-status-' . $status_class . '">',
    '#value' => 'Session status: ' . $session_status . ($error_status ? $error : ''),
    '#suffix' => '</div>',
  );
  if (kaltura_variable_get_real('kaltura_notification_type', 0) == 1) {
    list($status, $text) = kaltura_test_notification_config();
    $prefix = '<div class="kaltura-status-' . ($status ? 'ok' : 'bad') . '">';
    $form['kaltura_server_status']['kaltura_notification_status'] = array(
      '#type' => 'item',
      '#title' => t('Kaltura to Drupal Notification Status'),
      '#prefix' => $prefix,
      '#value' => $text,
      '#suffix' => '</div>',
    );
  }
  list($status, $text) = kaltura_test_cron_job_status();
  $prefix = '<div class="kaltura-status-' . ($status ? 'ok' : 'bad') . '">';
  $form['kaltura_server_status']['kaltura_cron_job_status'] = array(
    '#type' => 'item',
    '#title' => t('Cron-Job Status'),
    '#prefix' => $prefix,
    '#value' => $text,
    '#suffix' => '</div>',
  );
  list($status, $text) = kaltura_test_crossdomain();
  $prefix = '<div class="kaltura-status-' . ($status ? 'ok' : 'bad') . '">';
  $form['kaltura_server_status']['kaltura_crossdomain_status'] = array(
    '#type' => 'item',
    '#title' => t('crossdomain.xml Status'),
    '#prefix' => $prefix,
    '#value' => $text,
    '#suffix' => '</div>',
  );

  /* The normal settings form. */
  if (variable_get('kaltura_partner_id', '') == '') {
    drupal_set_title('All in One Video Module by Kaltura Installation');
    $forgot_link_attributes = array(
      'attributes' => array(
        'target' => '_blank',
      ),
    );
    $information_text = 'Please enter your CMS email & password';
    $information_text .= '<br />' . l('forgot password', 'http://www.kaltura.com/index.php/cms/login', $forgot_link_attributes);
    $form['kaltura_settings_information']['#value'] = $information_text;
  }
  $form['kaltura_partner_settings'] = array(
    '#type' => 'fieldset',
    '#title' => t('Partner Info'),
    '#collapsible' => $_GET['register'] === 'no' ? FALSE : TRUE,
    '#collapsed' => $_GET['register'] === 'no' ? FALSE : TRUE,
  );

  /*
    $form['kaltura_partner_settings']['kaltura_exitss_switch'] = array(
    '#value' => $not_registered,
    );
  */
  $partner_exist = variable_get('kaltura_partner_id', '');
  $readonly_attr = array();
  if (!empty($partner_exist)) {
    $readonly_attr = array(
      'readonly' => 'readonly',
    );
  }
  $form['kaltura_partner_settings']['kaltura_partner_id'] = array(
    '#type' => 'textfield',
    '#title' => t('Partner ID'),
    '#default_value' => variable_get('kaltura_partner_id', ''),
    '#size' => 20,
    '#maxlength' => 10,
    '#attributes' => $readonly_attr,
  );
  $form['kaltura_partner_settings']['kaltura_partner_cms_email'] = array(
    '#type' => 'textfield',
    '#title' => t('Email'),
    '#default_value' => variable_get('kaltura_partner_cms_email', ''),
    //    '#attributes' => $readonly_attr,
    '#description' => t('This value must match your Kaltura server settings.'),
  );
  $form['kaltura_partner_settings']['kaltura_partner_cms_password'] = array(
    '#type' => 'password',
    '#title' => t('Password'),
    '#default_value' => variable_get('kaltura_partner_cms_password', ''),
    //    '#attributes' => $readonly_attr,
    '#description' => t('This value must match your Kaltura server settings. Leave blank unless changing your password.'),
  );
  if (!empty($partner_exist)) {
    $kmc_url = trim(variable_get('kaltura_server_url', 'http://www.kaltura.com'), '/') . '/kmc';
    $form['kaltura_partner_settings']['kaltura_upd_data'] = array(
      '#type' => 'item',
      '#value' => t('You can update your email and password via Kaltura Management Console here: ') . l($kmc_url, $kmc_url, array(
        'attributes' => array(
          'target' => '_blank',
        ),
      )),
    );
  }
  if (variable_get('kaltura_partner_id', '') == '') {
    $form_state['storage']['submit'] = 'ImportPartner';
    $form['kaltura_registration']['buttons']['import_partner'] = array(
      '#type' => 'button',
      '#title' => 'Complete Installation',
      '#value' => 'Complete Installation',
      '#default_value' => 'Complete Installation',
      '#weight' => 40,
    );
  }

  /* if (variable_get('kaltura_partner_id', '') == '') */
  $form['kaltura_partner_settings']['kaltura_subp_id'] = array(
    '#type' => 'hidden',
    '#title' => t('Kaltura Sub-Partner Id'),
    '#default_value' => variable_get('kaltura_subp_id', ''),
    '#size' => 20,
    '#maxlength' => 10,
  );

  /**
   * This test always returns true, right?
   */
  if (variable_get('kaltura_local_registration', 0) != 1 || 1) {
    $form['kaltura_partner_settings']['kaltura_secret'] = array(
      '#type' => 'hidden',
      '#title' => t('Kaltura Secret'),
      '#default_value' => variable_get('kaltura_secret', ''),
      '#size' => 60,
      '#maxlength' => 64,
    );
    $form['kaltura_partner_settings']['kaltura_admin_secret'] = array(
      '#type' => 'hidden',
      '#title' => t('Kaltura Admin Secret'),
      '#default_value' => variable_get('kaltura_admin_secret', ''),
      '#size' => 60,
      '#maxlength' => 64,
    );
  }

  /* ALWAYS TRUE: if (variable_get('kaltura_local_registration', 0) != 1 || 1) */
  $form['kaltura_partner_settings']['kaltura_server_url'] = array(
    '#type' => 'hidden',
    '#title' => t('Kaltura Server URL'),
    '#default_value' => variable_get('kaltura_server_url', KalturaHelpers::getKalturaServerUrl()),
    '#size' => 100,
    '#maxlength' => 64,
  );

  /* notification settings fieldset */
  $notification_settings = kaltura_notifications_settings_form();
  $form['kaltura_notification_settings'] = array(
    '#type' => 'fieldset',
    '#title' => t('Kaltura to Drupal Notification Settings'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
  );
  foreach ($notification_settings as $name => $form_element) {
    $form['kaltura_notification_settings'][$name] = $form_element;
  }

  /* credits / backlinks */
  $form['kaltura_credits'] = array(
    '#type' => 'fieldset',
    '#title' => 'Credits',
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
  );
  $text = '<b>Open Source Video Links</b>' . PHP_EOL;
  $text .= 'Kaltura invests a great deal of effort in the open source community, and specifically in the open source video movement.';
  $text .= 'The following two links will be included within the video player in order to further promote Kaltura and its efforts in the open video space. ';
  $text .= 'We hope that you will join us by including these links in the player.' . PHP_EOL;
  $text .= l('open source video', 'http://corp.kaltura.com/download') . PHP_EOL . l('video platform', 'http://corp.kaltura.com/technology/');
  $form['kaltura_credits']['kaltura_credits_text'] = array(
    '#type' => 'item',
    '#value' => nl2br($text),
  );
  $form['kaltura_credits']['kaltura_display_credits'] = array(
    '#type' => 'checkbox',
    '#title' => t('Include links in player'),
    '#option' => t('Include links in player'),
    '#default_value' => variable_get('kaltura_display_credits', 1),
  );
  $form['kaltura_help_message'] = array(
    '#type' => 'item',
    '#value' => t('Please feel free to ') . l('contact us', 'http://corp.kaltura.com/support/form/project/16', array(
      'attributes' => array(
        'target' => '_blank',
      ),
    )) . t(' with any questions.'),
  );
  $form['#submit'][] = 'kaltura_settings_form_submit';
  return system_settings_form($form);
}