Содержание
- Введение в экстраполя Cotonti
- Полный список типов экстраполей
- Инструкция по настройке каждого типа на примере cot_pages
- input — Текстовое поле
- inputint — Целое число
- currency — Денежная сумма
- double — Число с плавающей точкой
- textarea — Многострочный текст
- select — Выпадающий список
- checkbox — Флажок
- radio — Переключатели
- datetime — Дата и время
- country — Страна
- range — Диапазон целых чисел
- checklistbox — Список с множественным выбором
- file — Загрузка файла
- Переменные в HTML-коде поля
Введение в экстраполя Cotonti
Экстраполя (Extrafields, дополнительные поля) — это механизм Cotonti, позволяющий администратору добавлять свои собственные поля к существующим сущностям: страницам, пользователям, категориям и другим. Все настройки выполняются через удобный веб-интерфейс в административной панели, без необходимости писать код или править файлы на сервере.
Например, если вам нужно указывать для каждой страницы произвольный подзаголовок, дату события, стоимость товара или прикреплять дополнительный PDF-файл — всё это можно сделать, создав нужное экстраполе за несколько минут.
Все существующие в системе экстраполя можно посмотреть по адресу:https://cotonti.local/ru/admin/extrafields
Для конкретного модуля, например «Страницы», перейдите по ссылке:https://cotonti.local/ru/admin/extrafields?n=cot_pages
(вместо cot_pages может быть любая другая таблица, зарегистрированная для работы с экстраполями).
Полный список типов экстраполей
Cotonti поддерживает следующие типы дополнительных полей:
| Тип поля | Тип данных в БД | Назначение |
| input | VARCHAR(255) | Обычная текстовая строка |
| inputint | INT | Целое число |
| currency | DOUBLE(13,2) | Денежная сумма (два знака после запятой) |
| double | DOUBLE | Число с плавающей точкой |
| textarea | TEXT | Многострочный текст |
| select | VARCHAR(255) | Выпадающий список (одиночный выбор) |
| checkbox | TINYINT | Флажок (0/1) |
| radio | VARCHAR(255) | Переключатели (один вариант из нескольких) |
| datetime | INT | Дата и время (хранится в виде timestamp) |
| country | CHAR(2) | Страна (выбор из стандартного списка) |
| range | INT | Целое число из заданного диапазона |
| checklistbox | TEXT | Список с множественным выбором (значения через запятую) |
| file | VARCHAR(255) | Загрузка произвольного файла |
Инструкция по настройке каждого типа на примере cot_pages
Ниже для каждого типа поля описано, как заполнять форму создания/редактирования экстраполя в админке (на примере таблицы страниц cot_pages). Для всех типов обязательными являются поля:
- Имя поля (field_name) — латинскими буквами и цифрами, без пробелов, например:
event_start,product_price. - Описание (field_description) — краткое пояснение, которое будет видно в форме редактирования и может использоваться как заголовок в шаблонах.
Остальные поля формы зависят от выбранного типа.
input — Текстовое поле
Используется для ввода короткой текстовой информации: название, подпись, идентификатор и т.п.
- HTML-код поля: можно оставить пустым, тогда будет использован стандартный HTML.
- Параметры (field_params): можно указать регулярное выражение для проверки ввода (например,
/^[0-9]+$/для цифр). Если оставить пустым — проверка не выполняется. - Значения выбора (field_variants): не используется (будет заблокировано).
- Значение по умолчанию: любой текст, который будет подставлен при создании новой записи.
- Парсинг: HTML или Text — влияет на обработку значения при выводе.
- Обязательное: включите, если поле обязательно для заполнения.
Пример: поле «Заголовок на форуме»
- Имя:
forum_link - Описание:
Тема на форумі - HTML-код:
<input class="form-control" type="text" name="{$name}" value="{$value}" maxlength="255" /> - Значение по умолчанию: пусто
inputint — Целое число
Для ввода целых чисел. При сохранении значение приводится к типу integer.
- HTML-код поля: можно оставить пустым.
- Параметры (field_params): минимальное и максимальное значение через запятую, например:
1,100. Если оставить пустым — без ограничений. - Значения выбора: не используется.
- Значение по умолчанию: число.
- Обязательное: по необходимости.
Пример: поле «Количество мест»
- Имя:
seats - Описание:
Количество мест - Параметры:
1,500 - Значение по умолчанию:
1
currency — Денежная сумма
Число с двумя знаками после запятой. Подходит для цен, сумм, финансовых показателей.
- Параметры: минимальное и максимальное значение через запятую, например:
0,999999.99. - Значение по умолчанию: число (можно с плавающей точкой).
- Остальные параметры — аналогично input.
Пример: поле «Цена товара»
- Имя:
price - Описание:
Цена товара - Параметры:
0,100000 - Значение по умолчанию:
0.00
double — Число с плавающей точкой
Аналогично currency, но без фиксированных двух знаков после запятой. Подходит для любых нецелых чисел.
- Параметры: минимальное и максимальное значение через запятую, например:
0,100.5. - Значение по умолчанию: число с плавающей точкой.
Пример: поле «Стоимость билета» (как в вашей базе — event_ticketprice)
- Имя:
event_ticketprice - Описание:
стоимость билета - Параметры: пусто
- Значение по умолчанию: пусто
textarea — Многострочный текст
Для ввода длинного текста с переносами строк. Обычно используется для описаний, комментариев, больших заметок.
- HTML-код поля: стандартный
<textarea>, можно добавить атрибутыrowsиcols. - Параметры: не используется.
- Значения выбора: не используется.
- Значение по умолчанию: можно указать текст.
Пример: поле «Описание программы события» (event_description)
- Имя:
event_description - Описание:
Описание программы события - HTML-код:
<textarea class="form-control" name="{$name}" rows="{$rows}" cols="{$cols}" maxlength="255">{$value}</textarea>
select — Выпадающий список
Позволяет выбрать одно значение из заданного набора. Значения перечисляются через запятую в поле «Значения для select/radio».
- Значения выбора (field_variants):
значение1,значение2,значение3(без пробелов вокруг запятых). - Параметры: не используется.
- Значение по умолчанию: одно из значений списка.
Пример: поле «Сезон» (event_seson)
- Имя:
event_seson - Описание:
Сезон - Значения выбора:
unknown,winter,summer,autumn,spring - Значение по умолчанию:
unknown - HTML-код (если нужен свой):
<select class="form-select" name="{$name}">{$options}</select>
checkbox — Флажок
Простой переключатель «Да/Нет». Сохраняет значение 1 (включено) или 0 (выключено).
- Параметры: не используется.
- Значения выбора: не используется.
- Значение по умолчанию:
1(включено) или0(выключено).
Пример: поле «Активно»
- Имя:
is_active - Описание:
Активно - Значение по умолчанию:
1
radio — Переключатели
Группа радиокнопок для выбора одного значения. Список значений задаётся аналогично select.
- Значения выбора: через запятую, например:
option1,option2,option3. - Значение по умолчанию: одно из вариантов.
- Параметры: не используется.
Пример: поле «Тип материала»
- Имя:
content_type - Описание:
Тип материала - Значения выбора:
article,news,review - Значение по умолчанию:
article
datetime — Дата и время
Позволяет выбрать дату и время с помощью селекторов. Значение хранится как timestamp (целое число).
- Параметры (field_params): строка формата
мин_год,макс_год,формат_даты. Если не указан формат даты, при выводе будет показан timestamp. В формате даты используются обозначения, принятые в PHP-функцииdate(), например:d.m.Y H:i(день.месяц.год часы:минуты). Важно: не используйте%dи подобные — они не поддерживаются в этом поле. - Значения выбора: не используется.
- Значение по умолчанию: можно оставить пустым или задать относительную дату:
+1 week(через неделю),-1 day(вчера) и т.д.
Реальный пример:
- Имя:
event_start - Описание:
Начало события - Параметры:
2024,2030,d.m.Y H:i - Значение по умолчанию: пусто
- HTML-код (как у вас):
<div class="row g-2">...{$day}...{$month}...{$year}...{$hour}...{$minute}...</div>
При таком заполнении поле будет корректно отображать дату и время.
country — Страна
Выпадающий список стран. Значение — двухбуквенный код страны (например, AE, US).
- Параметры: не используется.
- Значения выбора: не используется (список стран фиксирован).
- Значение по умолчанию: можно указать код страны, например:
AE.
Пример: поле «Страна происхождения»
- Имя:
origin_country - Описание:
Страна происхождения - Значение по умолчанию:
AE
range — Диапазон целых чисел
Выпадающий список целых чисел в заданном диапазоне (например, от 1 до 10).
- Параметры: минимальное и максимальное значение через запятую, например:
1,10. - Значения выбора: не используется.
- Значение по умолчанию: число из диапазона.
Пример: поле «Оценка»
- Имя:
rating - Описание:
Оценка - Параметры:
1,5 - Значение по умолчанию:
1
checklistbox — Список с множественным выбором
Группа флажков, из которых можно выбрать несколько вариантов. Значения сохраняются в текстовом виде через запятую.
- Значения выбора: список значений через запятую (как у select).
- Параметры: можно указать разделитель, который будет использоваться при выводе (по умолчанию запятая с пробелом).
- Значение по умолчанию: одно или несколько значений через запятую.
Пример: поле «Категории»
- Имя:
categories - Описание:
Категории - Значения выбора:
news,articles,events - Значение по умолчанию:
news,articles
file — Загрузка файла
Позволяет загрузить произвольный файл. В значении сохраняется имя файла.
- Значения выбора: разрешённые расширения через запятую (например:
jpg,jpeg,png,gif,pdf). Если оставить пустым — разрешены любые. - Параметры: директория для загрузки файлов (относительно корня сайта). По умолчанию используется
datas/photos. - Значение по умолчанию: обычно пустое.
Пример: поле «Презентация»
- Имя:
presentation - Описание:
Файл презентации - Значения выбора:
pdf,ppt,pptx - Параметры:
datas/presentations
Переменные в HTML-коде поля
При создании собственного HTML-кода для поля можно использовать специальные переменные:
{$name}— атрибут name для поля ввода.{$value}— текущее значение поля.{$attrs}— дополнительные атрибуты (например, при использовании стандартного input_text).{$day}, {$month}, {$year}, {$hour}, {$minute}— для типа datetime.{$rows}, {$cols}— для textarea.{$options}— для select, radio и подобных.{$error}— сообщение об ошибке валидации.