janrain_capture_ui.module in Janrain Registration 7.4
Same filename and directory in other branches
Janrain Capture UI Module
File
janrain_capture_ui/janrain_capture_ui.moduleView source
<?php
/**
* @file
* Janrain Capture UI Module
*/
/**
* Implements hook_menu().
*/
function janrain_capture_ui_menu() {
$items['admin/config/people/janrain_capture'] = array(
'title' => t('Janrain Capture'),
'description' => t('Connect to Janrain Capture service for centralized storage of social profile data.'),
'page callback' => 'drupal_get_form',
'page arguments' => array(
'janrain_capture_ui_version_settings',
),
'access arguments' => array(
'administer site configuration',
),
'weight' => -4,
'file' => "janrain_capture_ui.version.inc",
);
$items['admin/config/people/janrain_capture/version'] = array(
'title' => t('Version'),
'page callback' => 'drupal_get_form',
'page arguments' => array(
'janrain_capture_ui_version_settings',
),
'access arguments' => array(
'administer site configuration',
),
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => -50,
'file' => "janrain_capture_ui.version.inc",
);
$items['admin/config/people/janrain_capture/screens'] = array(
'title' => t('Screens'),
'page callback' => 'janrain_capture_ui_screens_settings',
'access arguments' => array(
'administer site configuration',
),
'type' => MENU_LOCAL_TASK,
'weight' => -40,
'file' => "janrain_capture_ui.screens.inc",
);
$items['admin/config/people/janrain_capture/screens/%/edit'] = array(
'title' => t('Edit Screens'),
'page callback' => 'drupal_get_form',
'page arguments' => array(
'janrain_capture_ui_screens_edit_settings',
5,
),
'access arguments' => array(
'administer site configuration',
),
'type' => MENU_NORMAL_ITEM,
'weight' => -40,
'file' => "janrain_capture_ui.screens.inc",
);
$items['admin/config/people/janrain_capture/settings'] = array(
'title' => t('Settings'),
'page callback' => 'janrain_capture_ui_get_settings',
'access arguments' => array(
'administer site configuration',
),
'weight' => -30,
'type' => MENU_LOCAL_TASK,
);
$items['admin/config/people/janrain_capture/settings/%/edit'] = array(
'title' => t('Edit Settings'),
'page callback' => 'drupal_get_form',
'page arguments' => array(
'janrain_capture_ui_edit_settings',
5,
),
'access arguments' => array(
'administer site configuration',
),
'weight' => -30,
'type' => MENU_NORMAL_ITEM,
'file' => 'janrain_capture_ui.widget.inc',
);
$items['admin/config/people/janrain_capture/countries'] = array(
'title' => t('Countries'),
'page callback' => 'janrain_capture_ui_config_countries',
'access arguments' => array(
'administer site configuration',
),
'weight' => -30,
'type' => MENU_LOCAL_TASK,
);
$items['admin/config/people/janrain_capture/countries/add'] = array(
'title' => t('Add Country'),
'page callback' => 'drupal_get_form',
'page arguments' => array(
'janrain_capture_ui_add_country',
),
'access arguments' => array(
'administer site configuration',
),
'weight' => -30,
'type' => MENU_LOCAL_ACTION,
);
$items['admin/config/people/janrain_capture/countries/%/edit'] = array(
'title' => t('Edit Country'),
'page callback' => 'drupal_get_form',
'page arguments' => array(
'janrain_capture_ui_edit_country',
5,
),
'access arguments' => array(
'administer site configuration',
),
'type' => MENU_NORMAL_ITEM,
);
$items['admin/config/people/janrain_capture/countries/%/delete'] = array(
'title' => t('Delete Country'),
'page callback' => 'drupal_get_form',
'page arguments' => array(
'janrain_capture_ui_delete_country',
5,
),
'access arguments' => array(
'administer site configuration',
),
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
function janrain_capture_ui_country_selection($form, &$form_state) {
$form = array();
$countries = janrain_capture_ui_get_all_countries();
if (empty($countries)) {
$form['markup_warning'] = array(
'#markup' => t('No countries are configured.'),
);
return $form;
}
foreach ($countries as $country) {
$options[$country['id']] = $country['name'];
}
if (!isset($_SESSION['country_id'])) {
array_unshift($options, t('Select Country'));
}
$form['markup_title'] = array(
'#markup' => t('Information only for Healthcare Professionals'),
);
$form['country'] = array(
'#type' => 'select',
'#title' => t('Please select your country:'),
'#description' => t('I confirm that I’m a Healthcare Professional authorized in the selected country.'),
'#options' => $options,
'#default_value' => isset($_SESSION['country_id']) ? $_SESSION['country_id'] : 0,
'#attributes' => array(
'onChange' => 'document.getElementById("janrain-capture-ui-country-selection").submit();',
),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Confirm and continue'),
'#attributes' => array(
'style' => array(
'display: none;',
),
),
);
if (isset($_SESSION['country_id'])) {
$form['submit-link'] = array(
'#markup' => l(t('Confirm and continue'), '<front>', array(
'attributes' => array(
'class' => array(
'submit-grv-initiate',
),
),
)),
);
drupal_add_js('jQuery(document).ready(function() {
jQuery(".submit-grv-initiate").click(function(e) {
janrain.capture.ui.start();
e.preventDefault();
});});', array(
'type' => 'inline',
'scope' => 'footer',
));
}
return $form;
}
function janrain_capture_ui_country_selection_submit($form, &$form_state) {
$country = $form_state['values']['country'];
if (isset($country)) {
$_SESSION['country_id'] = $country;
drupal_goto('<front>');
}
}
function janrain_capture_ui_add_country($form, &$form_state) {
$form = array();
$form['country_name'] = array(
'#type' => 'textfield',
'#title' => t('Country Name'),
'#description' => t('Name of the country/market'),
'#required' => TRUE,
);
$form['country_code'] = array(
'#type' => 'textfield',
'#title' => t('Country Code'),
'#description' => t('Code of the country/market'),
'#required' => TRUE,
);
$form['country_language'] = array(
'#type' => 'textfield',
'#title' => t('Language'),
'#description' => t('Short code of the country/market\'s language'),
'#required' => TRUE,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
$form['cancel'] = array(
'#markup' => l(t('Cancel'), 'admin/config/people/janrain_capture/countries'),
);
return $form;
}
function janrain_capture_ui_add_country_validate($form, &$form_state) {
if (is_numeric($form_state['values']['country_name'])) {
form_set_error('country_name', t('Please enter valid country.'));
}
if (is_numeric($form_state['values']['country_language'])) {
form_set_error('country_language', t('Please enter valid language.'));
}
if (is_numeric($form_state['values']['country_code'])) {
form_set_error('country_language', t('Please enter valid code.'));
}
}
function janrain_capture_ui_add_country_submit($form, &$form_state) {
db_insert('janrain_capture_countries')
->fields(array(
'name' => $form_state['values']['country_name'],
'code' => $form_state['values']['country_code'],
'language' => $form_state['values']['country_language'],
))
->execute();
$form_state['redirect'] = 'admin/config/people/janrain_capture/countries';
drupal_set_message(t('The configuration has been saved successfully.'));
}
function janrain_capture_ui_edit_country($form, &$form_state, $id) {
$form = array();
$country = janrain_capture_ui_get_country($id);
$form['id'] = array(
'#type' => 'hidden',
'#value' => $id,
);
$form['country_name'] = array(
'#type' => 'textfield',
'#title' => t('Country Name'),
'#description' => t('Name of the country/market'),
'#default_value' => isset($country['name']) ? $country['name'] : '',
);
$form['country_code'] = array(
'#type' => 'textfield',
'#title' => t('Country Code'),
'#description' => t('Code of the country/market'),
'#default_value' => isset($country['code']) ? $country['code'] : '',
);
$form['country_language'] = array(
'#type' => 'textfield',
'#title' => t('Language'),
'#description' => t('Short code of the country/market\'s language'),
'#default_value' => isset($country['language']) ? $country['language'] : '',
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
$form['cancel'] = array(
'#markup' => l(t('Cancel'), 'admin/config/people/janrain_capture/countries'),
);
return $form;
}
function janrain_capture_ui_edit_country_validate($form, &$form_state) {
if (is_numeric($form_state['values']['country_name'])) {
form_set_error('country_name', t('Please enter valid country.'));
}
if (is_numeric($form_state['values']['country_language'])) {
form_set_error('country_language', t('Please enter valid language.'));
}
if (is_numeric($form_state['values']['country_code'])) {
form_set_error('country_code', t('Please enter valid code.'));
}
}
function janrain_capture_ui_edit_country_submit($form, &$form_state) {
db_update('janrain_capture_countries')
->fields(array(
'name' => $form_state['values']['country_name'],
'code' => $form_state['values']['country_code'],
'language' => $form_state['values']['country_language'],
))
->condition('id', $form_state['values']['id'])
->execute();
$form_state['redirect'] = 'admin/config/people/janrain_capture/countries';
drupal_set_message(t('The configuration has been saved successfully.'));
}
function janrain_capture_ui_delete_country($form, &$form_state, $id) {
$form = array();
$form['id'] = array(
'#type' => 'hidden',
'#value' => $id,
);
return confirm_form($form, t("Do you really want delete the country?"), 'admin/config/people/janrain_capture/countries', t('This action cannot be undone.'), 'Delete', '', 'confirm');
}
function janrain_capture_ui_delete_country_submit($form, &$form_state) {
db_delete('janrain_capture_countries')
->condition('id', $form_state['values']['id'])
->execute();
drupal_set_message(t('Country updated successfully'));
drupal_goto('admin/config/people/janrain_capture/countries');
}
/**
* Settings for countries configuration.
*/
function janrain_capture_ui_config_countries() {
$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('edit', 'admin/config/people/janrain_capture/countries/' . $country['id'] . '/edit');
$delete_link = l('delete', 'admin/config/people/janrain_capture/countries/' . $country['id'] . '/delete');
$country['operations'] = $edit_link . ' ' . $delete_link;
$rows[] = $country;
}
return theme('table', array(
'header' => $header,
'rows' => $rows,
'empty' => t('No countries available'),
));
}
function janrain_capture_ui_get_country($id) {
$country = db_select('janrain_capture_countries', 'jcc')
->fields('jcc')
->condition('id', $id)
->execute()
->fetchAll();
$country = (array) $country['0'];
return $country;
}
function janrain_capture_ui_get_country_by_code($code) {
$country = db_select('janrain_capture_countries', 'jcc')
->fields('jcc')
->condition('code', $code)
->execute()
->fetchAll();
$country = (array) $country['0'];
return $country;
}
function janrain_capture_ui_get_all_countries() {
$arr_countries = array();
$countries = db_select('janrain_capture_countries', 'jcc')
->fields('jcc')
->execute()
->fetchAll();
foreach ($countries as $country) {
$arr_countries[] = (array) $country;
}
return $arr_countries;
}
/**
* Settings menu item callback
*/
function janrain_capture_ui_get_settings() {
$janrain_capture_ver = variable_get('janrain_capture_ver', JANRAIN_CAPTURE_VERSION_DEFAULT);
$ver = !empty($janrain_capture_ver) ? $janrain_capture_ver : JANRAIN_CAPTURE_VERSION_LEGACY;
if ($ver == JANRAIN_CAPTURE_VERSION_LEGACY) {
module_load_include('inc', 'janrain_capture_ui', 'janrain_capture_ui.legacy');
}
else {
module_load_include('inc', 'janrain_capture_ui', 'janrain_capture_ui.widget');
}
return drupal_get_form('janrain_capture_ui_settings');
}