Модуль «Форум» ведёт собственный профиль участника (аватар, подпись, счётчик сообщений), но эти данные можно и нужно связать с общим профилем пользователя сайта. Разберём, где хранятся форумные поля, как включить синхронизацию с личным кабинетом и как вывести статистику сообщений в карточке пользователя.
Как устроен форумный профиль
Модуль forum хранит данные участника отдельно от таблицы пользователей b_user. Форумный профиль лежит в таблице b_forum_user и связан с пользователем сайта по полю USER_ID. Это означает, что один и тот же человек имеет две сущности: общий профиль сайта и профиль на форуме.
В форумном профиле хранятся:
- Аватар — отдельная картинка, показываемая рядом с сообщениями;
- Подпись (signature) — текст под каждым сообщением участника;
- Счётчик сообщений — число публикаций (
NUM_POSTS); - Дата регистрации на форуме и дата последнего визита;
- Персональные показатели — пол, интересы, местоположение (дублируются из профиля сайта или задаются отдельно);
- Ранг — звание, зависящее от количества сообщений.
Интеграция с профилем пользователя нужна, чтобы посетитель не заполнял одни и те же данные дважды, а аватар и имя были едиными по всему сайту.
Включение интеграции в настройках модуля
Перейдите в Настройки → Настройки продукта → Настройки модулей → Форум. На вкладке настроек проверьте параметры, отвечающие за связь с общим профилем.
- Найдите опцию «Показывать профиль пользователя» — она определяет, ведёт ли ссылка с имени автора на форумный профиль или на общую карточку пользователя.
- Задайте путь к странице профиля в шаблоне сайта. По умолчанию используется компонент
bitrix:forum.user.profile, но можно указать путь к личному кабинету, например/personal/user/#USER_ID#/. - Включите «Использовать аватар из профиля пользователя», если хотите, чтобы вместо форумной картинки показывалась фотография из
b_user(полеPERSONAL_PHOTO). - Настройте отображение имени — логин, имя и фамилия или никнейм. Формат имени берётся из настроек главного модуля.
- Сохраните изменения.
После сохранения ссылки на авторов сообщений начнут вести на выбранную вами страницу профиля, а аватары будут подтягиваться из общего профиля.
Синхронизация полей профиля
Часть данных форумного профиля можно синхронизировать с профилем сайта, чтобы избежать дублирования. Соответствие полей приведено в таблице.
| Поле форума (b_forum_user) | Поле пользователя (b_user) | Синхронизация |
|---|---|---|
| AVATAR | PERSONAL_PHOTO | По опции «Использовать аватар из профиля» |
| SHOW_NAME | NAME, LAST_NAME | Формат имени из главного модуля |
| INTERESTS | PERSONAL_PROFESSION | Ручная или через обработчик |
| SIGNATURE | — | Только на форуме |
| NUM_POSTS | — | Пересчитывается модулем |
Подпись и счётчик сообщений остаются исключительно форумными — их нет в общем профиле. Остальные поля можно связать вручную при редактировании или автоматически через обработчик события.
Вывод статистики сообщений в профиле
Чтобы в карточке пользователя показать активность на форуме (число сообщений, дату регистрации, ранг), используйте API модуля. Данные форумного профиля получают функцией CForumUser::GetByUSER_ID().
Пример получения статистики в шаблоне профиля:
- подключите модуль вызовом
CModule::IncludeModule("forum"); - получите запись форумного профиля по
USER_ID; - выведите поля
NUM_POSTS(число сообщений),DATE_REG(дата регистрации на форуме),LAST_VISIT(последний визит).
Ранг участника рассчитывается по таблице званий, которую администратор задаёт в разделе управления форумом. Звание зависит от значения NUM_POSTS и подставляется автоматически при выводе сообщений. Для показа ранга в профиле сопоставьте текущее число сообщений с диапазонами из настроек рангов.
Права на редактирование профиля
Кто может менять аватар, подпись и другие поля, определяется на вкладке «Доступ» в настройках модуля «Форум». Уровни доступа назначаются группам пользователей.
- Полный доступ — редактирование любых профилей (для администраторов и модераторов);
- Редактирование своего профиля — участник меняет только собственные данные;
- Только чтение — просмотр профиля без изменений;
- Нет доступа — профиль скрыт.
Важно согласовать эти права с правами на редактирование общего профиля в главном модуле. Если пользователь может менять аватар в личном кабинете, но на форуме включена опция «использовать аватар из профиля», то изменение фотографии в кабинете автоматически отразится и на форуме.
Частые ошибки
Типичные проблемы при интеграции форума с профилем пользователя:
- Ссылка автора ведёт «в никуда». Указан неверный путь к странице профиля в настройках модуля или не создана сама страница с компонентом. Проверьте путь и наличие файла.
- Аватар не подтягивается из профиля. Не включена опция «Использовать аватар из профиля пользователя» либо у пользователя не заполнено поле
PERSONAL_PHOTO. Форум в этом случае показывает форумный аватар или заглушку. - Двойные данные. Пользователь заполнил интересы и на форуме, и в кабинете — значения расходятся. Настройте синхронизацию через обработчик или уберите дублирующие поля из формы.
- Неверный счётчик сообщений. После массового удаления тем счётчик
NUM_POSTSне совпадает с реальностью. Запустите пересчёт статистики форума в панели администрирования. - Имя показывается как логин. В настройках формата имени главного модуля выбран
#LOGIN#. Смените формат на имя и фамилию. - Гость видит кнопку редактирования. Неверно розданы права на вкладке «Доступ» — для неавторизованных должен быть уровень «только чтение» или «нет доступа».
Итог
Интеграция модуля «Форум» с профилем пользователя устраняет дублирование данных и делает представление участника единым по всему сайту. Ключевые шаги:
- включить связь и указать путь к странице профиля в настройках модуля;
- включить использование аватара и формата имени из общего профиля;
- при необходимости синхронизировать дополнительные поля через обработчик;
- вывести статистику сообщений и ранг в карточке пользователя через API;
- согласовать права на редактирование форумного и общего профиля.
После настройки посетитель заполняет данные один раз, а форум показывает актуальный аватар, имя и активность, взятые из единого профиля сайта.