Всем доброго дня. Мучаюсь со своим киносайтом. При входе на сайт пользователю предлагается выбрать жанр (комедия, ужасы и т.д). Выбор сохраняется в сессии. Это делается для того, чтобы показывать новости на тему выбранного жанра. Например пользователь выбрал "комедия" и просматривает фильм из категории "боевики" при этом ему должны показываться новости из раздела "комедия" (сохранена в сессии). Также есть тип материала "новости" который содержит таксиномию соответственно. Как сделать так, чтобы на странице с фильмом показывались новости исходя из сохранений в сессиях ?
Комментарии
Ну так сделать страницу вывода новостей(через Views или ручками), где в условии вывода PHP-код написать, выбирающий сохраненную в сессии категорию.
Да, планировал через views выводить. Но вот не знаю как выставить условия во views в каком месте прописать код проверки сессии?
https://www.drupal.org/project/views_php
Есть еще вариант помимо этого?
https://www.drupal.org/project/global_filter
А стандартными методами можно во вьювсе?
А как пользоваться views php? ничего нового вроде в представлении не появилось.
Вид фильтра PHP появится - там код введете, который TRUE или FALSE возвращает
из стандартных методов есть модуль context
А им как пользоваться? Как может помочь? Можно немного подробней?
Помоему, предложенный модуль - все что Вам надо.
Он сам сохраняет значение фильтра в сессию,
И использует его для фильтрации выборки вьюсов..
Помогите разобраться. В рунете нет ничего толкового. А с буржуем плохо очень дела. Элементарно print_r($_SESSION) НЕ удается вывести даже(((
Если у вас жанры это термины таксономии, то не вижу никаких проблем.
- Добавляете во Views контекстный фильтр по tid (термин либо поле)
- Ставите опцию "Передать значение по умолчанию"
- Тип php код
- здесь вызываете свою функцию return _mymodule_get_prefer_genre();
Функция получает tid из хранилища (в вашем случае из сессии)
<?php
function _mymodule_get_prefer_genre(){
// добавить проверку, что жанр выбран, если не выбран предоставить по умолчанию или что-нить замутить
return $_SESSION['my_module']['genre_tid'];
}?>