You are here

function _entityform_paths_form_element_validate in Entityform 7

Same name and namespace in other branches
  1. 7.2 entityform_type.admin.inc \_entityform_paths_form_element_validate()

Form element validation handler for URL alias form element.

1 string reference to '_entityform_paths_form_element_validate'
entityform_type_form in ./entityform_type.admin.inc
Generates the entityform type editing form.

File

./entityform_type.admin.inc, line 522
Entityform type editing UI.

Code

function _entityform_paths_form_element_validate($element, &$form_state, $complete_form) {
  $previous_paths = array();
  $original_entityform_type = $form_state['entityform_type'];
  foreach ($form_state['values']['paths'] as $path_type => $path) {

    // Trim the submitted value.
    $alias = trim($path['alias']);
    if (!empty($alias)) {
      form_set_value($element[$path_type]['alias'], $alias, $form_state);
      $path = $form_state['values']['paths'][$path_type];
      if (in_array($path['alias'], $previous_paths)) {
        form_error($element[$path_type]['alias'], "Aliases must be unique.");
        return;
      }
      $previous_paths[] = $path['alias'];

      // Ensure that the submitted alias does not exist yet.
      $query = db_select('url_alias')
        ->condition('alias', $path['alias'])
        ->condition('language', LANGUAGE_NONE);
      if (!empty($original_entityform_type->paths[$path_type])) {
        $query
          ->condition('source', $original_entityform_type->paths[$path_type]['source'], '<>');
      }
      $query
        ->addExpression('1');
      $query
        ->range(0, 1);
      if ($query
        ->execute()
        ->fetchField()) {
        form_error($element[$path_type]['alias'], t('The alias is already in use.'));
        return;
      }
    }
  }
}