Views-ом можно вывести пользователю непрочитанные комментарии. А как вывести ему ноды?

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

Аватар пользователя Fonarik Fonarik 14 октября 2013 в 12:31

Когда пользователь заходит на сайт, хочу вывести в блоке новые записи, которые он не прочитал.
После того как он откроет страницу с нодой, нужно чтобы нода пропала из блока.

Комментарии

Аватар пользователя Fonarik Fonarik 14 октября 2013 в 20:55

Копаю.

еще фишка

К примеру два пользователя просмотрели один и тот же материал. После чего у них обоих этот материал уже со статусом прочтен - тут круто работает Рулс с Флагом

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

О, кажись, навело меня на мысль копать в сторону Редакций ноды.

Или как?

Аватар пользователя aa2007 aa2007 14 октября 2013 в 22:27

"Fonarik" wrote:
О, кажись, навело меня на мысль копать в сторону Редакций ноды.

мне кажется не обязательно. так же выставляете флаг ноде, а для редактора можете его снять. или даже он снимется сам автоматически, т.к. после редактирования его перекинет на эту самую ноду.

Аватар пользователя Fonarik Fonarik 15 октября 2013 в 1:50

Так оно понятно.

Не понятно вот что.

Второй пользователь до редактирования так же просмотрел эту ноду, и она для него уже не является Новой. А ее нужно вернуть в статус "Новая нода", для второго пользователя (и всех остальных пользователей) после того, как первый пользователь внесет в нее изменения.
Поэтому можно было бы сбросить Флаг опять на статус "новая нода", и у пользователя появилась бы эта нода опять в блоке не просмотренных нод. Такое можно сделать, если бы Флаг был Глобальным для всех пользователей.
Но тогда, как только кто то из пользователей просмотрит эту ноду, она для всех других пользователей перестанет быть не просмотренной.

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

Аватар пользователя aa2007 aa2007 15 октября 2013 в 10:37

Если за обновлениями следят все пользователи, то надо выбрать Action "Добавить переменную" типа Integer и задать ей значение 1. Назовем ее "Status". Далее добавим Actiopn "Fetch entity by property", где выберем юзеров по свойству "Статус", равное нашей переменной "Status". Затем через Loop надо пройтись по этому списку с Action для флага "Пометить node". Вот и все.

А если за обновлениями следят только те юзеры, которые отметили желаемые ноды флагом, то для этой цели надо добавить отдельный флаг, а в правиле вместо создания переменной "Status" и вызова "Fetch..." использовать Action "Запрос пользователей, которые отмечены флагом node". Примерно так..