Extrafields Users Custom (код xtradbrowusers) — плагин для Cotonti CMF, позволяющий добавлять неограниченное число дополнительных полей к профилям пользователей. Все данные хранятся в отдельной таблице cot_xtradbrowusers, не затрагивая стандартную структуру cot_users. Это даёт полную изоляцию, лёгкое обслуживание и автоматическую очистку при удалении пользователя.
Плагин совместим с Cotonti v1.0+, PHP 8.4+, MySQL 8.4+, Bootstrap 5.3+. После установки вы получаете 15 демонстрационных полей всех поддерживаемых типов, готовых к немедленному использованию.
Скачать исходный код плагина: github.com
Инструкция пользователя по тегам плагина кратко.
Шпаргалка по тегам плагина и обсуждение интеграции в шаблоны
Инструкция по мультиязычности полей плагина
1. Что это за плагин и зачем он нужен
Extrafields Users Custom — специализированное расширение, которое добавляет произвольные поля к профилям пользователей, не изменяя стандартную таблицу cot_users. Все дополнительные данные сохраняются в изолированной таблице cot_xtradbrowusers, связанной с основной записью через внешний ключ с каскадным удалением (ON DELETE CASCADE).
Такой подход критичен для сайтов, где профиль — не просто учётная запись, а витрина специалиста, карточка клиента или лицо в сообществе: форумы, интернет‑магазины, фриланс‑биржи, корпоративные порталы. Вы получаете гибкое расширение без вмешательства в ядро системы.
Ключевые преимущества: чистота ядра, полная изоляция данных, автоматическая целостность при удалении пользователя и быстрый откат при деинсталляции.
2. Что идёт «из коробки»
Сразу после установки администратор получает 15 демонстрационных полей, охватывающих все типы, поддерживаемые API Extrafields: input, textarea, datetime, double, select, inputint, radio, file, country, range, checklistbox. Это позволяет быстро оценить, какой тип подходит для конкретной задачи, и сразу увидеть плагин в действии.
3. Кому и почему будет полезен
Плагин решает задачу расширения профиля там, где стандартного набора полей недостаточно. Для сообществ — статусы, интересы, ссылки на соцсети. Для интернет‑магазинов — дополнительные контакты, категории клиентов, реквизиты. Для фриланс‑бирж — навыки, портфолио, резюме, уровень квалификации. Все поля управляются через стандартный интерфейс «Администрирование → Расширения → Экстраполя», а их значения автоматически доступны в шаблонах регистрации, редактирования профиля, публичной карточки и общего списка пользователей. Также поддерживается вывод в мета‑теги страницы через хук header.tags.
4. Пошаговая установка
- Скачайте последнюю версию плагина из GitHub Releases.
- Распакуйте архив и загрузите папку
xtradbrowusersв директориюplugins/вашего сайта. Убедитесь, что файлxtradbrowusers.setup.phpдоступен по пути/plugins/xtradbrowusers/xtradbrowusers.setup.php. - Войдите в административную панель Cotonti и перейдите в раздел «Расширения» (URL зависит от настроек:
/admin/extensions,/ru/admin/extensionsилиadmin.php?m=extensions). - Найдите плагин Custom Extrafields Users (код
xtradbrowusers) и нажмите «Установить». Система зарегистрирует плагин в таблицахcot_core,cot_authиcot_plugins, создаст таблицуcot_xtradbrowusers, добавит 15 демо‑полей и папку для загружаемых файлов. - После установки перейдите в «Администрирование → Расширения → Экстраполя», выберите таблицу
cot_xtradbrowusers— вы увидите готовые поля.
5. Демонстрационные поля
При установке создаются следующие поля (все необязательные):
- phone_extra (input) — Дополнительный телефон
- about_extra (textarea) — О себе
- hire_date (datetime) — Дата найма
- salary (double) — Зарплата
- department (select) — Отдел (Не указан, IT, Маркетинг, Продажи, Поддержка)
- experience_years (inputint) — Стаж (лет)
- skill_level (select) — Уровень квалификации (Junior, Middle, Senior, Lead)
- has_car (radio) — Наличие автомобиля (Yes/No)
- last_promotion (datetime) — Дата последнего повышения
- resume_file (file) — Резюме (jpg, png, pdf, zip)
- residence_country (country) — Страна проживания (по умолчанию Украина)
- english_level (range) — Уровень английского (0–100, по умолчанию 50)
- interests (checklistbox) — Интересы (Спорт, Музыка, IT, Путешествия)
- work_schedule (select) — График работы (Полный день, Сменный, Удалёнка, Гибкий)
- emergency_contact (input) — Экстренный контакт
6. Структура и назначение файлов плагина
Плагин состоит из нескольких групп файлов, каждый из которых выполняется в строго определённый момент благодаря системе хуков Cotonti. Все файлы, кроме setup.php, содержат заголовок с указанием хука, регистрируемый в таблице cot_plugins.
Регистрация и инициализация
xtradbrowusers.setup.php — файл метаданных, обрабатывается однократно при установке. Не содержит PHP‑кода для каждого запроса. Объявляет код, название, зависимости, права доступа. Система на его основе создаёт записи в cot_core, cot_auth и сканирует папку плагина для регистрации хуков в cot_plugins.
xtradbrowusers.global.php (хук global) — выполняется при каждом запросе, подключает языковые файлы и API‑функции. Именно здесь через inc/xtradbrowusers.functions.php регистрируется таблица xtradbrowusers.
Установка и удаление
Файлы в папке setup/ отвечают за создание и удаление таблицы, демо‑полей и папки с файлами. uninstall.php полностью очищает реестр экстраполей и файловую систему.
Интеграция с интерфейсом управления экстраполями
xtradbrowusers.extrafields.php (хук admin.extrafields.first) добавляет таблицу cot_xtradbrowusers в белый список админки, позволяя управлять полями через стандартный раздел «Экстраполя».
Редактирование профиля пользователем
xtradbrowusers.users.profile.tags.php (хук users.profile.tags) — назначает теги {USERS_PROFILE_XTRA_…} в шаблоне users.profile.tpl.
xtradbrowusers.users.profile.update.done.php (хук users.profile.update.done) — сохраняет значения из формы в таблицу плагина.
Редактирование администратором
xtradbrowusers.users.edit.tags.php (хук users.edit.tags) — теги для админской формы (users.edit.tpl).
xtradbrowusers.users.edit.update.done.php (хук users.edit.update.done) — сохранение при админ‑редактировании.
Публичный профиль
xtradbrowusers.users.details.tags.php (хук users.details.tags) — теги для публичной страницы (users.details.tpl), включая поддержку названий стран.
Список пользователей
xtradbrowusers.users.loop.php (хук users.loop) — теги {USERS_ROW_XTRA_…} для каждой строки списка.
xtradbrowusers.usertags.php (хук usertags.main) — интегрируется в центральный генератор пользовательских тегов, делая поля доступными в любом контексте (форумы, посты, виджеты).
Регистрация
xtradbrowusers.users.register.tags.php (хук users.register.tags) и …register.add.done.php — теги в форме регистрации и сохранение после успешной регистрации.
Удаление пользователя
xtradbrowusers.users.delete.done.php (хук users.delete.done) — удаляет файлы полей и запись из cot_xtradbrowusers.
Дополнительно
xtradbrowusers.header.tags.php (хук header.tags) — позволяет вывести данные экстраполей в <title> и мета‑тегах.
7. Управление экстраполями в админке
Перейдите в «Администрирование → Расширения → Экстраполя» и выберите таблицу cot_xtradbrowusers. Вы увидите список из 15 полей и форму добавления нового. Каждое поле характеризуется атрибутами: имя, тип, HTML‑шаблон, варианты, параметры, значение по умолчанию, обязательность, парсер и описание.
Доступные типы: input, textarea, select, radio, checkbox, datetime, country, file, checklistbox, range, inputint, currency, double. Для выпадающих списков и радиокнопок варианты указываются через запятую; для диапазона — минимальное и максимальное значение; для даты — диапазон лет и формат. Значение по умолчанию для datetime задаётся в формате UNIX timestamp.
Пример создания поля «Любимый язык программирования»: имя fav_language, тип select, варианты Не указан,JavaScript,Python,PHP,Rust, по умолчанию Не указан. Новое поле сразу появляется в профилях.
8. Вывод полей: редактирование администратором (users.edit.tpl)
Хук users.edit.tags предоставляет теги {USERS_EDIT_XTRA_ИМЯПОЛЯ} и {USERS_EDIT_XTRA_ИМЯПОЛЯ_TITLE}, а также универсальные {USERS_EDIT_XTRA_EXTRAFLD} и _TITLE для цикла.
Чтобы отобразить все поля разом, вставьте в users.edit.tpl блок с проверкой активности плагина и циклом <!-- BEGIN: XTRA_EXTRAFLD -->…<!-- END: XTRA_EXTRAFLD -->. Для индивидуального размещения используйте конкретные теги. После сохранения данные записываются в таблицу плагина и становятся доступны другим шаблонам.
9. Вывод полей: редактирование профиля пользователем (users.profile.tpl)
Аналогично админской форме, но с префиксом USERS_PROFILE_XTRA_. Поддерживается как циклический, так и индивидуальный вывод. Рекомендуется всегда оборачивать вывод в проверку активности плагина.
10. Вывод полей: публичный профиль (users.details.tpl)
Здесь поля выводятся как готовые значения, а не как элементы ввода. Доступны теги {USERS_DETAILS_XTRA_ИМЯПОЛЯ} (форматированное), _VALUE (сырое), _TITLE. Для полей типа country доступно название страны. Дату удобно форматировать фильтром cot_date. Можно использовать цикл или индивидуальные теги.
11. Вывод полей: список пользователей (users.tpl)
Внутри цикла <!-- BEGIN: USERS_ROW --> доступны теги {USERS_ROW_XTRA_…}. Рекомендуется выводить только ключевые поля, чтобы не перегружать карточки. Плагин не предоставляет группового цикла в этом шаблоне — только индивидуальные теги.
12. Вывод полей: регистрация (users.register.tpl)
Форма регистрации не загружает существующие данные, но сохраняет введённые значения при ошибках валидации. Доступны теги {USERS_REGISTER_XTRA_…}. Можно вывести все поля циклом или выборочно.
13. Групповой (циклический) вывод
Когда полей много, удобно использовать единый блок <!-- BEGIN: XTRA_EXTRAFLD -->. Он работает в шаблонах edit, profile, details, register и list (список пользователей), автоматически подставляя название и элемент поля. Каждый хук назначает универсальные теги XTRA_EXTRAFLD и XTRA_EXTRAFLD_TITLE, а шаблонный цикл проходит по всем полям.
Важно: в формах редактирования (edit, profile, register) нельзя одновременно использовать индивидуальные теги и цикл для одного и того же поля — это приведёт к дублированию name в HTML и потере данных при отправке. Выберите что‑то одно. На публичных страницах дублирование не вызывает ошибок сохранения, но ради чистоты кода его также лучше избегать.
Рекомендация: в формах используйте цикл; в карточках публичного профиля — индивидуальный вывод для кастомизации; в списке пользователей — только индивидуальные теги.
14. Локализация дополнительных полей
Плагин полностью совместим с системой перевода Cotonti. Заголовки полей ищутся по ключам $L['xtra_имяполя_title'] или $L['имяполя_title']. Значения select, radio, checklistbox переводятся через $L['имяполя_значение'] (без префикса). Если перевод не найден, используется исходное значение или описание из админки.
Языковые файлы плагина расположены в plugins/xtradbrowusers/lang/. Вы можете редактировать их или переопределять переводы в языковом файле темы. После изменения необходимо сбросить кеш. Локализация работает автоматически — дополнительные действия в шаблонах не требуются.
15. Поддержка и обратная связь
Плагин распространяется бесплатно под лицензией BSD. Вы можете свободно использовать, дорабатывать и распространять его.
- Форум поддержки плагина: abuyfile.com/ru/forums/cotonti/custom/plugs/xtradbrowusers
- Форум по API Extrafields в Cotonti: abuyfile.com/ru/forums/cotonti/original/extrafields
- GitHub Issues: github.com/webitproff/xtradbrowusers-cotonti/issues
- Исходный код API Extrafields (Cotonti): github.com/Cotonti/Cotonti/blob/master/system/extrafields.php
Вы можете поддержать автора добровольным пожертвованием или заказать индивидуальную доработку. Контакты на странице: github.com/webitproff.
Последнее обновление: 16 июля 2026. Версия плагина: 1.0.0.
Купить Extrafields Users Custom по низким ценам. Интернет-магазин предлагает заказать Extrafields Users Custom, просмотреть полное описание, детальные характеристики, фото товара и актуальные цены со скидками