Содержание

💻 Разработчикам

🏗️ Архитектура

Принцип работы

┌─────────────────────────────────────────────────────────────┐
│                    Пользовательский интерфейс               │
│  (Компоненты: form, list для отзывов, комментариев, рейтинг)│
└─────────────────────────────────────────────────────────────┘
                            ↓
┌─────────────────────────────────────────────────────────────┐
│                    Контроллеры (AJAX)                       │
│  (Action-контроллеры для save, get, delete)                 │
└─────────────────────────────────────────────────────────────┘
                            ↓
┌─────────────────────────────────────────────────────────────┐
│              Бизнес-логика (Models)                         │
│  (Comment, Review, Rating, Channels, MailEvents)            │
└─────────────────────────────────────────────────────────────┘
                            ↓
┌─────────────────────────────────────────────────────────────┐
│                    ORM Таблицы                              │
│  (CommentsTable, ReviewsTable, RatingsTable, ChannelsTable) │
└─────────────────────────────────────────────────────────────┘
                            ↓
┌─────────────────────────────────────────────────────────────┐
│                    База данных                              │
│  (chililab_comments_* таблицы)                              │
└─────────────────────────────────────────────────────────────┘

Компоненты

Компонент Описание Параметры
chililab:page.reviews.form Форма добавления отзыва IBLOCK_ID, ELEMENT_ID, CACHE_TIME
chililab:page.reviews.list Список отзывов IBLOCK_ID, ELEMENT_ID, CACHE_TIME
chililab:page.comments.form Форма добавления комментария IBLOCK_ID, ELEMENT_ID, CACHE_TIME
chililab:page.comments.list Список комментариев IBLOCK_ID, ELEMENT_ID, CACHE_TIME
chililab:page.ratings Рейтинг страницы IBLOCK_ID, ELEMENT_ID, CACHE_TIME

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

Компонент Файл Описание
Comment lib/classes/Comment.php Управление комментариями
Review lib/classes/Review.php Управление отзывами
Rating lib/classes/Rating.php Управление рейтингами
Channels lib/classes/Channels.php Управление Telegram каналами
MailEvents lib/classes/MailEvents.php Отправка почтовых событий
TelegramChannel lib/classes/TelegramChannel.php Взаимодействие с Telegram API
User lib/classes/User.php Работа с пользователями
Page lib/classes/Page.php Управление страницами и кэшированием
Site lib/classes/Site.php Работа с сайтами (мультисайтовость)
Tools lib/classes/Tools.php Утилиты (plural, mb_str_pad)
CsvHelper lib/classes/CsvHelper.php Экспорт/импорт CSV

Таблицы БД

Таблица Описание Основные поля
chililab_comments_comments Комментарии ID, NAME, TEXT, USER_ID, PARENT_ID, DEPTH_LEVEL
chililab_comments_reviews Отзывы ID, NAME, TEXT, RATING, LIKES, DISLIKES, ANSWER
chililab_comments_ratings Рейтинги ID, USER_ID, RATING, ELEMENT_ID, IBLOCK_ID
chililab_comments_channels Telegram каналы ID, CHANNEL_CODE, SECURE_CODE, STATUS
chililab_comments_channel_events События каналов ID, CODE, EVENT_TYPE