Возникла задача сделать каталог товаров с сортировкой. Товары выводятся с помощью вьюхи, в левой колонке Exposed Filter. При изменении значения фильтра страница обновляется по ajax. Все замечательно работает.
Задача. Нужно изменить внешний вид фильтра. Например, вместо названия цвета товара поставить плашки, окрашенные в цвет, вместо типа товара - иконки. и т.п.
Темизировать фильтры и изменить их как бог черепаху - не проблема. Вопрос что делать с AJAX обработчиком.
Возникло следующее решение.
1. Делаем полностью свои фильтры, беря список значений из друпаловских фильтров.
2. Скрываем друпаловские фильтры с помощью css.
3. Биндим на свои фильтры события, что при клике на цвет, например, изменяется значение друпаловского фильтра и ему передается событие change().
Типа такого:
<script>
jQuery("#ajaxtest").click(
function() {
jQuery("#edit-field-color-value").val("red");
jQuery("#edit-field-color-value").change();
});
</script>
Такие штуки замечательно работают. AJAX запрос ко вьюхе запускается, страница обновляется без перезагрузки.
Вопрос: это нормальное решение или можно проще?