Плагин 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 (для внешних ключей).

 

Установка

 

  1. Подготовка файлов:
    • Скачайте исходный код с репозитория на GitHub.
    • Распакуйте cot-userfields-main.zip и загрузите папку userfields в директорию plugins в корне Cotonti.
  2. Установка через админ-панель:
    • Войдите в админ-панель (/admin.php).
    • Перейдите в Администрирование > Расширения > User Fields.
    • Найдите плагин Userfields и нажмите Установить.
    • Плагин создаёт таблицы cot_userfield_types и cot_userfield_values, добавляя тестовые поля: cell_number (Номер мобильного телефона, порядок 1) и company_name (Название компании, порядок 2).
    • Эти поля — примеры; их можно удалить, отредактировать или создать новые.
  3. Список файлов плагина:
    • 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                  # Теги для интеграции в другие модули и плагины на своих условиях без специальных преффиксов

 
  1. Деинсталляция:
    • В админ-панели: Администрирование > Расширения > Userfields > Деинсталлировать.
    • Выполняется userfields.uninstall.sql, удаляющий таблицы.
    • Удалите папку plugins/userfields вручную.
  2. Устранение неполадок:

Управление полями в админ-панели

Админ-панель: Администрирование > Другие > Userfields .

Интерфейс

  • Заголовок: "Управление дополнительными полями пользователей".
  • Список типов полей: Таблица с колонками: Код, Название, Порядок сортировки, Редактировать, Удалить.
  • Формы: Для добавления/редактирования типов полей.

Добавление типа поля

  • Нажмите Добавить тип поля.
  • Форма:
    • Код (code): Уникальный идентификатор (латинские буквы, цифры, нижнее подчеркивание; макс. 50 символов). Используется в тегах (например, cell_numberUSERFIELDS_CELL_NUMBER). Обязательное, уникальное.
    • Название (title): Отображаемое имя (например, "Контактный телефон"; макс. 100 символов). Обязательное.
    • Порядок сортировки (order_num): Целое число (1 — первый, 2 — второй). Определяет порядок вывода (меньше — выше). Обязательное, по умолчанию 0.
  • Нажмите Сохранить. Ошибки (дубликат кода, пустые поля) будут отображены.

Редактирование типа поля

  • Нажмите Редактировать рядом с полем.
  • Измените код, название или порядок (код должен быть уникальным).
  • Нажмите Сохранить. Обновите теги в шаблонах, если код изменился.

Удаление типа поля

  • Нажмите Удалить и подтвердите.
  • Удаляет тип поля и связанные значения в 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.

12 минут чтения Sodium Carbonate

Комментарии (0)

Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям

Автор контента

webitproff

Онлайн

Sodium Carbonate

Последняя авторизация: 19.07.2026 00:01

  • Страница размещена: 07.09.2025 12:44
  • Последнее обновление: 26.10.2025 01:27
  • Язык:

Похожие страницы

Экстраполя (дополнительные поля) модуля "Форумов"
1 В Cotonti CMF дополнительные поля (extrafields) в модуле форума — это возможность добавить дополнительные данные к
Локализация экстраполей в Cotonti Пошаговая инструкция на примере поля "статус товара"
2 Экстраполя в Cotonti: полное руководство по созданию и локализации значенийВведениеCotonti — мощная и гибкая CMS с
Основные модули и плагины биржи, перечень расширений сборки без движка Cotonti
3 Данный перечень расширений актуален для версии биржи начальных версий. Модули     Projects - проекты, значительно
301 редирект с домена с WWW на домен без WWW
4 301 редирект с домена с WWW на домен без WWW необходимо для того, чтобы поисковые системы понимали, что два URL-адреса
Безопасная сделка. Сделка без риска. Защищённая сделка.
5 Безопасная сделка | плагин для Cotonti | FL Плагин «SBR» - Безопасная сделка - расширения функционала сайта биржи услуг