You are here

function textsize_form in Text Size 7

Same name and namespace in other branches
  1. 5 includes/textsize.block.inc \textsize_form()
  2. 6 includes/textsize.block.inc \textsize_form()

Implement hook_form().

Generate the select form for the block.

See also

textsize_block()

1 string reference to 'textsize_form'
textsize_block_view in ./textsize.module
Implement hook_block_view().

File

includes/textsize.block.inc, line 325
block, page and theme functions.

Code

function textsize_form($form, &$form_state) {
  $textsize_cookie_expires = textsize_cookie_expires($mode = 'php');
  $textsize_cookie_domain = variable_get('textsize_cookie_domain', base_path());
  $textsize_block_title = textsize_block_title($title = 'title');
  $textsize_increment = variable_get('textsize_increment', 6);
  $textsize_normal = variable_get('textsize_normal', 76);
  $textsize_minimum = variable_get('textsize_minimum', 50);
  $textsize_maximum = variable_get('textsize_maximum', 150);
  $textsize_message = variable_get('textsize_message', 1);
  $display_current_textsize = variable_get('textsize_display_current_textsize', 'display');
  $textsize_javascript = variable_get('textsize_javascript', 1);
  $textsize_current = textsize_get_current($value = 'int');
  $options = textsize_block_form_options();
  $textsize_post = array();
  $textsize_cookie = array();

  // allowed values
  $textsize_allowed = textsize_allowed_values();

  // check the type and the content
  if (isset($_COOKIE['textsize']) && isset($_POST['textsize_select'])) {
    if (in_array(check_plain($_POST['textsize_select']), $textsize_allowed)) {
      $textsize_post['textsize'] = (string) filter_xss($_POST['textsize_select']);
    }

    // set session/cookie
    if ($textsize_post['textsize'] <= $textsize_maximum && $textsize_post['textsize'] >= $textsize_minimum) {
      setcookie("textsize", $textsize_post['textsize'], time() + $textsize_cookie_expires, $textsize_cookie_domain, "");
      if ($textsize_javascript == 0 || $textsize_javascript == 1) {
        $_SESSION['textsize'] = $textsize_post['textsize'];
      }
      if ($textsize_message == 1) {
        drupal_set_message(t('The text size has been saved as %textsize_post%.', array(
          '%textsize_post' => textsize_display($textsize_post['textsize'], 2),
        )));
      }
      textsize_clear_cache();
    }
  }
  elseif (!isset($_COOKIE['textsize']) && isset($_POST['textsize_select']) && $textsize_message == 1) {
    drupal_set_message(t('The text size have not been saved, because your browser do not accept cookies.'), 'error');
  }
  $subtitle = NULL;
  if (variable_get('textsize_display_subtitle', 0) == 1) {
    $subtitle = $textsize_block_title;
  }
  $form = array();
  $form['textsize_select'] = array(
    '#type' => 'select',
    '#title' => check_plain($subtitle),
    '#name' => 'textsize_select',
    '#options' => $options,
    '#default_value' => variable_get('textsize_select', $textsize_current),
    '#weight' => 0,
  );
  $form['#attributes']['class'][] = 'textsize';
  $form['textsize_submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save'),
    '#weight' => 1,
  );
  $form['#skip_duplicate_check'] = TRUE;
  return $form;
}