Плагин Userfields для CMF Cotonti 0.9.26
Userfields — это плагин для CMS Cotonti, который позволяет добавлять и управлять дополнительными полями в профилях пользователей, не затрагивая основную структуру таблицы пользователей. Он решает задачу расширения функционала по хранению пользовательской информации, например, для ввода номера телефона, ссылки на социальные сети, адреса компании и других данных. Все данные сохраняются в отдельных таблицах, что позволяет избежать изменений в основной таблице cot_users и обеспечивает гибкость при добавлении новых полей.
Плагин НЕ использует cot_users для хранения данных, у плагина свои специальные таблицы базы данных cot_userfield_types и cot_userfield_values.
Основные возможности плагина
- Создание и управление дополнительными полями: Администраторы могут добавлять новые типы полей для пользователей через удобный интерфейс админ-панели. Для каждого поля можно задать уникальный код, название и порядок сортировки. Плагин поддерживает разнообразные типы данных, включая текстовые строки, числа, даты, валюту, чекбоксы, радиокнопки и выпадающие списки.
- Хранение значений в отдельных таблицах: Значения пользовательских полей сохраняются в специальных таблицах базы данных cot_userfield_types и cot_userfield_values. Поля привязаны к конкретным пользователям по их ID, что позволяет легко масштабировать систему и добавлять новые поля без вмешательства в основную структуру базы данных.
- Интеграция с профилями пользователей: Плагин интегрируется с профилями пользователей, а также с различными шаблонами сайта, такими как список пользователей, страницы профилей, страницы статей, товары в магазине, посты на форумах и так далее. Вывод дополнительных полей можно настроить как с использованием тегов, так и через HTML-блоки.
- Удобный интерфейс администрирования: В админ-панели доступен интерфейс для добавления, редактирования и удаления типов полей. В каждом типе поля можно настроить такие параметры как код, название, порядок сортировки.
- Автоматическое сохранение данных: Изменения в дополнительных полях автоматически сохраняются при обновлении профиля пользователя или данных администратора.
- Множество типов полей: Текстовые поля для ввода текста, числовые поля для ввода целых чисел или дробных значений, выпадающие списки для выбора значений из заранее заданных вариантов, чекбоксы и радиокнопки для выбора одного или нескольких вариантов, дата и время для ввода временных данных, списки стран и диапазоны чисел для определенных нужд.
- Вывод данных в шаблонах: Данные, введенные в дополнительные поля, можно вывести на страницы сайта через специально разработанные теги, такие как
{USERFIELDS_FIELD}, {USERFIELDS_CELL_NUMBER} и другие. Теги позволяют выводить значения полей в шаблонах и страницах, что дает возможность гибко управлять отображением данных. - Интеграция с другими модулями: Плагин позволяет интегрировать дополнительные поля с другими модулями, такими как страницы товаров, форумы, блоги и другие части сайта, используя пользовательские теги. Все поля можно выводить через циклы или индивидуальные теги, что дает полную свободу в кастомизации вывода.
- Поддержка различных шаблонов: Плагин работает в самых различных шаблонах, включая страницы пользователя (users.details.tpl), страницы редактирования профиля (users.profile.tpl, users.edit.tpl), страницы статей (page.tpl), страницы товаров в магазине (mstore.tpl) и другие.
Типы полей:
- Текстовое поле — для ввода одиночных строк текста.
- Целое число — для числовых значений, например, для ввода возраста или количества.
- Валюта — для ввода денежных сумм с поддержкой точности и формата.
- Дробное число — для ввода чисел с плавающей запятой (например, для веса или роста).
- Текстовая область — для длинных текстовых данных (например, адрес или комментарии).
- Выпадающий список — позволяет выбрать значение из предложенного списка.
- Радиокнопки — для выбора одного из нескольких вариантов.
- Чекбоксы — для выбора нескольких вариантов.
- Дата/Время — для ввода даты и времени.
- Страна — для выбора страны.
- Диапазон чисел — для определения интервала значений.
- Список чекбоксов — для множественного выбора из списка.
Установка плагина
- Скачайте плагин с репозитория и распакуйте его.
- Загрузите папку userfields в каталог plugins на вашем сервере.
- Зайдите в админ-панель вашего сайта, перейдите в раздел Администрирование > Расширения > Userfields.
- Нажмите Установить для активации плагина.
Плагин создаст необходимые таблицы в базе данных, а также добавит тестовые поля (например, для номера телефона и названия компании).
Как работает вывод дополнительных полей
Плагин предоставляет несколько вариантов вывода данных в шаблоны:
- Автоматический вывод — с помощью циклов, которые выводят все созданные поля с их значениями.
- Индивидуальный вывод — с использованием тега для каждого конкретного поля, что позволяет кастомизировать отображение каждого поля.
- Предформатированные HTML-блоки — для выводов всех полей в заранее заданном формате, без необходимости вручную прописывать каждый тег.
Вы можете выводить дополнительные поля на страницах профилей пользователей, в списках пользователей, в профилях на форумах, в товарах в магазине и даже в статьях на сайте.
Как это работает со стороны администратора
Администратор заходит в раздел Администрирование → Другие → Userfields и видит понятную таблицу со всеми созданными дополнительными полями. Он может за несколько секунд:
- Добавить новое поле (указав только код, название и порядок).
- Изменить существующие поля (переименовать, поменять тип, порядок отображения).
- Удалить ненужные поля (все значения пользователей удаляются автоматически).
- Менять порядок отображения полей простым изменением цифры или перетаскиванием.
После сохранения изменений новые поля мгновенно появляются в формах редактирования профиля у всех пользователей и у самого администратора — без необходимости перезагружать сайт или чистить кеш. Администратор также может в любой момент открыть профиль любого пользователя через админку и заполнить/изменить эти поля — всё сохраняется автоматически.
Как это работает со стороны пользователя
Обычный пользователь заходит в свой профиль (раздел Профиль → Редактировать) и видит дополнительные поля в самом низу или в том месте, куда их вывел дизайнер сайта. Поля выглядят как обычные элементы формы: текстовые строки, выпадающие списки, календарик для даты, чекбоксы и т.д. — в зависимости от того, какой тип поля создал администратор.
Пользователь заполняет нужные поля (или оставляет пустыми — большинство полей необязательные), нажимает Сохранить — и всё. Никаких специальных действий, никаких дополнительных кнопок, никаких инструкций — просто ещё несколько привычных полей в профиле. Если администратор сделал красивый вывод в публичном профиле, на форуме, в товарах магазина или в статьях — пользователь сразу увидит, что ввёл: красивый номер телефона со ссылкой для звонка, значок Telegram, название компании, город и т.д.
Удаление плагина
Для удаления плагина достаточно зайти в Администрирование > Расширения > Userfields и нажать Деинсталлировать. Все таблицы плагина будут удалены, а дополнительные поля — удалены из базы данных.
Поддержка и документация
Плагин имеет документацию на двух языках, а также есть тема поддержки на форумесообщества пользователей, разработчиком плагина.
Преимущества плагина Userfields перед штатными экстраполями
- Гибкость и масштабируемость:
Плагин Userfields хранит значения в отдельных таблицах, что позволяет масштабировать систему и добавлять новые поля без изменения основной таблицы cot_users. В отличие от штатных экстраполей, которые требуют вмешательства в базу данных для добавления новых полей, Userfields предлагает легкую интеграцию дополнительных полей в существующую структуру сайта. - Поддержка множества типов данных:
В Userfields доступно большое количество типов данных, и в целом соответствуют списку типов в стандартных экстраполях Cotonti. Помимо базовых текстовых и числовых полей, плагин поддерживает валюту, дату, страну, чекбоксы, радиокнопки и другие сложные типы или “танцы с бубном” абсолютно изолировано от штатных экстраполей, а значит безопасно для движка. - Управление через админ-панель:
Плагин предоставляет простой и удобный интерфейс для администрирования, где можно добавлять, изменять и удалять поля без необходимости работать с кодом или базой данных напрямую. В штатных экстраполях такой возможности нет, и администратор должен вручную изменять таблицы и код. - Безопасность и производительность:
Хранение данных в отдельных таблицах помогает снизить нагрузку на основную таблицу пользователей, улучшая производительность сайта и обеспечивая безопасность данных. Стандартные экстраполя могут создавать нагрузку на таблицу cot_users при большом количестве данных. - Гибкость вывода данных:
Плагин позволяет выводить дополнительные поля в любых шаблонах сайта через теги, что дает возможность кастомизировать вывод и использовать данные на разных страницах, таких как страницы профилей, товары в магазине или форумы. - Поддержка различных шаблонов:
Userfields поддерживает интеграцию с множеством шаблонов, включая страницы профиля, товары, страницы статей и форумы. Это позволяет гибко выводить данные на всех уровнях сайта, в отличие от стандартных экстраполей, которые требуют дополнительной настройки.
Заключение
Плагин Userfields для Cotonti — это идеальное решение для администраторов, которым нужно расширить функционал профилей пользователей без вмешательства в основную структуру данных.
Например, вы делаете проект специальных знакомств или фрилансеров, и профиль пользователя может иметь до сотни своих полей - по всем меркам, их уже нельзя положить в таблицу cot_users, - выход есть - Плагин Userfields
С ним легко добавлять новые поля, интегрировать их в шаблоны сайта и обеспечивать масштабируемость проекта. Это решение превосходит штатные экстраполя по гибкости, удобству и простоте интеграции в шаблонах, и в конце-концов в производительности.
Исходный код на github