Всем привет!
Возникла одна интересная задача.
Я во views создал exposed filter, который позволяет отфильтровать Ubercart-товары по цене. Например, если цена больше, чем какое-то значение. Views, само-собой, это значение цены берёт из базы, каким оно забивается изначально. Но есть один нюанс - все цены проходят через созданный мною в hook_uc_price_handler обработчик и умножаются вообще на курс доллара... В итоге, покупателю выводится после фильтрации чёрти-что и сбоку бантик.
Пока, сказать честно, понятия не имею, как решить эту задачу и учесть данный момент А ведь он наверняка касается многих сайтов, не один я делал обработчики цены и фильтры по ним. Поделитесь, пожалуйста, как кто выкручивался из данной ситуации?
Комментарии
Пришлось немного познакомиться с Views API, чтобы решить данную проблему. К сожалению, никакого простого пути здесь нет. Пришлось использовать hook_views_query_alter, чтобы добавить в фильтрующие запросы вьюса умножение цены на доллар.
Ну и свои таблицы с валютами определил в hook_views_data, чтобы их в hook_views_query_alter можно было подключить.
Проблема решена.