Releases: webitproff/xtradbrowusers-cotonti
Release list
The final version without internationalization of text input fields.
The final version without internationalization of text input fields.
v.1.0.1 Extrafields Users Custom
Extrafields Users Custom — плагин дополнительных полей для модуля Users
Общая информация о плагине
- Код: xtradbrowusers
- Назначение: добавляет дополнительные поля для модуля Users версии 1.4.14+ в собственную таблицу базы данных
- Версия: 1.0.0
- Дата: 16 июля 2026
- Автор: webitproff
- Копирайт: © 2026 webitproff
- Зависимости: Модуль Users (входит в состав Cotonti CMF)
- Совместимость: Cotonti v1.0+, PHP 8.4+, MySQL 8.4+, Bootstrap 5.3+
Что это за плагин и зачем он нужен?
Extrafields Users Custom — это специализированное расширение для Cotonti CMF, которое позволяет добавлять неограниченное количество произвольных полей (extrafields) к профилям пользователей, не изменяя при этом структуру стандартной таблицы cot_users. Все дополнительные данные сохраняются в отдельной, изолированной таблице cot_xtradbrowusers, связанной с основной записью пользователя через внешний ключ с каскадным удалением (ON DELETE CASCADE).
Такой подход особенно актуален для сайтов, где профиль пользователя — это не просто учётная запись, а лицо в сообществе, витрина мастера или карточка клиента. Будь то форум по интересам, интернет-магазин, фриланс-биржа или корпоративный портал — плагин позволяет легко адаптировать профиль под любой сценарий, не вмешиваясь в ядро системы.
Ключевые преимущества изолированного хранения:
- Чистота ядра системы: стандартная таблица пользователей остаётся нетронутой, что исключает конфликты при обновлениях Cotonti и упрощает обслуживание.
- Полная изоляция данных: любые изменения структуры дополнительных полей не затрагивают основные данные пользователя.
- Автоматическая целостность: при удалении пользователя все связанные дополнительные данные удаляются автоматически (благодаря внешнему ключу), а также очищаются загруженные файлы.
- Простота отката: при деинсталляции плагина все его данные полностью удаляются одним SQL‑запросом и очисткой папок.
Что идёт «из коробки»?
Сразу после установки плагина администратор получает 15 заранее настроенных демонстрационных полей всех основных типов, поддерживаемых API Extrafields в Cotonti. Среди них:
- Текстовые поля (input, textarea)
- Целые числа и числа с плавающей точкой (inputint, double)
- Выпадающие списки (select)
- Радиокнопки (radio)
- Дата и время (datetime)
- Флаг страны (country)
- Диапазон чисел (range)
- Чекбоксы с множественным выбором (checklistbox)
- Загрузка файлов (file)
Это позволяет не только сразу увидеть плагин в действии, но и быстро оценить, какой тип поля лучше подходит для конкретной задачи — без долгого изучения документации.
Кому и почему будет полезен этот плагин?
Плагин решает задачу расширения профиля пользователя там, где стандартного набора полей недостаточно. В зависимости от типа проекта вы получаете возможность вывести на первый план именно те данные, которые важны вашей аудитории:
Для сообществ и форумов:
- Показать статус, достижения, репутацию, ссылки на соцсети.
- Добавить поля с интересами или специализацией, чтобы участники находили единомышленников.
- Дать возможность кратко рассказать о себе, загрузить аватар в отдельное поле.
Для интернет-магазинов:
- Хранить дополнительный телефон, предпочтительный способ связи, адрес доставки (если не используется отдельная адресная книга).
- Вести учёт клиентов по категориям (оптовый/розничный, уровень лояльности).
- Прикреплять к профилю документы: договоры, реквизиты.
Для фриланс-бирж и площадок услуг:
- Публиковать портфолио, список навыков, сертификаты.
- Указывать профессиональный опыт, ставку, график работы.
- Загружать резюме прямо в профиль.
- Выводить рейтинг исполнителя, верификацию, уровень квалификации — всё это можно оформить в виде отдельных полей и гибко кастомизировать вывод.
Разработчикам и администраторам плагин даёт полную свободу: все поля управляются через стандартный интерфейс (Администрирование → Расширения → Экстраполя), а их значения автоматически доступны в шаблонах регистрации, редактирования профиля (пользователем и администратором), публичной карточки и общего списка пользователей. Также поддерживается вывод в мета‑теги страницы (header.tpl) через специальный хук, что открывает дополнительные возможности для SEO.
Благодаря полной интеграции с системой тегов Cotonti каждое поле можно выводить как в универсальном цикле, так и индивидуально, с собственной вёрсткой и логикой отображения. Это делает плагин одинаково удобным как для быстрого добавления пары полей, так и для глубокой кастомизации профилей на крупных проектах.
Часть №2 README: описание файлов плагина с группировкой по назначению
Структура и назначение файлов плагина
Плагин Extrafields Users Custom взаимодействует с Cotonti через систему хуков. Каждый файл, предназначенный для выполнения на определённом хуке, содержит обязательный заголовок, который регистрирует его в таблице cot_plugins и определяет, когда именно код должен быть выполнен. Например, файл, подключающийся к хуку admin.extrafields.first, начинается так:
<?php
/* ====================
[BEGIN_COT_EXT]
Hooks=admin.extrafields.first
[END_COT_EXT]
==================== */После установки плагина эта запись попадает в таблицу cot_plugins, и при каждом вызове cot_getextplugins('admin.extrafields.first') Cotonti автоматически подключает и выполняет наш файл.
Группировка файлов
Основные файлы плагина
1. Файлы регистрации и инициализации плагина
Файл xtradbrowusers.setup.php
Это файл метаданных плагина, который не является обработчиком какого‑либо хука. Он содержит единственный блок [BEGIN_COT_EXT]...[END_COT_EXT], в котором через пары Ключ=Значение объявлены основные сведения о расширении:
Code– уникальный идентификатор плагина (xtradbrowusers);Name– человекочитаемое название (Custom Extrafields Users);Description,Version,Date,Author,Copyright,Notes– справочная информация;Requires_modules– список обязательных модулей (в нашем случаеusers);Auth_guests,Lock_guests,Auth_members,Lock_members– права доступа для гостей и участников, которые будут записаны в таблицуcot_authпри установке.
Этот файл не содержит PHP‑кода, исполняемого при каждом запросе. Он обрабатывается единожды функцией cot_extension_install() во время установки плагина. При этом система Cotonti автоматически:
- создаёт запись в таблице
cot_coreсct_code='xtradbrowusers',ct_plug=1(признак плагина), текущей версией; - на основе значений
Auth_guests,Lock_guests,Auth_members,Lock_membersформирует строки в таблицеcot_authдля каждой группы пользователей (гости, неактивные, участники, суперадминистраторы и т.д.); - сканирует все файлы плагина, находит в них заголовки вида
Hooks=..., и для каждого создаёт отдельную запись в таблицеcot_pluginsс указанием хука, части, порядка выполнения и пути к файлу.
Сам setup.php не вызывает Cot::$db->registerTable('xtradbrowusers') и не подключает языковые файлы — эта инициализация выполняется позже, в рабочих файлах плагина.
Файл не добавляет записей в cot_config, так как плагин пока не имеет собственных настроек, однако при необходимости разработчик может расширить setup.php блоком COT_EXT_CONFIG, и система автоматически создаст нужные опции в таблице cot_config (структура cot_config полностью позволяет хранить любые параметры модулей и плагинов).
Файл xtradbrowusers.global.php
Этот файл уже содержит активный хук global. Благодаря записи в cot_plugins он подключается при каждом запросе к сайту (до формирования основного вывода). Его задача — гарантировать, что во всех точках выполнения Cotonti доступны:
- языковые константы плагина (через
cot_langfile('xtradbrowusers', 'plug')); - API‑функции плагина, определённые в
inc/xtradbrowusers.functions.php.
Именно внутри xtradbrowusers.functions.php (подключаемого отсюда) находится вызов Cot::$db->registerTable('xtradbrowusers'), регистрирующий глобальную переменную $db_xtradbrowusers и делающий доступным обращение Cot::$db->xtradbrowusers во всём коде плагина и за его пределами.
Таким образом, global.php обеспечивает «фоновую» инициализацию, не требующую повторения в каждом хуке, а setup.php выполняет разовую регистрацию плагина в системных таблицах при установке.
2. Файлы установки и удаления (setup/)
-
setup/xtradbrowusers.install.sql
Создаёт таблицуcot_xtradbrowusersс внешним ключом, каскадно удаляющим данные при удалении пользователя. -
setup/xtradbrowusers.install.php
Добавляет 15 демонстрационных полей (всех типов, поддерживаемых Cotonti Extrafields) и создаёт папку для загружаемых файлов. -
setup/xtradbrowusers.uninstall.sql
Удаляет таблицуcot_xtradbrowusersпри деинсталляции. -
setup/xtradbrowusers.uninstall.php
Удаляет все определения экстраполей изcot_extra_fields, удаляет таблицу и папку с за...