You are here

janrain_capture_ui.module in Janrain Registration 7.4

Janrain Capture UI Module

File

janrain_capture_ui/janrain_capture_ui.module
View 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');
}