You are here

sms.admin.inc in SMS Framework 6

Same filename and directory in other branches
  1. 6.2 sms.admin.inc
  2. 7 sms.admin.inc

SMS Framework core module: Admin settings form functions

@package sms

File

sms.admin.inc
View source
<?php

/**
 * @file
 * SMS Framework core module: Admin settings form functions
 *
 * @package sms
 */
function sms_admin_default_form() {
  $gateways = sms_gateways();
  foreach ($gateways as $identifier => $gateway) {
    $active = $identifier == variable_get('sms_default_gateway', 'log');
    $options[$identifier] = '';
    $form[$gateway['name']]['id'] = array(
      '#value' => $identifier,
    );
    if (function_exists($gateway['configure form'])) {
      $form[$gateway['name']]['configure'] = array(
        '#value' => l(t('configure'), 'admin/smsframework/gateways/' . $identifier),
      );
    }
    else {
      $form[$gateway['name']]['configure'] = array(
        '#value' => t('No configuration options'),
      );
    }
  }
  $form['default'] = array(
    '#type' => 'radios',
    '#options' => $options,
    '#default_value' => variable_get('sms_default_gateway', 'log'),
  );
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Set default gateway'),
  );
  return $form;
}
function sms_admin_default_form_submit($form, &$form_state) {

  // Process form submission to set the default gateway
  if ($form_state['values']['default']) {
    drupal_set_message(t('Default gateway updated.'));
    variable_set('sms_default_gateway', $form_state['values']['default']);
  }
}
function theme_sms_admin_default_form($form) {
  $rows = array();
  foreach ($form as $name => $element) {
    if (isset($element['id']) && is_array($element['id'])) {
      $rows[] = array(
        drupal_render($form['default'][$element['id']['#value']]),
        check_plain($name),
        drupal_render($element['configure']),
      );
      unset($form[$name]);
    }
  }
  $header = array(
    t('Default'),
    t('Name'),
    array(
      'data' => t('Operations'),
      'colspan' => 1,
    ),
  );
  $output .= theme('table', $header, $rows);
  $output .= drupal_render($form);
  return $output;
}
function sms_admin_gateway_form(&$form_state, $gateway_id) {
  $gateway = sms_gateways('gateway', $gateway_id);
  if ($gateway && function_exists($gateway['configure form'])) {
    drupal_set_title(t('@gateway configuration', array(
      '@gateway' => $gateway['name'],
    )));
    $form = $gateway['configure form']($gateway['configuration']);
    $form['submit'] = array(
      '#type' => 'submit',
      '#value' => t('Save'),
    );
    $form['gateway'] = array(
      '#type' => 'value',
      '#value' => $gateway,
    );
    return $form;
  }
  drupal_not_found();
  exit;
}

/**
 * Validation for gateway configuration. If the gateway defines a validation
 * function it uses that.
 */
function sms_admin_gateway_form_validate($form, &$form_state) {

  // Pass validation to gateway
  $function = $form_state['values']['gateway']['configure form'] . '_validate';
  if (function_exists($function)) {
    $function($form, $form_state);
  }
}
function sms_admin_gateway_form_submit($form, &$form_state) {
  $gateway = $form_state['values']['gateway'];

  // Remove uneccesary values
  unset($form_state['values']['op'], $form_state['values']['submit'], $form_state['values']['gateway'], $form_state['values']['form_token'], $form_state['values']['form_id']);
  variable_set('sms_' . $gateway['identifier'] . '_settings', $form_state['values']);
  drupal_set_message(t('The gateway settings have been saved.'));
  $form_state['redirect'] = 'admin/smsframework/gateways';
}
function sms_admin_settings_form(&$form_state) {
  $form['log_failed_messages'] = array(
    '#type' => 'checkbox',
    '#title' => 'Log messages that fail to send',
    '#default_value' => variable_get('sms_log_failed_messages', TRUE),
  );
  $form['send_form'] = array(
    '#type' => 'fieldset',
    '#title' => 'Send form',
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
  );
  $validation_enabled = function_exists('sms_valid_get_rulesets_for_form');
  $form['send_form']['send_form_include_ruleset_selector'] = array(
    '#type' => 'checkbox',
    '#title' => 'Display ruleset selector on send form',
    '#default_value' => variable_get('sms_send_form_include_ruleset_selector', TRUE),
    '#disabled' => !$validation_enabled,
    '#description' => !$validation_enabled ? 'You must enable the SMS Framework Validation module to access this feature.' : NULL,
  );
  $form['send_form']['send_form_ruleset_selector_title'] = array(
    '#type' => 'textfield',
    '#title' => 'Ruleset selector title',
    '#maxlength' => 100,
    '#default_value' => variable_get('sms_send_form_ruleset_selector_title', 'Country'),
    '#disabled' => !$validation_enabled,
    '#description' => !$validation_enabled ? 'You must enable the SMS Framework Validation module to access this feature.' : NULL,
  );
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save'),
  );
  return $form;
}
function sms_admin_settings_form_submit($form, &$form_state) {
  variable_set('sms_log_failed_messages', $form_state['values']['log_failed_messages']);
  variable_set('sms_send_form_include_ruleset_selector', $form_state['values']['send_form_include_ruleset_selector']);
  variable_set('sms_send_form_ruleset_selector_title', $form_state['values']['send_form_ruleset_selector_title']);
  drupal_set_message(t('The settings have been saved.'));
}

Functions

Namesort descending Description
sms_admin_default_form @file SMS Framework core module: Admin settings form functions
sms_admin_default_form_submit
sms_admin_gateway_form
sms_admin_gateway_form_submit
sms_admin_gateway_form_validate Validation for gateway configuration. If the gateway defines a validation function it uses that.
sms_admin_settings_form
sms_admin_settings_form_submit
theme_sms_admin_default_form