janrain_capture_ui.screens.inc in Janrain Registration 7.4
Same filename and directory in other branches
Admin settings form for Capture screens
File
janrain_capture_ui/janrain_capture_ui.screens.incView 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
Name | 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. |