You are here

function entityreference_view_widget_prepare_filters in Entity Reference View Widget 7

Prepare the form containing exposed views filters for functioning as a part of the widget form (validation, #ajax, #parents...).

1 call to entityreference_view_widget_prepare_filters()
entityreference_view_widget_field_widget_form in ./entityreference_view_widget.module
Implements hook_field_widget_form().

File

./entityreference_view_widget.module, line 511

Code

function entityreference_view_widget_prepare_filters($form, $field_name) {

  // $form will be a string if the user failed to select our exposed plugin style plugin.
  if (!is_array($form)) {
    return;
  }
  $form['#element_validate'] = array(
    'entityreference_view_widget_exposed_filters_validate',
  );
  $form['submit']['#submit'] = array(
    'entityreference_view_widget_exposed_filters_submit',
  );
  $form['submit']['#limit_validation_errors'] = array(
    array(
      $field_name,
    ),
  );
  $form['submit']['#name'] = 'apply-' . $field_name;
  foreach (element_get_visible_children($form) as $key) {
    $form[$key]['#parents'] = array(
      $field_name,
      'exposed_filters',
      $key,
    );
    $form[$key]['#exposed_filter'] = TRUE;
    if (!empty($form[$key]['#ajax']) && empty($form[$key]['#ajax']['path']) && empty($form[$key]['#ajax']['callback'])) {
      $form[$key]['#ajax']['path'] = 'entityreference_view_widget/ajax/' . $field_name;
      $form[$key]['#ajax']['wrapper'] = 'edit-' . str_replace('_', '-', $field_name);
    }
  }
  return $form;
}