Плагин Userfields для Cotonti (без экстраполей). Дополнительные поля пользователя.
Разгружаем таблицу БД с полями пользователей. Создание, редактирование, удаление пользовательских полей, типа номер телефона, название компании, адрес, не создавая экстраполя. Хранение значений в отдельной таблице, привязанной к ID пользователя.
Плагин Userfields для Cotonti 0.9.26
Выводим дополнительные поля пользователя где угодно, в любом шаблоне, в любой локации модуля или плагина, универсальным способом и без специальных префиксов.
Плагин Userfields для CMS Cotonti позволяет создавать и управлять дополнительными пользовательскими полями (например, номер телефона, название компании, адрес, телеграм) без изменения таблицы cot_users. Использует таблицы cot_userfield_types (типы полей) и cot_userfield_values (значения полей) для масштабируемости и удобства. Поля интегрируются в профили пользователей, админ-панель и шаблоны (список пользователей, статьи, форумы, модуль Multistore).
Основные возможности
- Создание, редактирование и удаление типов полей с уникальными кодами, названиями и порядком сортировки через админ-панель.
- Хранение значений в отдельной таблице, привязанной к ID пользователя.
- Редактирование полей в профиле (
users.profile.tpl) и админском редакторе (users.edit.tpl). - Вывод полей в списках пользователей (
users.tpl), страницах профиля (users.details.tpl) и других шаблонах (page.tpl,mstore.tpl,forums.posts.tpl) через теги Cotonti. - Поддержка индивидуальных тегов (например,
{USERFIELDS_CELL_NUMBER}), цикла для всех полей (<!-- BEGIN: USERFIELDS -->) и HTML-блока ({USERFIELDS_ROWS_HTML}или{USERS_ROW_FIELD_ROWS_HTML}). - Автоматическое сохранение значений при обновлении профиля или данных пользователя.
- Сортировка полей по параметру
order_num. - Тестовые поля (
cell_number,company_name) для быстрого старта. - Удобная админ-панель для управления полями.
Типы полей:
- Текст
- Целое число
- Валюта
- Дробное число
- Текстовая область
- Выпадающий список
- Радиокнопки
- Чекбокс
- Дата/Время
- Страна
- Диапазон чисел
- Список чекбоксов
Требования
- Cotonti CMS 0.9.26 или выше.
- PHP 8.4+.
- Активный модуль
users. - MySQL 8.0 с поддержкой InnoDB (для внешних ключей).
Установка
- Подготовка файлов:
- Скачайте исходный код с репозитория на GitHub.
- Распакуйте
cot-userfields-main.zipи загрузите папкуuserfieldsв директориюpluginsв корне Cotonti.
- Установка через админ-панель:
- Войдите в админ-панель (
/admin.php). - Перейдите в Администрирование > Расширения > User Fields.
- Найдите плагин Userfields и нажмите Установить.
- Плагин создаёт таблицы
cot_userfield_typesиcot_userfield_values, добавляя тестовые поля:cell_number(Номер мобильного телефона, порядок 1) иcompany_name(Название компании, порядок 2). - Эти поля — примеры; их можно удалить, отредактировать или создать новые.
- Войдите в админ-панель (
- Список файлов плагина:
userfields.setup.php(конфигурация плагина).userfields.install.sql(создание таблиц и тестовых данных).userfields.uninstall.sql(удаление таблиц).userfields.admin.php(логика админ-панели).userfields.admin.tpl(шаблон админ-панели).userfields.ru.lang.php(русская локализация).userfields.en.lang.php(английская локализация).userfields.functions.php(основные функции).userfields.users.details.tags.php(теги для страницы профиля).userfields.users.profile.tags.php(теги для редактирования профиля).userfields.users.edit.tags.php(теги для админского редактирования).userfields.users.profile.update.done.php(сохранение профиля).userfields.users.edit.update.done.php(сохранение в админке).userfields.users.loop.php(вывод в списке пользователей).userfields.usertags.php(интеграция сusertags) выводим поля в любые шаблоны без угадывания префиксов для конкретного шаблона, поля выводим везде, где вы можете увидеть никнейм пользователя и универсальным способом, например mstore.index.tpl, mstore.list.tpl, page.tpl, page.list.tpl, forums.posts.tpl и.п..
Структура файлов
/userfields/
├── inc/
│ └── userfields.functions.php # Основные функции
├── lang/
│ ├── userfields.ru.lang.php # Русская локализация
│ ├── userfields.en.lang.php # Английская локализация
├── setup/
│ ├── userfields.install.sql # SQL для создания таблиц
│ └── userfields.uninstall.sql # SQL для удаления таблиц
├── tpl/
│ └── userfields.admin.tpl # Шаблон для админ-панели
├── userfields.admin.php # Логика управления полями
├── userfields.global.php # Подключение языковых файлов
├── userfields.setup.php # Конфигурация плагина
├── userfields.users.details.tags.php # Теги для вывода полей на страницы публичного профиля пользователей users.details.tpl
├── userfields.users.edit.tags.php # Теги для админского редактирования users.edit.tpl
├── userfields.users.edit.update.done.php # Сохранение изменений администратором
├── userfields.users.loop.php # Вывод полей в списке пользователей users.tpl
├── userfields.users.profile.tags.php # Теги для редактирования профиля users.profile.tpl
├── userfields.users.profile.update.done.php # Сохранение изменений пользователем
└── userfields.usertags.php # Теги для интеграции в другие модули и плагины на своих условиях без специальных преффиксов
- Деинсталляция:
- В админ-панели: Администрирование > Расширения > Userfields > Деинсталлировать.
- Выполняется
userfields.uninstall.sql, удаляющий таблицы. - Удалите папку
plugins/userfieldsвручную.
- Устранение неполадок:
- читать инструкцию по установке или писать на форуме поддержки
Управление полями в админ-панели
Админ-панель: Администрирование > Другие > Userfields .
Интерфейс
- Заголовок: "Управление дополнительными полями пользователей".
- Список типов полей: Таблица с колонками: Код, Название, Порядок сортировки, Редактировать, Удалить.
- Формы: Для добавления/редактирования типов полей.
Добавление типа поля
- Нажмите Добавить тип поля.
- Форма:
- Код (code): Уникальный идентификатор (латинские буквы, цифры, нижнее подчеркивание; макс. 50 символов). Используется в тегах (например,
cell_number→USERFIELDS_CELL_NUMBER). Обязательное, уникальное. - Название (title): Отображаемое имя (например, "Контактный телефон"; макс. 100 символов). Обязательное.
- Порядок сортировки (order_num): Целое число (1 — первый, 2 — второй). Определяет порядок вывода (меньше — выше). Обязательное, по умолчанию 0.
- Код (code): Уникальный идентификатор (латинские буквы, цифры, нижнее подчеркивание; макс. 50 символов). Используется в тегах (например,
- Нажмите Сохранить. Ошибки (дубликат кода, пустые поля) будут отображены.
Редактирование типа поля
- Нажмите Редактировать рядом с полем.
- Измените код, название или порядок (код должен быть уникальным).
- Нажмите Сохранить. Обновите теги в шаблонах, если код изменился.
Удаление типа поля
- Нажмите Удалить и подтвердите.
- Удаляет тип поля и связанные значения в
cot_userfield_values(черезON DELETE CASCADE).
Определение полей
- id: Автоматический уникальный ID.
- code: Идентификатор для тегов (
USERFIELDS_CODE— значение,USERFIELDS_CODE_TITLE— название). - title: Название для форм и вывода.
- order_num: Порядок вывода.
Заполнение полей
- Пользователями: В профиле (
users.profile.tpl) поля отображаются как таблица с названием и полем ввода. Сохраняются при обновлении профиля. - Администраторами: В редакторе (
users.edit.tpl) — аналогичная таблица для любого пользователя. Сохраняется при обновлении. - Формат: Устанавливается в админке плагина. Поля необязательные.
Интеграция в шаблоны
Плагин интегрируется легко и просто в модуль users и также просто в шаблоны других модулей (mstore, page, forums).
Просто внимательно читайте инструкцию и используйте один какой-то способ интеграции в свои шаблоны.
Теги используют код поля в верхнем регистре (например, в админке при создании поля пишем cell_number а выводим в шаблонах уже {USERFIELDS_CELL_NUMBER}).
Все теги обязательно должны оборачиваются в условие проверки функции<!-- IF {PHP|cot_plugin_active('userfields')} --> тут поля ваши <!-- ENDIF --> - так проверяем на уровне движка установлен ли плагин и исключаем ряд возможных глупых ошибок.
Для каждого шаблона есть два способа интеграции: циклом (автоматический вывод всех полей) и индивидуально (кастомная стилизация конкретных полей).
1. Шаблоны модуля users
--
users.profile.tpl (Редактирование профиля) использовать один какой-то способ!!!
1 ЛИБО Циклом (автоматический вывод всех полей) это для ленивых:
- Выводит все поля автоматически с названием и ввода значений, в виде цикла (по-простому - списком, все поля, которые вы создали в админке).
Внутри
<form>(например, после{USERS_PROFILE_COUNTRY}) добавьте:<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="userfields-block"> <!-- BEGIN: USERFIELDS --> <div> <label>{USERFIELDS_FIELD_TITLE}</label> {USERFIELDS_FIELD} </div> <!-- END: USERFIELDS --> </div> <!-- ENDIF -->
2. ЛИБО Индивидуально (кастомная стилизация полей) рекомендуемый способ, не для ленивых:
- Выводит конкретные поля с индивидуальной стилизацией, используя теги без специальных префиксов (например, просто
{USERFIELDS_CELL_NUMBER}поле для ввода и сохранения номера телефона и{USERFIELDS_CELL_NUMBER_TITLE}- название поля, например "Контактный телефон", которое вы указываетет в админке при создании поля). Внутри
<form>(например, после{USERS_PROFILE_COUNTRY}) добавьте:<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="row mb-3"> <!-- IF {USERFIELDS_CELL_NUMBER} --> <div class="userfield"> <label class="userfield-title text-primary">{USERFIELDS_CELL_NUMBER_TITLE}:</label> <div class="userfield-value">{USERFIELDS_CELL_NUMBER}</div> </div> <!-- ENDIF --> <!-- IF {USERFIELDS_COMPANY_NAME} --> <div class="userfield text-danger"> <label class="userfield-title">{USERFIELDS_COMPANY_NAME_TITLE}:</label> <div class="userfield-value">{USERFIELDS_COMPANY_NAME}</div> </div> <!-- ENDIF --> </div> <!-- ENDIF -->- Выводит конкретные поля с индивидуальной стилизацией и порядком в списке.
- Каждое поле вы можете индивидуально стилизировать, например, в оформление поля добавить иконку, разместить текст подсказки, добавить цвет и размер, и т.п.. --
users.edit.tpl (Админское редактирование) использовать один какой-то способ!!!
1 ЛИБО Циклом (автоматический вывод всех полей) это для ленивых:
- Выводит все поля автоматически с названием и ввода значений, в виде цикла (по-простому - списком, все поля, которые вы создали в админке).
Внутри
<form>(например, после{USERS_EDIT_COUNTRY}) добавьте:<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="userfields-block"> <!-- BEGIN: USERFIELDS --> <div> <label>{USERFIELDS_FIELD_TITLE}</label> {USERFIELDS_FIELD} </div> <!-- END: USERFIELDS --> </div> <!-- ENDIF -->
2. ЛИБО Индивидуально (кастомная стилизация полей) рекомендуемый способ, не для ленивых:
- Выводит конкретные поля с индивидуальной стилизацией, используя теги без специальных префиксов (например, просто
{USERFIELDS_CELL_NUMBER}поле для ввода и сохранения номера телефона и{USERFIELDS_CELL_NUMBER_TITLE}- название поля, например "Контактный телефон", которое вы указываетет в админке при создании поля). Внутри
<form>(например, после{USERS_EDIT_COUNTRY}) добавьте:<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="row mb-3"> <!-- IF {USERFIELDS_CELL_NUMBER} --> <div class="userfield"> <label class="userfield-title text-primary">{USERFIELDS_CELL_NUMBER_TITLE}:</label> <div class="userfield-value">{USERFIELDS_CELL_NUMBER}</div> </div> <!-- ENDIF --> <!-- IF {USERFIELDS_COMPANY_NAME} --> <div class="userfield text-danger"> <label class="userfield-title">{USERFIELDS_COMPANY_NAME_TITLE}:</label> <div class="userfield-value">{USERFIELDS_COMPANY_NAME}</div> </div> <!-- ENDIF --> </div> <!-- ENDIF -->- Выводит конкретные поля с индивидуальной стилизацией и порядком в списке.
- Каждое поле вы можете индивидуально стилизировать, например, в оформление поля добавить иконку, разместить текст подсказки, добавить цвет и размер, и т.п..
--
users.details.tpl (Страница публичного профиля) использовать один какой-то способ!!!
1 ЛИБО Циклом (автоматический вывод всех полей) это для ленивых:
- Выводит все поля автоматически с названием и значением, в виде цикла (по-простому - списком, всё, что было заполнено при редактировании профиля).
После
{USERS_DETAILS_COUNTRY_FLAG} {USERS_DETAILS_COUNTRY}добавьте:<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="userfields-details"> <h3>Дополнительные поля</h3> <!-- BEGIN: USERFIELDS_DETAILS --> <div class="userfield"> <label class="userfield-title text-success">{USERFIELDS_FIELD_TITLE}:</label> <div class="userfield-value">{USERFIELDS_FIELD}</div> </div> <!-- END: USERFIELDS_DETAILS --> </div> <!-- ENDIF -->
2. ЛИБО Индивидуально (кастомная стилизация полей) рекомендуемый способ, не для ленивых:
- Выводит конкретные поля с индивидуальной стилизацией, используя теги без специальных префиксов (например, просто
{USERFIELDS_CELL_NUMBER}значение номера телефона и{USERFIELDS_CELL_NUMBER_TITLE}- название поля, например "Контактный телефон"). После
{USERS_DETAILS_COUNTRY_FLAG} {USERS_DETAILS_COUNTRY}добавьте:<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="row mb-3"> <!-- IF {USERFIELDS_CELL_NUMBER} --> <div class="userfield"> <span class="userfield-title">{USERFIELDS_CELL_NUMBER_TITLE}:</span> <span class="userfield-value"> <a href="tel:{USERFIELDS_CELL_NUMBER}" class="fw-semibold">{USERFIELDS_CELL_NUMBER}</a> </span> </div> <!-- ENDIF --> <!-- IF {USERFIELDS_COMPANY_NAME} --> <div class="userfield"> <span class="userfield-title">{USERFIELDS_COMPANY_NAME_TITLE}:</span> <span class="userfield-value">{USERFIELDS_COMPANY_NAME}</span> </div> <!-- ENDIF --> </div> <!-- ENDIF -->- Каждое поле вы можете индивидуально стилизировать, например, сделать кликабельный номер телефона, или в оформление поля добавить иконку и т.п..
--
users.tpl (Список пользователей) использовать один какой-то способ
используется логика userfields.users.loop.php
- Внутри цикла вывода пользователей в списках
<!-- BEGIN: USERS_ROW -->и<!-- END: USERS_ROW --> - Например, после
{USERS_ROW_NAME}добавьте:
1 ЛИБО Циклом (автоматический вывод всех полей) это для ленивых:
Выводит все поля автоматически в виде цикла с названием и значением.
<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="row mb-3"> <!-- BEGIN: USERFIELDS --> <div class="userfield"> <span class="userfield-title">{USERFIELDS_FIELD_TITLE}:</span> <span class="userfield-value">{USERFIELDS_FIELD}</span> </div> <!-- END: USERFIELDS --> </div> <!-- ENDIF -->
2 ЛИБО одним тегом предформатированный HTML-блок (для крайне ленивых)
Выводит все поля автоматически в виде цикла с названием и значением, но это уже предформатированный HTML-блок.
<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="row mb-3"> <hr> {USERS_ROW_FIELD_ROWS_HTML} </div> <!-- ENDIF -->
3 ЛИБО Индивидуально (кастомная стилизация полей) рекомендуемый способ, не для ленивых:
Выводит конкретные поля с индивидуальной стилизацией, используя теги без префиксов специальных (например, просто
{USERFIELDS_CELL_NUMBER}значение номера телефона и{USERFIELDS_CELL_NUMBER_TITLE}- название поля, например "Контактный телефон").<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="row mb-3"> <!-- IF {USERFIELDS_CELL_NUMBER} --> <div class="userfield"> <span class="userfield-title">{USERFIELDS_CELL_NUMBER_TITLE}:</span> <span class="userfield-value"> <a href="tel:{USERFIELDS_CELL_NUMBER}" class="fw-semibold">{USERFIELDS_CELL_NUMBER}</a> </span> </div> <!-- ENDIF --> <!-- IF {USERFIELDS_COMPANY_NAME} --> <div class="userfield"> <span class="userfield-title">{USERFIELDS_COMPANY_NAME_TITLE}:</span> <span class="userfield-value">{USERFIELDS_COMPANY_NAME}</span> </div> <!-- ENDIF --> </div> <!-- ENDIF -->
--
2. Другие модули (через usertags)
Плагин поддерживает интеграцию с другими модулями, который генерирует теги без префиксов ваших расширений для цикла USERFIELDS и индивидуальных полей (например, USERFIELDS_CELL_NUMBER, USERFIELDS_ROWS_HTML). Ниже приведены исправленные интеграции, вся логика в userfields.usertags.php, без использования префиксов.
page.tpl (Страница статьи) использовать один какой-то способ
- Например, после
{PAGE_OWNER_NAME}или в любом удобном месте добавьте
1 ЛИБО Циклом (автоматический вывод всех полей) это для ленивых:
Выводит все поля автоматически в виде цикла с названием и значением.
<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="row mb-3"> <!-- BEGIN: USERFIELDS --> <div class="userfield"> <span class="userfield-title">{USERFIELDS_FIELD_TITLE}:</span> <span class="userfield-value">{USERFIELDS_FIELD}</span> </div> <!-- END: USERFIELDS --> </div> <!-- ENDIF -->
2 ЛИБО одним тегом предформатированный HTML-блок (для крайне ленивых)
Выводит все поля автоматически в виде цикла с названием и значением, но это уже предформатированный HTML-блок.
<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="row mb-3"> <hr> {USERFIELDS_ROWS_HTML} </div> <!-- ENDIF -->
3 ЛИБО Индивидуально (кастомная стилизация полей) рекомендуемый способ, не для ленивых:
Выводит конкретные поля с индивидуальной стилизацией, используя теги без префиксов специальных (например, просто
{USERFIELDS_CELL_NUMBER}значение номера телефона и{USERFIELDS_CELL_NUMBER_TITLE}- название поля, например "Контактный телефон").<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="row mb-3"> <!-- IF {USERFIELDS_CELL_NUMBER} --> <div class="userfield"> <span class="userfield-title">{USERFIELDS_CELL_NUMBER_TITLE}:</span> <span class="userfield-value"> <a href="tel:{USERFIELDS_CELL_NUMBER}" class="fw-semibold">{USERFIELDS_CELL_NUMBER}</a> </span> </div> <!-- ENDIF --> <!-- IF {USERFIELDS_COMPANY_NAME} --> <div class="userfield"> <span class="userfield-title">{USERFIELDS_COMPANY_NAME_TITLE}:</span> <span class="userfield-value">{USERFIELDS_COMPANY_NAME}</span> </div> <!-- ENDIF --> </div> <!-- ENDIF -->
--
mstore.index.tpl / mstore.list.tpl (Списки товаров) использовать один какой-то способ
- Внутри цикла товаров
<!-- BEGIN: MSTORE_ROW -->и<!-- END: MSTORE_ROW -->или<!-- BEGIN: LIST_ROW -->и<!-- END: LIST_ROW --> - Например, после
{MSTORE_ROW_TITLE}добавьте:
1 ЛИБО Циклом (автоматический вывод всех полей) это для ленивых:
Выводит все поля автоматически в виде цикла с названием и значением.
<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="row mb-3"> <!-- BEGIN: USERFIELDS --> <div class="userfield"> <span class="userfield-title">{USERFIELDS_FIELD_TITLE}:</span> <span class="userfield-value">{USERFIELDS_FIELD}</span> </div> <!-- END: USERFIELDS --> </div> <!-- ENDIF -->
2 ЛИБО одним тегом предформатированный HTML-блок (для крайне ленивых)
Выводит все поля автоматически в виде цикла с названием и значением, но это уже предформатированный HTML-блок.
<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="row mb-3"> <hr> {USERFIELDS_ROWS_HTML} </div> <!-- ENDIF -->
3 ЛИБО Индивидуально (кастомная стилизация полей) рекомендуемый способ, не для ленивых:
Выводит конкретные поля с индивидуальной стилизацией, используя теги без префиксов специальных (например, просто
{USERFIELDS_CELL_NUMBER}значение номера телефона и{USERFIELDS_CELL_NUMBER_TITLE}- это название поля, например "Контактный телефон").<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="row mb-3"> <!-- IF {USERFIELDS_CELL_NUMBER} --> <div class="userfield"> <span class="userfield-title">{USERFIELDS_CELL_NUMBER_TITLE}:</span> <span class="userfield-value"> <a href="tel:{USERFIELDS_CELL_NUMBER}" class="fw-semibold">{USERFIELDS_CELL_NUMBER}</a> </span> </div> <!-- ENDIF --> <!-- IF {USERFIELDS_COMPANY_NAME} --> <div class="userfield"> <span class="userfield-title">{USERFIELDS_COMPANY_NAME_TITLE}:</span> <span class="userfield-value">{USERFIELDS_COMPANY_NAME}</span> </div> <!-- ENDIF --> </div> <!-- ENDIF -->
--
mstore.tpl (Страница товара) использовать один какой-то способ
- Например, после
{MSTORE_OWNER_NAME}добавьте:
1 ЛИБО Циклом (автоматический вывод всех полей) это для ленивых:
Выводит все поля автоматически в виде цикла с названием и значением.
<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="row mb-3"> <!-- BEGIN: USERFIELDS --> <div class="userfield"> <span class="userfield-title">{USERFIELDS_FIELD_TITLE}:</span> <span class="userfield-value">{USERFIELDS_FIELD}</span> </div> <!-- END: USERFIELDS --> </div> <!-- ENDIF -->
2 ЛИБО одним тегом предформатированный HTML-блок (для крайне ленивых)
Выводит все поля автоматически в виде цикла с названием и значением, но это уже предформатированный HTML-блок.
<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="row mb-3"> <hr> {USERFIELDS_ROWS_HTML} </div> <!-- ENDIF -->
3 ЛИБО Индивидуально (кастомная стилизация полей) рекомендуемый способ, не для ленивых:
Выводит конкретные поля с индивидуальной стилизацией, используя теги без префиксов специальных (например, просто
{USERFIELDS_CELL_NUMBER}значение номера телефона и{USERFIELDS_CELL_NUMBER_TITLE}- название поля, например "Контактный телефон").<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="row mb-3"> <!-- IF {USERFIELDS_CELL_NUMBER} --> <div class="userfield"> <span class="userfield-title">{USERFIELDS_CELL_NUMBER_TITLE}:</span> <span class="userfield-value"> <a href="tel:{USERFIELDS_CELL_NUMBER}" class="fw-semibold">{USERFIELDS_CELL_NUMBER}</a> </span> </div> <!-- ENDIF --> <!-- IF {USERFIELDS_COMPANY_NAME} --> <div class="userfield"> <span class="userfield-title">{USERFIELDS_COMPANY_NAME_TITLE}:</span> <span class="userfield-value">{USERFIELDS_COMPANY_NAME}</span> </div> <!-- ENDIF --> </div> <!-- ENDIF -->
--
forums.posts.tpl (Посты форума) использовать один какой-то способ
1 ЛИБО Циклом (автоматический вывод всех полей) это для ленивых:
- Например, после
{FORUMS_POSTS_ROW_USER_NAME}в блоке поста добавьте: Выводит все поля автоматически в виде цикла с названием и значением
<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="row mb-3"> <!-- BEGIN: USERFIELDS --> <div class="userfield"> <span class="userfield-title">{USERFIELDS_FIELD_TITLE}:</span> <span class="userfield-value">{USERFIELDS_FIELD}</span> </div> <!-- END: USERFIELDS --> </div> <!-- ENDIF -->
2 ЛИБО одним тегом предформатированный HTML-блок (для крайне ленивых)
Выводит все поля автоматически в виде цикла с названием и значением, но это уже предформатированный HTML-блок.
<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="row mb-3"> <hr> {USERFIELDS_ROWS_HTML} </div> <!-- ENDIF -->
3 ЛИБО Индивидуально (кастомная стилизация полей) рекомендуемый способ, не для ленивых:
Выводит конкретные поля с индивидуальной стилизацией, используя теги без префиксов специальных (например, просто
{USERFIELDS_CELL_NUMBER}значение номера телефона и{USERFIELDS_CELL_NUMBER_TITLE}- название поля, например "Контактный телефон").<!-- IF {PHP|cot_plugin_active('userfields')} --> <div class="row mb-3"> <!-- IF {USERFIELDS_CELL_NUMBER} --> <div class="userfield"> <span class="userfield-title">{USERFIELDS_CELL_NUMBER_TITLE}:</span> <span class="userfield-value"> <a href="tel:{USERFIELDS_CELL_NUMBER}" class="fw-semibold">{USERFIELDS_CELL_NUMBER}</a> </span> </div> <!-- ENDIF --> <!-- IF {USERFIELDS_COMPANY_NAME} --> <div class="userfield"> <span class="userfield-title">{USERFIELDS_COMPANY_NAME_TITLE}:</span> <span class="userfield-value">{USERFIELDS_COMPANY_NAME}</span> </div> <!-- ENDIF --> </div> <!-- ENDIF -->
--
Поддержка
Обсуждение плагина, вопросы и помощь вотдельной теме на форуме.
Лицензия
BSD License. Copyright (c) webitproff 2025.
Комментарии (0)
Автор контента
Онлайн
Sodium Carbonate
Последняя авторизация: 19.07.2026 00:01
- Страница размещена: 07.09.2025 12:44
- Последнее обновление: 26.10.2025 01:27
- Язык:
English