favorites_bitrix_module
Языки
- PHP93,7%
- JavaScript3,6%
- CSS2,7%
Модуль "Избранные товары" для 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 и выше
Установка
Автоматическая установка
- Скопируйте папку модуля в директорию /local/modules/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
Назначение: Добавление товара в избранное
Параметры:
- ID информационного блокаIBLOCK_ID- ID элемента для добавленияELEMENT_ID- Режим AJAX (Y/N)AJAX_MODE
Пример использования:
2. mibazarow:favorites.list
Назначение: Отображение списка избранных товаров
Основные параметры:
- ID информационного блокаIBLOCK_ID- Количество элементов на страницеFAVORITES_COUNT- Поле для сортировки (ID, DATE_INSERT)SORT_BY- Порядок сортировки (ASC, DESC)SORT_ORDER- Режим AJAX (Y/N)AJAX_MODE
Пример использования:
3. mibazarow:favorites.line
Назначение: Отображение счетчика избранных товаров
Параметры:
- ID информационного блокаIBLOCK_ID- Режим AJAX (Y/N)AJAX_MODE
Пример использования:
Административный интерфейс
Модуль добавляет в административную панель следующие разделы:
Меню "Избранное пользователей"
Доступно через: Главное меню → Избранное пользователей
Список избранных записей
- Просмотр всех записей избранного
- Фильтрация по пользователю, товару, дате создания
- Массовые операции (удаление)
- Пагинация
Редактирование записи
- Изменение параметров записи избранного
- Выбор пользователя и товара
- Управление активностью записи
API модуля
Основные классы
mibazarow\Favorites\Tools\Favorites
Основной класс для работы с избранным:
mibazarow\Favorites\Property\UserID
Класс для работы с пользовательским типом свойства:
Работа с ORM
mibazarow\Favorites\Agents
Класс агентов модуля:
Агенты модуля
cleanDeletedElements — очистка удалённых товаров
Класс:
Метод:
Интервал: раз в сутки (86400 сек)
Регистрируется: автоматически при установке модуля
Удаляется: автоматически при удалении модуля
Что делает:
- Получает все уникальные
из таблицыELEMENT_IDmibazarow_favorites - Проверяет их существование в инфоблоках через
— без привязки к конкретному инфоблоку, поиск только по IDCIBlockElement::GetList() - Находит ID, которых больше не существует
- Удаляет все записи избранного с несуществующими элементами у всех пользователей (и авторизованных, и гостей)
Ручной запуск (например, для отладки):
Управление агентом в административной панели:
Настройки → Инструменты → Агенты → фильтр по модулю
Важно: если модуль был установлен до добавления агента, необходимо переустановить модуль или зарегистрировать агент вручную через адм. панель.
Примеры интеграции
Кнопка "Добавить в избранное" в карточке товара
Страница "Мое избранное"
Счетчик в шапке сайта
Настройка и кастомизация
Создание собственных шаблонов компонентов
- Скопируйте шаблон из /local/components/mibazarow/[component_name]/templates/.default/
- Создайте новую папку с именем вашего шаблона
- Отредактируйте файлы
,template.php,style.cssscript.js
Расширение функциональности
Для добавления собственной логики создайте класс-наследник:
Обновление модуля
С версии 1.0.0 до 1.0.1
- Сделайте резервную копию базы данных
- Скопируйте новые файлы модуля
- Выполните обновление через административную панель
Устранение неполадок
Частые проблемы
Проблема: Компоненты не отображаются
Решение: Проверьте, что модуль установлен и активен в административной панели
Проблема: Ошибка "Модуль не найден"
Решение: Убедитесь, что файлы модуля скопированы в правильную директорию
Проблема: AJAX не работает
Решение: Проверьте подключение jQuery и корректность путей к компонентам
Логирование
Для отладки включите логирование в файле :
Техническая поддержка
- Сайт: http://bazarow.ru
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)
- Первый релиз модуля
- Базовая функциональность избранного
- Административный интерфейс
- Три основных компонента