You are here

function _accordion_menu_block_validate in Accordion Menu 6

Same name and namespace in other branches
  1. 7 includes/configure.inc \_accordion_menu_block_validate()

Form validation handler for hook_block_configure().

1 call to _accordion_menu_block_validate()
accordion_menu_block_validate in ./accordion_menu.module
Form validation handler for block_admin_configure().

File

includes/configure.inc, line 156
Provides block configuration routines.

Code

function _accordion_menu_block_validate($form, &$form_state) {
  foreach (array(
    'animated',
    'script_scope',
  ) as $key) {

    // Value may include letters only.
    // This is not validating the string, but simply requiring one.
    $value = $form_state['values']['accordion_menu_' . $key];
    if (preg_match('@[^a-z]@', strtolower($value))) {
      form_set_error('accordion_menu_' . $key, t('Enter a string with only letters. (' . $key . ')'));
    }
  }

  // Value may include letters and a digit only.
  // This is not a true test for an HTML tag, but should prevent foul play.
  $key = 'header';
  $value = $form_state['values']['accordion_menu_' . $key];
  preg_match('@^([a-z]+([1-9]|)).*@', strtolower($value), $matches);
  if (empty($matches) || $matches[0] != $matches[1]) {
    form_set_error('accordion_menu_' . $key, t('Enter a valid HTML tag. (' . $key . ')'));
  }

  // Do not allow both menu source options to be blank.
  $key1 = 'menu_source';
  $value1 = $form_state['values']['accordion_menu_' . $key1];
  $key2 = 'block_source';
  $value2 = $form_state['values']['accordion_menu_' . $key2];
  if (isset($value2)) {
    if (empty($value1) && empty($value2)) {
      form_set_error('accordion_menu_' . $key1, t('Select either a menu source or a menu block source. (' . $key1 . ')'));
      form_set_error('accordion_menu_' . $key2, t('Select either a menu source or a menu block source. (' . $key2 . ')'));
    }
  }
  elseif (empty($value1)) {
    form_set_error('accordion_menu_' . $key1, t('Select a menu source. (' . $key1 . ')'));
  }
}