Создание, продвижение сайтов
40-33-54

Модуль "Вы недавно смотрели..."

06 февраля 2017

Модуль может отображать ноды как списком ссылок, так и тизерами.

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

Встречайте, модуль session_recent_nodes.
Модуль крайне простой, не создающий таблиц, и (почти) не обращающийся к БД. Создает блок, в котором выводятся ссылки на последние просмотренные юзером ноды.

Установка:

Качаем, распаковываем, включаем в админке.

Настройка:

Заходим в блоки, видим блок "Recent nodes". Повесьте блок в нужный регион. Зайдите в настройки блока. Помимо основных полей, форма имеет несколько дополнительных, определяющих поведение блока:

Node types:

Поставьте галки у тех типов материала, которые необходимо выводить (например, "товар", "резюме" и т.д.).

Limit:

Максимальное количество ссылок в списке.

Reset list

Если отметить эту галку, то при сохранении блока старый список будет сброшен.

После этого достаточно походить по нодам, наблюдая, как блок заполняется ссылками.

Как это работает.

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

Функционал срабатывает в два этапа:

  1. При просмотре полной ноды (хук nodeapi, $op = 'view', тизер = ложь) происходит проверка, следует ли отслеживать тип этой ноды.
    Если да, то идет проверка на дублирование по nid, а затем -- добавление ссылки в массив в сессии.
    И, наконец, предотвращается "распухание" этого массива с помощью среза.
     
  2. При отрисовке блока возвращается список ссылок.

Сам модуль не далает запросов к БД, разве что заносит в {variables} 2 переменные.

Модуль можно скачать тут

Сделайте заказ с сайта и получите 10% скидку на услугу

Заказ услуги с сайта raybin.ru

Нажимая на кнопку "Получить консультацию", я даю согласие на обработку персональных данных и соглашаюсь c условиями политики конфиденциальности
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Заказать бесплатную SEO-консультацию

Запрос бесплатной SEO - консультации с сайта raybin.ru

Нажимая на кнопку "Получить консультацию", я даю согласие на обработку персональных данных и соглашаюсь c условиями политики конфиденциальности
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Письмо в компанию Райбин

Письмо в компанию RAYBIN

Нажимая на кнопку "Получить консультацию", я даю согласие на обработку персональных данных и соглашаюсь c условиями политики конфиденциальности
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.