Добрый день всем.
Среда: drupal 7.21
views 3.6 (7)
Проблема:
Есть табличное представление с фильтрами выводимыми в форме.
Пытаюсь программно реализовать выбор и задание поля для группировки (случай общий, поле — одно).
1. Подменяю в модуле форму exposed фильтра своей через MYMODULE_form_views_exposed_form_alter,
дополняя её управляющими элементами: checkbox, активизирующий через #states соответствующий список доступных полей.
Список заполянется именами полей из $form_state['view'], но это не суть.
2. Группирующее поле устанавливается в реализации хука views_pre_build, примерно так:
<?php
function MYMODULE_views_pre_build(&$view) {
...
$custom_field = 'field_MYFIELD_value';
$view->display[$view->current_display]->handler->options["style_options"]["grouping"] = $custom_field;
...
}
?>
И всё формально, работает в связке, но есть ряд проблем, которые сводят идею на нет (.
1. Передача $custom_field в MYMODULE_views_pre_build.
Пока ничего лучше использования пары variable_set / get на ум не приходит (.
2. Собственно, проблема:
На практике хук views_pre_build вызывается до перехвата и подмены формы в модуле (MYMODULE_form_views_exposed_form_alter), а требуется наоборот ).
Изменение весов модуля относительно View ни к чему не привела — views_pre_build упорно вызывается до подмены формы
с фильтрами... (((
Можно, конечно, вынести диалог с заданием параметров группировки в другую форму или реализовать еще как-нибудь (отдельно от формы с фильтрами), но это не логично и плохо для usability.
Подскажите, плз, как побороть проблему? Хотя бы как добиться смены очередности вызова, т.е. чтобы форма с фильтрами перехватывалась до вызова views_pre_build.
Или ..., где (и как) можно задать значение группирующего поля иначе, нежели через views_pre_build.
А еще лучше бы ссылочку на нормальный мануал по теме, ибо вот ">http://api.drupal.org/api/views][/api] — маловато.
Заранее спасибо.