[Решено] Учитывание uc price handler в фильтрах views

Главные вкладки

Аватар пользователя CSoft CSoft 4 ноября 2011 в 16:40

Всем привет!

Возникла одна интересная задача.

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

Пока, сказать честно, понятия не имею, как решить эту задачу и учесть данный момент Sad А ведь он наверняка касается многих сайтов, не один я делал обработчики цены и фильтры по ним. Поделитесь, пожалуйста, как кто выкручивался из данной ситуации?

Комментарии

Аватар пользователя CSoft CSoft 8 ноября 2011 в 3:08

Пришлось немного познакомиться с Views API, чтобы решить данную проблему. К сожалению, никакого простого пути здесь нет. Пришлось использовать hook_views_query_alter, чтобы добавить в фильтрующие запросы вьюса умножение цены на доллар.

Ну и свои таблицы с валютами определил в hook_views_data, чтобы их в hook_views_query_alter можно было подключить.

Проблема решена.