You are here

janrain_capture_ui.screens.inc in Janrain Registration 7.4

Admin settings form for Capture screens

File

janrain_capture_ui/janrain_capture_ui.screens.inc
View source
<?php

/**
 * @file
 * Admin settings form for Capture screens
 */

/**
 * Settings for countries configuration.
 */
function janrain_capture_ui_screens_settings() {
  $rows = array();
  $header = array(
    t('ID'),
    t('Name'),
    t('Code'),
    t('Language'),
    t('Operations'),
  );
  $countries = janrain_capture_ui_get_all_countries();
  foreach ($countries as $country) {
    $edit_link = l(t('edit screens'), 'admin/config/people/janrain_capture/screens/' . $country['id'] . '/edit');
    $country['operations'] = $edit_link;
    $rows[] = $country;
  }
  $form['table'] = array(
    '#markup' => theme('table', array(
      'header' => $header,
      'rows' => $rows,
      'empty' => t('No countries available'),
    )),
  );
  return $form;
}

/**
 * Sets the Capture screens path.
 */
function janrain_capture_ui_screens_edit_settings($form, &$form_state, $country_id) {
  $screens_folder = variable_get('janrain_capture_screens_folder', array());
  $form['country_id'] = array(
    '#type' => 'hidden',
    '#value' => $country_id,
  );
  $form['janrain_capture_screens_folder'] = array(
    '#type' => 'textfield',
    '#title' => t('Screens Folder'),
    '#default_value' => !empty($screens_folder[$country_id]) ? $screens_folder[$country_id] : 'file:///sites/all/themes/janrain-capture-screens/',
    '#description' => t('URL of the Capture screens folder<br/>(examples: file:///sites/all/themes/janrain-capture-screens/, http://example.com/capture-screens/)'),
  );
  $form['#validate'] = array(
    'janrain_capture_ui_screens_settings_validate2',
  );
  $form['#submit'] = array(
    'janrain_capture_ui_screens_settings_submit2',
  );
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save configuration'),
  );
  return $form;

  //return system_settings_form($form);
}

/**
 * Validate callback for the settings form.
 */
function janrain_capture_ui_screens_settings_validate2($form, &$form_state) {
  $v = strtolower($form_state['values']['janrain_capture_screens_folder']);
  if ($v && strpos($v, 'file:///', 0) !== 0 && strpos($v, 'http://', 0) !== 0 && strpos($v, 'https://', 0) !== 0) {
    form_set_error('janrain_capture_screens_folder', t('Capture screens folder URL: unknown scheme. Examples of valid URLs: file:///sites/all/themes/janrain-capture-screens/, http://example.com/capture-screens/)'));
  }
}

/**
 * Submit callback for the settings form.
 */
function janrain_capture_ui_screens_settings_submit2($form, &$form_state) {

  // Make sure there's a trailing slash in the capture screens folder URL.
  $screens_folder = $form_state['values']['janrain_capture_screens_folder'];
  if ($screens_folder) {
    $form_state['values']['janrain_capture_screens_folder'] = rtrim($screens_folder, '/') . '/';
  }
  janrain_capture_ui_screens_settings_submit3($form, $form_state);
  $form_state['redirect'] = 'admin/config/people/janrain_capture/screens';
  drupal_set_message(t('The configuration has been saved successfully.'));
}

/**
 * Submit handler to save the configuration in variables. 
 */
function janrain_capture_ui_screens_settings_submit3($form, $form_state) {
  $country_id = $form_state['values']['country_id'];
  $janrain_capture_screens_folder = variable_get('janrain_capture_screens_folder', array());
  if (!is_array($janrain_capture_screens_folder)) {
    $janrain_capture_screens_folder = array();
  }
  $janrain_capture_screens_folder[$country_id] = $form_state['values']['janrain_capture_screens_folder'];
  variable_set('janrain_capture_screens_folder', $janrain_capture_screens_folder);
}

Functions

Namesort descending Description
janrain_capture_ui_screens_edit_settings Sets the Capture screens path.
janrain_capture_ui_screens_settings Settings for countries configuration.
janrain_capture_ui_screens_settings_submit2 Submit callback for the settings form.
janrain_capture_ui_screens_settings_submit3 Submit handler to save the configuration in variables.
janrain_capture_ui_screens_settings_validate2 Validate callback for the settings form.