care-8.x-1.x-dev/care_fields/admin/settings_form.inc

care_fields/admin/settings_form.inc
<?php

/**
 * @file
 * Administration settings form.
 */

/**
 * Form definition.
 */
function care_fields_admin_settings_form($form, &$form_state) {

  $form['care_fields_show_numbers'] = [
    '#title' => t('Display CARE address/communication numbers to administrators.'),
    '#type' => 'checkbox',
    '#default_value' => variable_get('care_fields_show_numbers', TRUE),
  ];
  $form['titles'] = [
    '#type' => 'fieldset',
    '#title' => 'Titles',
  ];
  $form['titles']['care_fields_titles'] = [
    '#title' => t('Titles'),
    '#type' => 'textarea',
    '#default_value' => variable_get('care_fields_titles', "Mr\nMrs\nMiss\nMs\nDr"),
  ];
  $form['titles']['import'] = [
    '#type' => 'submit',
    '#value' => 'Import titles from CARE',
    '#submit' => [
      'care_fields_admin_titles_import',
    ],
  ];
  $form['countries'] = [
    '#type' => 'fieldset',
    '#title' => 'Countries',
  ];
  $form['countries']['care_fields_countries'] = [
    '#title' => t('Countries'),
    '#type' => 'textarea',
    '#default_value' => variable_get('care_fields_countries', "UK|United Kingdom\nUSA|United States of America"),
  ];
  $form['countries']['care_fields_country_default'] = [
    '#title' => t('Default Country code'),
    '#type' => 'textfield',
    '#size' => 8,
    '#default_value' => variable_get('care_fields_country_default', 'UK'),
  ];
  $form['countries']['import'] = [
    '#type' => 'submit',
    '#value' => 'Import countries from CARE',
    '#submit' => [
      'care_fields_admin_countries_import',
    ],
  ];
  $form['devices'] = [
    '#type' => 'fieldset',
    '#title' => 'Device types',
  ];
  $form['devices']['care_fields_email_devices'] = [
    '#title' => t('Email'),
    '#type' => 'textarea',
    '#default_value' => variable_get('care_fields_email_devices', "EM|Home E-Mail\nEW|Work Email"),
  ];
  $form['devices']['care_fields_telephone_devices'] = [
    '#title' => t('Telephone'),
    '#type' => 'textarea',
    '#default_value' => variable_get('care_fields_telephone_devices', "TH|Home telephone\nTE|Work Telephone"),
  ];
  $form['devices']['care_fields_website_devices'] = [
    '#title' => t('Website'),
    '#type' => 'textarea',
    '#default_value' => variable_get('care_fields_website_devices', "W|Web Site Address"),
  ];
  $form['devices']['import'] = [
    '#type' => 'submit',
    '#value' => 'Import devices from CARE',
    '#submit' => [
      'care_fields_admin_devices_import',
    ],
  ];
  $form = system_settings_form($form);
  $form['actions']['reset'] = [
    '#type' => 'submit',
    '#value' => 'Reset to default',
    '#submit' => [
      'care_fields_admin_reset',
    ],
  ];
  return $form;
}

/**
 * Reset-all-values callback.
 */
function care_fields_admin_reset() {
  variable_del('care_fields_titles');
  variable_del('care_fields_countries');
  variable_del('care_fields_country_default');
  variable_del('care_fields_email_devices');
  variable_del('care_fields_telephone_devices');
  variable_del('care_fields_website_devices');
}

/**
 * Import-communications-devices callback.
 */
function care_fields_admin_devices_import() {
  $email_devices = [];
  $telephone_devices = [];
  $website_devices = [];
  $data = [
    'Active' => 'Y',
    'LookupGroup' => 'WEBD',
  ];
  $typedata = [
    'pLookupDataType' => 'xldtDevices',
  ];
  $result = care_call_method('GetLookupData', $data, $typedata);
  foreach ($result as $row) {
    if ($row->Email == 'Y') {
      $email_devices[] = "$row->Device|$row->DeviceDesc";
    }
    elseif ($row->WwwAddress == 'Y') {
      $website_devices[] = "$row->Device|$row->DeviceDesc";
    }
    else {
      $telephone_devices[] = "$row->Device|$row->DeviceDesc";
    }
  }
  drupal_set_message(t('Imported !n (!e email, !t telephone, !w web) device types from CARE.', [
    '!n' => count($email_devices) + count($telephone_devices) + count($website_devices),
    '!e' => count($email_devices),
    '!t' => count($telephone_devices),
    '!w' => count($website_devices),
  ]));

  variable_set('care_fields_email_devices', implode("\n", $email_devices));
  variable_set('care_fields_telephone_devices', implode("\n", $telephone_devices));
  variable_set('care_fields_website_devices', implode("\n", $website_devices));
}

/**
 * Import-title-options callback.
 */
function care_fields_admin_titles_import() {
  $titles = [];
  $data = [
    'Active' => 'Y',
    'LookupGroup' => 'WEBT',
  ];
  $typedata = [
    'pLookupDataType' => 'xldtTitles',
  ];
  $result = care_call_method('GetLookupData', $data, $typedata);
  foreach ($result as $row) {
    $titles[] = trim($row->Title);
  }
  drupal_set_message(t('Imported !n titles from CARE.', [
    '!n' => count($titles),
  ]));
  variable_set('care_fields_titles', implode("\n", $titles));
}

/**
 * Import-country-options callback.
 */
function care_fields_admin_countries_import() {
  $countries = [];
  $data = [];
  $typedata = [
    'pLookupDataType' => 'xldtCountries',
  ];
  $result = care_call_method('GetLookupData', $data, $typedata);
  foreach ($result as $row) {
    $countries[] = "$row->Country|$row->CountryDesc";
  }
  variable_set('care_fields_countries', implode("\n", $countries));
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc