bitrix_comments:faq:review_button
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версия | |||
| bitrix_comments:faq:review_button [29/03/2026 16:13] – admin | bitrix_comments:faq:review_button [30/03/2026 14:15] (текущий) – старая версия восстановлена (29/03/2026 12:17) admin | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ====== 🐘 PHP API ====== | + | ===== Не работает кнопка «Оставить отзыв», |
| - | ===== Работа с комментариями ===== | + | **Описание проблемы** |
| + | При установке модуля «Универсальные отзывы, | ||
| + | * Слетают стили модуля при обновлении страницы | ||
| + | * Кнопка «Оставить отзыв» не работает | ||
| + | * Отзывы не отображаются сразу после добавления | ||
| - | ==== Добавление комментария ===== | + | **Причина** |
| + | Чаще всего проблема возникает из-за подключения компонентов модуля в кешируемой области шаблона другого компонента. | ||
| - | <code php> | + | Для оформления и реализации front-end логики компонента, |
| - | use Chililab\Comments\Comment; | + | * style.css, который определяет стили, необходимые данному шаблону |
| + | * script.js, который определяет и подключает скрипты, | ||
| - | $commentId = Comment:: | + | Эти файлы подключаются при исполнении |
| - | $name, | + | |
| - | $text, | + | |
| - | $parentId, | + | |
| - | $moderated, // Требуется ли модерация (bool) | + | |
| - | $active, | + | |
| - | $url, // URL страницы (false - текущая) | + | |
| - | $created, // Дата создания (false - текущая) | + | |
| - | $siteId, | + | |
| - | $sendEvents, | + | |
| - | $iblockId, | + | |
| - | $elementId | + | |
| - | ); | + | |
| - | </ | + | |
| - | ===== Удаление | + | |
| + | Для компонентов нашего модуля это приводит к следующему: | ||
| + | * Не подключаются скрипты и стили | ||
| + | * Отзывы и комментарии кешируются | ||
| + | * Новые отзывы не отображаются без сброса кеша | ||
| - | <code php> | + | **Решение** |
| - | // Удалить один комментарий | + | |
| - | Comment:: | + | |
| - | + | ||
| - | // Удалить несколько комментариев | + | |
| - | Comment:: | + | |
| - | </ | + | |
| - | + | ||
| - | ==== Активация/ | + | |
| + | * Вариант 1. (Не рекомендуется) Отключить кеш родительского компонента. Такой подход решает проблему, | ||
| + | * Вариант 2. Вынести вызов компонента из кешируемой области шаблона в файл component_epilog.php родительского компонента. Этот вариант самый простой, | ||
| + | * Вариант 3. Буфферизация вывода шаблона родительского компонента с последующей заменой контента. Подробнее [[https:// | ||
| + | * Вариант 4. Подходит только для комплексных компонентов. Вынести вызов компонента отзывов в из конкретного компонента в шаблон страницы. Например, | ||
| + | * Вариант 5. В вызов компонента комментариев добавить четвертым параметром переменную $component. Пример: | ||
| <code php> | <code php> | ||
| - | Comment::activate([$ids]); | + | $APPLICATION-> |
| - | Comment:: | + | |
| </ | </ | ||
| - | ==== Модерация ==== | + | **Итог** |
| - | <code php> | + | Для корректной работы компонента нужно учитывать особенности кеширования Битрикс |
| - | Comment:: | + | |
| - | Comment:: | + | |
| - | </ | + | |
| - | ==== Редактирование ==== | ||
| - | <code php> | ||
| - | Comment:: | ||
| - | $id1 => [' | ||
| - | $id2 => [' | ||
| - | ]); | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Работа с отзывами ===== | ||
| - | |||
| - | ==== Добавление отзыва ==== | ||
| - | |||
| - | <code php> | ||
| - | use Chililab\Comments\Review; | ||
| - | |||
| - | $reviewId = Review:: | ||
| - | $name, | ||
| - | $text, | ||
| - | $rating, | ||
| - | $recommend, | ||
| - | $moderated, | ||
| - | $active, | ||
| - | $url, // URL страницы (false - текущая) | ||
| - | $created, | ||
| - | $likes, | ||
| - | $dislikes, | ||
| - | $answer, | ||
| - | $siteId, | ||
| - | $sendEvents, | ||
| - | $iblockId, | ||
| - | $elementId | ||
| - | ); | ||
| - | </ | ||
| - | |||
| - | ==== Лайки и Дизлайки ==== | ||
| - | |||
| - | <code php> | ||
| - | // Поставить лайк | ||
| - | Review:: | ||
| - | |||
| - | // Отменить лайк | ||
| - | Review:: | ||
| - | |||
| - | // Поставить дизлайк | ||
| - | Review:: | ||
| - | |||
| - | // Отменить дизлайк | ||
| - | Review:: | ||
| - | </ | ||
| - | |||
| - | ==== Удаление ==== | ||
| - | |||
| - | <code php> | ||
| - | Review:: | ||
| - | Review:: | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Работа с рейтингами ===== | ||
| - | |||
| - | ==== Добавление рейтинга ==== | ||
| - | |||
| - | <code php> | ||
| - | use Chililab\Comments\Rating; | ||
| - | |||
| - | // Для авторизованного пользователя | ||
| - | Rating:: | ||
| - | |||
| - | // Для неавторизованного пользователя | ||
| - | Rating:: | ||
| - | $url, // URL страницы | ||
| - | $rating, | ||
| - | $active, | ||
| - | $siteId, | ||
| - | $iblockId, | ||
| - | $elementId | ||
| - | ); | ||
| - | </ | ||
| - | |||
| - | ==== Получение рейтинга страницы ==== | ||
| - | |||
| - | <code php> | ||
| - | // Получить рейтинг по URL | ||
| - | $pageRating = Rating:: | ||
| - | |||
| - | // Получить рейтинг по инфоблоку и элементу | ||
| - | $pageRating = Rating:: | ||
| - | |||
| - | // Результат: | ||
| - | [ | ||
| - | ' | ||
| - | ' | ||
| - | ] | ||
| - | </ | ||
| - | |||
| - | ==== Текущий рейтинг пользователя ==== | ||
| - | |||
| - | <code php> | ||
| - | $userRating = Rating:: | ||
| - | // Результат: | ||
| - | </ | ||
| - | |||
| - | ==== Удаление ==== | ||
| - | |||
| - | <code php> | ||
| - | Rating:: | ||
| - | </ | ||
bitrix_comments/faq/review_button.txt · Последнее изменение: — admin
