You are here

public function views_handler_filter::build_group_validate in Views (for Drupal 7) 7.3

Validate the build group options form.

1 call to views_handler_filter::build_group_validate()
views_handler_filter::options_validate in handlers/views_handler_filter.inc
Simple validate handler.
1 method overrides views_handler_filter::build_group_validate()
views_handler_filter_date::build_group_validate in handlers/views_handler_filter_date.inc
Validate the build group options form.

File

handlers/views_handler_filter.inc, line 691
Definitions of views_handler_filter and views_handler_filter_broken.

Class

views_handler_filter
Base class for filters.

Code

public function build_group_validate($form, &$form_state) {
  if (!empty($form_state['values']['options']['group_info'])) {
    if (empty($form_state['values']['options']['group_info']['identifier'])) {
      form_error($form['group_info']['identifier'], t('The identifier is required if the filter is exposed.'));
    }
    if (!empty($form_state['values']['options']['group_info']['identifier'])) {
      $illegal_identifiers = array(
        'value',
        'q',
      );
      if (in_array($form_state['values']['options']['group_info']['identifier'], $illegal_identifiers)) {
        form_error($form['group_info']['identifier'], t('This identifier is not allowed.'));
      }
    }
    if (!$this->view->display_handler
      ->is_identifier_unique($form_state['id'], $form_state['values']['options']['group_info']['identifier'])) {
      form_error($form['group_info']['identifier'], t('This identifier is used by another handler.'));
    }
  }
  if (!empty($form_state['values']['options']['group_info']['group_items'])) {
    foreach ($form_state['values']['options']['group_info']['group_items'] as $id => $group) {
      if (empty($group['remove'])) {

        // Check if the title is defined but value wasn't defined.
        if (!empty($group['title'])) {

          // No value is needed for 'empty' and 'not empty' operator.
          if (!in_array($group['operator'], array(
            'empty',
            'not empty',
          ))) {
            if (!is_array($group['value']) && trim($group['value']) == "" || is_array($group['value']) && count(array_filter($group['value'], '_views_array_filter_zero')) == 0) {
              form_error($form['group_info']['group_items'][$id]['value'], t('The value is required if title for this item is defined.'));
            }
          }
        }

        // Check if the value is defined but title wasn't defined.
        if (!is_array($group['value']) && trim($group['value']) != "" || is_array($group['value']) && count(array_filter($group['value'], '_views_array_filter_zero')) > 0) {
          if (empty($group['title'])) {
            form_error($form['group_info']['group_items'][$id]['title'], t('The title is required if value for this item is defined.'));
          }
        }
      }
    }
  }
}