Сменить тип поля в раскрытом фильтре Views


Решение —
/**
 * Реализация hook_form_FORM_ID_alter()
 */
function mymodule_form_views_exposed_form_alter(&$form, $form_state) {
  if ($form['#id'] == 'ID_ФОРМЫ') {
    $field_name = 'field_subcategory'; // имя поля
    $all_values = db_select('field_data_' . $field_name, 'f')
      ->fields('f', array($field_name . '_value'))
      ->distinct()
      ->execute()
      ->fetchCol();     
 
    $exposed_field_name = $form['#info']['filter-' . $field_name . '_value']['value'];
    $form[$exposed_field_name]['#type'] = 'select';
    $form[$exposed_field_name]['#options'] = array('' => '') + drupal_map_assoc($all_values);
    $form[$exposed_field_name]['#size'] = 1;
  }
}

ID_ФОРМЫ можно узнать, открыв html код и посмотрев у раскрытой формы атрибут id.

Написанное актуально для
Drupal 7.x, Views 3.x
Теги:
views, работа с формами, раскрытые фильтры
Добавлено: 29 Июля 2018 20:20:56 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...