Спасайте! Задолбался уже.
Стоит простая задача меньше, чем на выпитую чашку кофе.
Вывести представление для юзера с его товарами.
Название Цена
Но
отфильтровать его товары и исключить товары по цене Ноль, т.е. бесплатные и вывести эти товары потом в другой вьюхе.
Цена товара формируется по разному т.е. используется модуль Discount (Скидки).
При добавлении в представление поля Цена, есть замечательная галочка показывать индивидуальную цену и это поле выводит соответственно цену товара со всеми персональными скидками для каррент юзер.
Но
При добавлении этого же поля в Фильтр, там этой волшебной галочки нет и фильтрует по значению полной цены, а нужно же для каждого пользователя по его ценам фильтровать.
Начал пляски с views PHP выудил правильную цену такой конструкцией
Проверил вставил в php поле представления, показывает правильную цену со всеми скидками.
Теперь перехожу к фильтру, нужно в фильтр также вставить Глобал php условие вставляю
return $prc = 0;
Но не работает... Проверил dpm ($prc); выдает пустые значения....
Как только я не игрался с этим php полем в фильтре. И подключал setup code вставлял туда значение переменной и через конструкцию if пробовал ну ни как.
Главное, что проверка показывает, что не работает мой вывод, хотя если этот же код поставить в поле представления тоже как глобал php все нормально выводит нужную цену.
Очень прошу помощи.
Спасибо
Комментарии
Это присвоение значения:
<?php $prc = 0 ?>
так не работает пробовал. Видимо логика вывода переменной для полей фильтра и для полей представления разные.
потому что когда
вставлено в поле представления то результат показывает правильный (выводит нужные цены)
вставляю в php поле фильтра - результат null для всех строк представления.
Как "так"? Мое сообщение указывает на ошибку в коде.
Через views conditions никак?
[quote=VasyOK]Через views conditions никак?[/quot]
по-русски это критерии фильтрации? Если да, то проблему с этим описывал в самом описании проблемы. В фильтр views можно вывести только полную цену товара, а мне нужно рассчитанную для текущего пользователя
Не пробовал этот модуль, попробую
views conditions - да он понимает правильную цену, но он не скрывает строку, он использует значение поля цена для построения своего вывода, если да то выведет что-то, если нет, то выведет другое. А мне нужно убрать из вывода товары по цене ноль.. Но за наводку спасибо, для других целей очень да же понадобится
т.е. вариант если нет, то ничего не выведет вас не устраивает?
Так он в свое поле выводит значение. Он не скрывает строку с товаром по цене ноль, он просто добавляет в представление свое поле к которому можно прописать условие в зависимости от другого поля. Т.е. строка с товаром по цене ноль в представлении остается к строке добавляется это поле Condition
Я понимаю почему фильтр не хочет "кушать" мой вывод условия. Он не понимает по какому товару ему выводить цену, т.е. нужно еще передать ID товара, а вот как туда передать его не понимаю.
Лет надцать назад ковырялся я с этими "индивидуальными" ценами товаров коммерца.
Поэтому подробности уже "затерлись"..-)
В том случае это была цена для "региона", т.е. некоего текущего "контекста".
У вас скорее всего цены для пользователей по тому же принципу.
Так вот.. "индивидуальная" цена бралась из кэша, скорее всего идентификатор записи кэша как-то был связан текущим "контекстом".
А вьюс просто делает запросы к полям-таблицам БД, поэтому и цену выдает не "индивидуальную".
Теоретически, можно сделать чтобы вьюс выдавал индивидуальную цену, но надо как-то джойнить в запросе вьюса таблицу кэша по индентификатору кэша, построеному на основе необходимого контекста.
Так-то функционал не слишком экзотический.. может что-то уже есть на орге или гитхабе.
Ну или самому самописный модуль самописать-)
Да с выводом индивидуальной цены во вьюс проблемы не стоит, справился выводит, вот как отфильтровать по этому индивидуальному значению цены.... вот вопрос )) Видимо да... на такой простой , казалось, задаче придется самописательством заняться )