You are here

function form_builder_property_key_form_validate in Form Builder 6

Same name and namespace in other branches
  1. 7 includes/form_builder.properties.inc \form_builder_property_key_form_validate()

Element validate function for the "key" property. Ensure safe characters.

1 string reference to 'form_builder_property_key_form_validate'
form_builder_property_key_form in includes/form_builder.properties.inc
Configuration form for the "key" property.

File

includes/form_builder.properties.inc, line 33
form_builder.properties.inc Implementations of hook_form_builder_properties in separate functions.

Code

function form_builder_property_key_form_validate($element, $form_state) {
  if (!preg_match('/^[a-z0-9_]+$/', $element['#value'])) {
    form_error($element, t('The form key may only contain lowercase alphanumeric characters and underscores.'));
  }

  // Check that the new key does not conflict with an existing key.
  if ($element['#value'] != $element['#default_value']) {
    $active_form = form_builder_active_form();
    $form = form_builder_cache_load($active_form['form_type'], $active_form['form_id']);
    $parents = $element['#parents'];
    array_pop($parents);
    $parents[] = $element['#value'];
    $key_exists = FALSE;
    foreach ($parents as $key) {
      if (isset($form[$key])) {
        $form = $form[$key];
        $key_exists = TRUE;
      }
      else {
        $key_exists = FALSE;
        break;
      }
    }
    if ($key_exists) {
      form_error($element, t('The form key %key is already in use.', array(
        '%key' => $element['#value'],
      )));
    }
  }
}