Skip to content
  1. Компоненты
  2. MiniShop3
  3. Интерфейс админки
  4. Утилиты
  5. Поля модели

Утилиты: Поля модели ​

Поля из таблицы ms3_model_fields: отображение уже существующих колонок моделей.

Назначение ​

Правите подписи, виджеты и секции существующих полей; данные в таблицах не меняются.

Не путать с page-fields

Поля товара (ms3_product_fields, page_key=product_data) настраивают только вкладку «Свойства товара» на карточке товара. Дополнительные поля создают новые колонки в БД. Cookbook: Поля модели.

Отличие от дополнительных полей ​

ХарактеристикаПоля моделиДополнительные поля
ИсточникСуществующие поля в БДНовые поля
Создание колонокНетДа (ALTER TABLE)
УдалениеТолько из конфигурацииПолное удаление
ПрименениеНастройка отображенияРасширение схемы

Интерфейс ​

Выбор модели ​

Фильтр по модели вверху страницы — доступны 4 модели:

  • msOrder — заказы
  • msOrderAddress — адреса
  • msOrderProduct — позиции в заказе
  • msVendor — производители

msProductData в этом списке нет: данные товара настраиваются в Поля товара.

Панель секций ​

Левая панель: секции выбранной модели.

Таблица полей ​

Правая часть: поля и настройки.

КолонкаОписание
ИмяСистемное имя поля
НазваниеОтображаемое название
Тип (xtype)Тип виджета
СекцияПринадлежность к секции
ВидимостьПоказывать ли поле
ШиринаШирина в сетке (3-12)

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

Кликните строку, откроется диалог редактирования.

Основные параметры ​

ПараметрОписание
НазваниеОтображаемое имя поля
ОписаниеПодсказка под полем ввода
СекцияГруппа, в которой отображается поле
ВидимостьПоказывать поле в форме

Тип виджета (xtype) ​

ТипОписание
textfieldТекстовое поле
numberfieldЧисловое поле
textareaМногострочное поле
comboВыпадающий список
datefieldВыбор даты
checkboxФлажок

Ширина в сетке ​

Сетка на 12 колонок:

ЗначениеШиринаОписание
325%Четверть строки
433%Треть строки
650%Половина строки
867%Две трети строки
12100%Вся строка

Источник данных для combo ​

Для типа combo укажите JSON-конфигурацию с обязательным source.type.

Модель (класс из реестра):

json
{
  "source": {
    "type": "model",
    "class": "MiniShop3\\Model\\msOption",
    "valueField": "id",
    "labelTemplate": "{caption}",
    "where": {"active": true},
    "limit": 500
  }
}

Статический список:

json
{
  "source": {
    "type": "static",
    "options": [
      ["value1", "Вариант 1"],
      ["value2", "Вариант 2"]
    ]
  }
}

Поле url не нужно: готового роута GET /api/mgr/options/list нет, список опций отдаёт GET /api/mgr/options.

Управление секциями ​

Создание секции ​

  1. Нажмите кнопку «+» в панели секций
  2. Заполните форму:
ПолеОписание
КлючУникальный идентификатор
НазваниеОтображаемое название
ПорядокПозиция в списке секций

Редактирование секции ​

Кликните иконку редактирования рядом с названием секции.

Удаление секции ​

Внимание

При удалении секции поля не удаляются, а перемещаются в «Без секции».

Порядок секций ​

Перетаскивайте секции, чтобы сменить порядок.

Примеры использования ​

Скрытие технических полей ​

Поля, которые обычно скрывают:

  • id — генерируется автоматически
  • createdon — технические даты
  • source — если используется один источник

API-эндпоинты ​

Список моделей ​

http
GET /api/mgr/model-fields/models

Ответ:

json
{
  "success": true,
  "data": {
    "models": [
      { "value": "msOrder", "label": "Заказ" },
      { "value": "msVendor", "label": "Производитель" }
    ]
  }
}

Список полей модели ​

http
GET /api/mgr/model-fields?model=msOrder

Создание поля ​

http
POST /api/mgr/model-fields

Тело — параметры поля (те же, что в диалоге: label, xtype, section_id, visible, width, …). Требуется mssetting_save.

Обновление поля ​

http
PUT /api/mgr/model-fields/{id}

Тело запроса:

json
{
  "label": "Артикул товара",
  "xtype": "textfield",
  "section_id": 1,
  "visible": true,
  "width": 6,
  "description": "Уникальный код товара"
}

Переупорядочивание полей ​

http
PUT /api/mgr/model-fields/ranks

Тело — JSON с новым порядком полей (как в drag-and-drop интерфейса). Требуется mssetting_save.

Секции модели ​

http
GET /api/mgr/model-fields/sections/msOrder

Создание секции ​

http
POST /api/mgr/model-fields/sections

Тело запроса:

json
{
  "model": "msOrder",
  "section_key": "prices",
  "label": "Цены",
  "sort_order": 10
}

Редактирование секции ​

http
PUT /api/mgr/model-fields/sections/{id}

Тело — изменяемые поля секции (label, sort_order, …). Требуется mssetting_save.

Переупорядочивание секций ​

http
PUT /api/mgr/model-fields/sections/ranks

Тело — JSON с новым порядком секций. Требуется mssetting_save.

Удаление секции ​

http
DELETE /api/mgr/model-fields/sections/{id}

Связь с конфигурацией ​

Не путайте с Поля товара (product_data) и с Колонки гридов. Влияние на CSV-импорт и публичный API этим экраном не задаётся.