Структура данных – набор полей для компонента – редактируется на странице списка полей в компоненте. Каждое поле имеет следующие характеристики:
- Название поля. Название поля в таблице MySQL и внутри системы.
Допускаются латинские буквы, цифры, символ подчеркивания. Пример: «BookAuthor».
- Описание. Комментарий к полю. Пример: «Автор книги».
- Тип поля. Возможные варианты:
o Строка – символьное поле;
o Целое число;
o Текстовой блок – мемо-поле (для ввода будет использован элемент формы < textarea>);
o Список – список значений (для ввода будет использован выпадающий список < select>); возвращает значение указанной записи списка;
o Логическая переменная – логическое поле (да/нет); при выводе записи возвращает 1 (да) или 0 (нет);
o Файл – поле типа «файл» (для ввода будет использован элемент формы < input type=file>; возвращает URL файла;
o Число с плавающей запятой;
o Дата и время;
o Связь с другим объектом.
- Формат. Используется по-разному для полей различных типов:
o Строка – url или email;
o Целое, с плавающей запятой, логическое – формат не используется;
o Текстовый блок – «8:40»;
o Список – латинское название списка;
o Файл – «25000:image/*»;
o Дата и время – «event», «event_date», «event_time».
o Связь с другим объектом – «2:Name»
- Обязательно для заполнения. Устанавливает обязательность заполнения данного поля. Если поле не может быть пустым, объект данного компонента не будет добавлен/изменен в случае, если поле не заполнено.
- Возможен поиск по данному полю. Определяет, будет ли это поле участвовать в качестве аргумента для выборки по объектам этого компонента. Подробнее о поиске и выборке см. ниже.
- Приоритет. Определяет очередность вывода полей в формах добавления/изменения (если не определены шаблоны добавления и изменения).
- Значение по умолчанию. Будет записано данное значение, если поле не заполнено (в этом случае поле не должно быть обязательным для заполнения). Если тип поля - «Логическая переменная», то при любом значении в этом поле параметру переменной будет присваиваться значение 1, т.е. «да», независимо от обязательности заполнения данного поля.
- Тип доступа к полю. Поле может быть доступно для записи всем, а может быть предназначено только для администраторов (например, для реализации функционала «вопросы-ответы» – любой может заполнять поле «вопрос», а поле «ответ» – только администратор). Также поле может быть закрыто для всех. Этот вариант используется в некоторых модулях – в поле автоматически записывается некоторая информация – например, количество показов баннера.