Просмотренные ноды или сессии для анонимов

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

Аватар пользователя lipinart lipinart 9 июля 2016 в 13:23

Доброго дня!
Как организовать "просмотренные материалы", т.е. в списке views добавить класс к тизеру уже просмотренной ноды дабы приглушить с помощью CSS?

Другой вариант. В блоке под нодой т.н. "похожие материалы" исключить вывод тех нод, которые юзер уже просмотрел.
Все осложняется еще и тем, что пользователи - анонимные.
Подскажите в какую сторону копать.

Комментарии

Аватар пользователя gun_dose gun_dose 9 июля 2016 в 14:08

Recently read работает через сессию, а не через куки. Если же хранить всё в куках, то интеграцию с вьюс придётся писать с нуля самому. Если же через js выпиливать из результатов вьюс лишнее - то это уже какой-то костыль, который сломается, дойдя до пагинации.

А что касается кэширования - достаточно не кэшировать всего один блок, ничего страшного от этого не произойдёт

Аватар пользователя bumble bumble 9 июля 2016 в 14:15
1

Костыль. Причем тот еще...
Что покажет Views - не знаю, нужно понимать его структуру. Может там просто блок материалов "За сегодня", который не нужно показывать если уже все видел.

Аватар пользователя lipinart lipinart 9 июля 2016 в 14:33

Согласен, что костыль тот еще... Потому и интересуюсь вашим мнением по этому поводу. С блоком похожих материалов разобрался. Что касается самой views - список тизеров (не поля) с инфинити подгрузкой. Материалов там довольно много, на сегодня около 600-650. Разумеется, что за одну сессию все не прочесть.
Что если в сессию писать nid'ы, потом при загрузке проходить JS и дописывать слассы?

Аватар пользователя OldWarrior OldWarrior 9 июля 2016 в 14:48

Можно и как-то так. Но зачем усложнять?
Но вам же подсказали вариант с recently read для views, как говорят нужно всего лишь изменить условие фильтра на обратное.

Аватар пользователя bumble bumble 9 июля 2016 в 14:41

Более правильно - делать выборку из материалов еще не просмотренных.

Из кук или из сессии (которая все равно куками передается) - дело Ваше. Стоит только правильно настроить время их "жизни".

Можно написать несколько строк кода для контекстного фильтра по ID, чтоб тот исключал просмотренные пользователем ноды. Или свой хендлер для фильтрации...
Но кеша - не будет.