User Categories — описание плагина, руководство по установке и интеграции
Плагин категорий пользователей для Cotonti
User Categories — это плагин для Cotonti, который позволяет пользователям выбирать специализации, навыки и направления профессиональной деятельности, в которых они работают на фриланс-бирже или торговой площадке.
Основные сценарии использования:
- качественное заполнение публичного профиля;
- повышение доверия и привлекательности для клиентов;
- быстрый поиск пользователей по специализациям и категориям.
Ключевая задача плагина
Главная цель плагина User Categories — разделение пользователей по специализациям с возможностью фильтрации и поиска по иерархическим категориям.
- Структура категорий полностью формируется администратором сайта
- Пользователь может только выбирать подходящие категории в своём профиле
- Выбранные категории используются:
- в списке пользователей,
- в фильтрах,
- в карточке профиля.
Информация о плагине
- Плагин: User Categories
- CMS: Cotonti 0.9.26
- PHP: 8.4+
- MySQL: 8.0
- Версия: 3.6.27
- Дата: 30 января 2026
- Адаптация: webitproff, 2026
- GitHub: https://github.com/webitproff
Совместимость
- Можно устанавливать сразу после установки Cotonti
- Работает с базовой темой nemesis
- Тестирование и адаптация проводились:
- тема 2waydeal
- сайт abuyfile.com
⚠️ Предупреждения и требования
- Только для чистой установки
- Плагин не тестировался при обновлении поверх старых версий
- Последствия апдейта поверх старой версии непредсказуемы
- Если нужно сохранить старые данные — это отдельная задача
- Если есть сомнения
- Сначала устанавливайте на локальный сервер
- Либо сделайте полный бэкап сайта
- При необходимости можно воспользоваться услугой
«Установка плагинов на Cotonti»
- Обязательные требования
- Cotonti 0.9.26
- PHP 8.4+
- MySQL 8.0
Если всё соответствует требованиям — переходим к установке.
Установка плагина (с нуля)
Руководство описывает установку с базовой темой nemesis.
При установке на кастомную тему — проверяйте, чтобы ничего не дублировалось.
Шаг 1. Загрузка файлов
- Скачайте архив плагина
- Распакуйте его
- Найдите папку
usercategories - Загрузите её в директорию:
/plugins
⚠️ Обязательно проверьте, что при загрузке не потерялись файлы
Шаг 2. Установка в админке
Перейдите в админ-панель:
Управление сайтом → Расширения → User Categories
Нажмите «Установить».
Шаг 3. Структура категорий
После успешной установки:
Управление сайтом → Расширения → User Categories → Структура
- По умолчанию будет создано 58 категорий-примеров
- Их можно:
- редактировать,
- добавлять,
- удалять.
Важно
Если нажать «Открыть» у категории — вы получите 404.
Это нормальное поведение.
Почему так происходит:
- Плагин не имеет публичного роутинга
- Он работает через модуль
users
❌ Неверно:
index.php?e=usercategories&c=websites
✅ Верно:
index.php?e=users&cat=websites
Интеграция плагина и функционала
Папка customtools
1. Подключение пользовательских функций
1.1 Функция cot_load_structure_custom()
- Из папки
system возьмите файл:
functions.custom.php
/system
Если файл уже существует — убедитесь, что в нём есть функция
cot_load_structure_custom().
1.2 Включение пользовательских функций
Откройте файл:
/datas/config.php
Найдите строку:
$cfg['customfuncs'] = false;
Замените на:
$cfg['customfuncs'] = true;
Это подключит файл /system/functions.custom.php, необходимый для работы с вложенными категориями.
2. SELECT2 и интеграция в тему
2.1 Подключение ресурсов темы
Замените файл:
themes/nemesis/nemesis.rc.php
на версию из customtools.
2.2 Стили SELECT2
Файл:
themes/nemesis/css/add_to_default.css
Скопируйте содержимое и добавьте в конец:
themes/nemesis/css/default.css
2.3 Скрипты SELECT2
Файл:
themes/nemesis/js/js.js
Скопируйте содержимое и добавьте в конец вашего общего js.js.
2.4 Копирование шаблонов
Папки:
inc
modules
plugins
Скопировать без изменений в:
themes/nemesis/
✅ Установка и интеграция завершены.
Проверка и администрирование
3.1 Профиль пользователя
Откройте:
index.php?e=users&m=profile
- Появится выбор категорий (чекбоксы)
- Сохраните профиль
3.2 Список пользователей
index.php?e=users
- У пользователя появятся бейджи категорий
- Отображаются родительские категории
3.3 Поиск по категориям
- Вверху страницы:
- поле поиска
- выпадающий список категорий
- Можно искать пользователей в конкретной категории
3.4 Меню категорий
В левом верхнем углу ссылка «Категории» —
открывает дерево всех пользовательских категорий.
Дополнительная информация
1. Готовые шаблоны users
Папка:
customtools/themes/nemesis/modules/users
- Содержит рабочие примеры
- Верстка на Bootstrap 5.3
Пример групп пользователей
Если создана группа:
- название: Продавцы
- alias:
sellers
Скопируйте:
users.tpl → users.sellers.tpl
Теперь можно кастомизировать внешний вид списка пользователей группы.
2. Шаблоны плагина
Папка:
customtools/themes/nemesis/plugins/usercategories
- Готовые шаблоны плагина
- Можно изменять под свои задачи
Примеры интеграции в шаблоны
users.tpl
Название выбранной категории
<!-- IF {PHP|cot_plugin_active('usercategories')} AND {USERS_CHOSEN_CATEGORY} -->
{USERS_CHOSEN_CATEGORY}
<!-- ENDIF -->
Дерево категорий
<!-- IF {PHP|cot_plugin_active('usercategories')} -->
{USERCATEGORIES_CATALOG}
<!-- ENDIF -->
{USERCATEGORIES_CATALOG} — аналог функции
cot_usercategories_tree
Поле поиска по категориям
<!-- IF {PHP|cot_plugin_active('usercategories')} -->
<div class="row align-items-center">
<label class="col-12 col-sm-3 mb-2 mb-sm-0">{PHP.L.Category}:</label>
<div class="col-12 col-sm-9">{USERCATEGORIES_SEARCH_CAT}</div>
</div>
<!-- ENDIF -->
Категории пользователя в списке
<!-- IF {PHP|cot_plugin_active('usercategories')} AND {USERS_ROW_CATS} -->
<p class="mb-0">
{USERS_ROW_CATS|cot_usercategories_tree($this, '', 'listlev1')}
</p>
<!-- ENDIF -->
users.profile.tpl
<!-- IF {PHP|cot_plugins_active('usercategories')} -->
<!-- IF {USERS_PROFILE_CAT} -->
<div class="row mb-3">
<label class="col-sm-3 col-form-label fw-semibold">
{PHP.L.usercategories_specializations}:
</label>
<div class="col-sm-9">
<div class="operation-checkboxes">
<div class="operation-checkboxes-list">
{USERS_PROFILE_CAT}
</div>
</div>
</div>
</div>
<!-- ENDIF -->
<!-- ENDIF -->
users.edit.tpl
<!-- IF {PHP|cot_plugins_active('usercategories')} -->
<!-- IF {USERS_EDIT_CAT} -->
<div class="row mb-3">
<label class="col-sm-3 col-form-label fw-semibold">
{PHP.L.usercategories_specializations}:
</label>
<div class="col-sm-9">
<div class="operation-checkboxes">
<div class="operation-checkboxes-list">
{USERS_EDIT_CAT}
</div>
</div>
</div>
</div>
<!-- ENDIF -->
<!-- ENDIF -->
users.details.tpl
<!-- IF {PHP|cot_plugins_active('usercategories')} AND {USERS_DETAILS_CATS} -->
<p class="mb-0">
{USERS_DETAILS_CATS|cot_usercategories_tree($this, '', 'listlev1')}
</p>
<!-- ENDIF -->
Заключение
Плагин User Categories после адаптации и доработок публикуется бесплатно.
За «печеньки» — отдельное спасибо 😊
Поддержка и обратная связь
- Вопросы по применению
- Интеграция в кастомные темы
- Отчёты об ошибках
- Помощь и доработка
👉 пишите в разделе поддержки плагина User Categories
на форуме маркетплейса Cotonti.
Если при интеграции что-то не получилось с первого раза — это нормально.
Пишите на форуме, постараюсь помочь.
Постоянная ссылка на исходный код плагина в репозитории GitHub