favorites_bitrix_module

0

Описание

Модуль избранного для 1С-Битрикс

https://bazarow.ru

Языки

  • PHP93,7%
  • JavaScript3,6%
  • CSS2,7%
README.md

Модуль "Избранные товары" для 1C-Bitrix

Описание

Модуль mibazarow.favorites предназначен для реализации функциональности избранных товаров на сайте, построенном на CMS 1C-Bitrix. Модуль позволяет пользователям добавлять товары в избранное, просматривать список избранных товаров и управлять ими.

Версия: 1.0.1
Дата релиза: 2024-06-08
Автор: mibazarow
Сайт: http://bazarow.ru

Основные возможности

  • ✅ Добавление товаров в избранное для авторизованных и неавторизованных пользователей
  • ✅ Отображение списка избранных товаров с пагинацией
  • ✅ Отображение количества избранных товаров (счетчик)
  • ✅ Административный интерфейс для управления избранными товарами
  • ✅ Поддержка AJAX-запросов
  • ✅ Работа с cookie для неавторизованных пользователей
  • ✅ Современная архитектура с использованием пространств имен
  • ✅ Строгая типизация PHP 8+
  • ✅ Автоматическая очистка избранного от удалённых товаров (агент)

Системные требования

  • 1C-Bitrix версии 17.0 и выше
  • PHP 8.0 и выше
  • Модуль "Информационные блоки" (iblock)
  • MySQL 5.7 и выше

Установка

Автоматическая установка

  1. Скопируйте папку модуля в директорию
    /local/modules/mibazarow.favorites/
  2. Перейдите в административную панель: Настройки → Управление структурой → Управление модулями
  3. Найдите модуль "Избранные товары" и нажмите "Установить"

Ручная установка

Структура базы данных

Модуль создает таблицу

mibazarow_favorites
со следующей структурой:

Описание полей:

  • ID - Уникальный идентификатор записи
  • ACTIVE - Флаг активности записи (Y/N)
  • DATE_INSERT - Дата добавления в избранное
  • DATE_UPDATE - Дата последнего обновления
  • USER_ID - ID авторизованного пользователя
  • COOKIE_USER_ID - ID неавторизованного пользователя (cookie)
  • ELEMENT_ID - ID элемента информационного блока

Компоненты модуля

1. mibazarow:favorites.add

Назначение: Добавление товара в избранное

Параметры:

  • IBLOCK_ID
    - ID информационного блока
  • ELEMENT_ID
    - ID элемента для добавления
  • AJAX_MODE
    - Режим AJAX (Y/N)

Пример использования:

2. mibazarow:favorites.list

Назначение: Отображение списка избранных товаров

Основные параметры:

  • IBLOCK_ID
    - ID информационного блока
  • FAVORITES_COUNT
    - Количество элементов на странице
  • SORT_BY
    - Поле для сортировки (ID, DATE_INSERT)
  • SORT_ORDER
    - Порядок сортировки (ASC, DESC)
  • AJAX_MODE
    - Режим AJAX (Y/N)

Пример использования:

3. mibazarow:favorites.line

Назначение: Отображение счетчика избранных товаров

Параметры:

  • IBLOCK_ID
    - ID информационного блока
  • AJAX_MODE
    - Режим AJAX (Y/N)

Пример использования:

Административный интерфейс

Модуль добавляет в административную панель следующие разделы:

Меню "Избранное пользователей"

Доступно через: Главное меню → Избранное пользователей

Список избранных записей

  • Просмотр всех записей избранного
  • Фильтрация по пользователю, товару, дате создания
  • Массовые операции (удаление)
  • Пагинация

Редактирование записи

  • Изменение параметров записи избранного
  • Выбор пользователя и товара
  • Управление активностью записи

API модуля

Основные классы

mibazarow\Favorites\Tools\Favorites

Основной класс для работы с избранным:

mibazarow\Favorites\Property\UserID

Класс для работы с пользовательским типом свойства:

Работа с ORM

mibazarow\Favorites\Agents

Класс агентов модуля:

Агенты модуля

cleanDeletedElements — очистка удалённых товаров

Класс:

mibazarow\Favorites\Agents

Метод:
cleanDeletedElements()

Интервал: раз в сутки (86400 сек)
Регистрируется: автоматически при установке модуля
Удаляется: автоматически при удалении модуля

Что делает:

  1. Получает все уникальные
    ELEMENT_ID
    из таблицы
    mibazarow_favorites
  2. Проверяет их существование в инфоблоках через
    CIBlockElement::GetList()
    без привязки к конкретному инфоблоку, поиск только по ID
  3. Находит ID, которых больше не существует
  4. Удаляет все записи избранного с несуществующими элементами у всех пользователей (и авторизованных, и гостей)

Ручной запуск (например, для отладки):

Управление агентом в административной панели:
Настройки → Инструменты → Агенты → фильтр по модулю

mibazarow.favorites

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

Примеры интеграции

Кнопка "Добавить в избранное" в карточке товара

Страница "Мое избранное"

Счетчик в шапке сайта

Настройка и кастомизация

Создание собственных шаблонов компонентов

  1. Скопируйте шаблон из
    /local/components/mibazarow/[component_name]/templates/.default/
  2. Создайте новую папку с именем вашего шаблона
  3. Отредактируйте файлы
    template.php
    ,
    style.css
    ,
    script.js

Расширение функциональности

Для добавления собственной логики создайте класс-наследник:

Обновление модуля

С версии 1.0.0 до 1.0.1

  1. Сделайте резервную копию базы данных
  2. Скопируйте новые файлы модуля
  3. Выполните обновление через административную панель

Устранение неполадок

Частые проблемы

Проблема: Компоненты не отображаются
Решение: Проверьте, что модуль установлен и активен в административной панели

Проблема: Ошибка "Модуль не найден"
Решение: Убедитесь, что файлы модуля скопированы в правильную директорию

/local/modules/mibazarow.favorites/

Проблема: AJAX не работает
Решение: Проверьте подключение jQuery и корректность путей к компонентам

Логирование

Для отладки включите логирование в файле

/local/modules/mibazarow.favorites/lib/tools/favorites.php
:

Техническая поддержка

Changelog

v1.0.2 (2026-03-16)

  • Добавлен агент
    Agents::cleanDeletedElements()
    — автоматическое удаление записей избранного для несуществующих товаров (раз в сутки)
  • Исправлен путь к компонентам при установке из
    /local/modules/

v1.0.1 (2024-06-08)

  • Добавлена строгая типизация PHP 8+
  • Рефакторинг архитектуры с использованием пространств имен
  • Улучшена производительность компонентов
  • Исправлены мелкие ошибки

v1.0.0 (2024-01-01)

  • Первый релиз модуля
  • Базовая функциональность избранного
  • Административный интерфейс
  • Три основных компонента