В MODX Revolution можно создавать дополнительные поля с табличными параметрами ввода. Для этих целей идеально подходит дополнение MIGX. Пакет MIGX позволяет работать как с небольшим объемом данных, сохраняя их в JSON как обычное tv-поле, так и с обычными таблицами в базе данных. При этом MIGX предоставляет удобный интрерфейс для ввода и редактирования данных в таблице. Давайте рассмотрим, как создать и настроить редактирование отдельной таблицы в базе данных для сайта на движке MODX Revolution.
Идем в меню установленной компоненты MIGX и настраиваем:
Создание пакета в core/components
Прежде всего надо создаь пакет в папке core/components, где будет располагаться схема и генерируемые php-файлы для нашей отдельной таблицы. Вручную его создавать не надо. MIGX предоставляет ui-интерфейс для этой операции.
Сохраняем схему для кастомной таблицы
Для работы с отдельной таблицей нам наверняка понадобится чтение данных через API MODX. Для этого необходима ORM-прослойка для работы с базой данных. Чтобы сгенерировать класс для работы с нашей таблицей, достаточно описать структуру таблицы в схеме - специальном xml-файле. Файл схемы будет хранится в пакете, который мы создали на предыдущем шаге. Заполнить схему можно также через интерфейс MIGX:
Код схемы из примера можно получить по ссылке. Важные параметры для замены:
- model package="pages" - в package задается название пакета, который вы создавали на предыдущему шаге;
- object class="CustomPages" table="custom_pages". Class - название класса для работы с вашей отдельной таблицей через API MODX, а table - название таблицы в базе данных;
- fields - описание полей, которые должны быть в таблице;
- index - описание индексов таблицы.
Если вы создаете отдельную таблицу для товаров, то наверняка понадобится добавить поля для цены и изображения. В схеме из примера их нет.
Создаем таблицу
И теперь, сохранив схему, мы можем создать таблицу. Всё необходимое есть на вкладке - create Tables:
Создание интерфейса для редактирования таблицы из панели администрирования MODX
Для работы с нашей отдельной таблицей из админ-панели MODX нам надо настроить конфигурацию MIGX:
Для этого нам надо перейти уже на новую вкладку - вкладку MIGX.
Настройка конфигурации MIGX для отображения таблицы в админ-панели
Для обязательного заполнения нам понадобятся 5 вкладок:
- Settings - достаточно заполнить поле Name - это будет имя конфигурации, которое нам понадобится вдальнейшем.
- Formtabs - настройка полей ввода для добавления/редактирования строки из отдельной таблицы.
- Columns - какие поля из отдельной таблицы будут отображаться в табличном редакторе в админ панели.
- Actionbuttons - какие кнопки выводить перед таблицей (в том числе кнопка для добавления записи!)
- MIGXdb-Settings - данные об отдельной таблице и ORM-класса для работы с ней, чтобы MIGX знал, откуда брать данные в визуальную компоненту и куда сохранять.
Добавление текстового поля на вкладку Formtabs
Достаточно заполнить поля:
- Fieldname - название поля из таблицы.
- Caption - подпись, которая будет стоять рядом с полем в форме редактирования.
Если надо, чтобы поле ввода было не текстовое, а изображение или любой другой тип ввода, доступный для tv, - надо указать название этого типа в поле Input TV type, к примеру для content можно указать richtext - чтобы появился редактор для текста.
Добавить кнопки для управления таблицей
Для этого надо заполнить вкладвку Actionbuttons. Эти кнопки появляются над таблицей. Обязательно надо отметить чекбокс с addItem - это кнопка для добавления записи в таблицу. Остальные - по желанию.
Подвязка таблицы к шаблону
Теперь, когда у нас есть конфигурация, хотя бы с заполненной вкладкой Formtabs и вкладкой Actionbuttons - можно посмотреть, как будет выглядить форма для ввода и редактирования данных в таблице. Для этого нужно создать дополнительное поле с параметрами ввода migxdb и указать в поле "Конфигуарция" - название, которое вводили на вкладке Settings в конфигурации MIGX:
Настройка связи с базой данных
Для обмена данными с базой в конфигурации MIGX на вкладке MIGXdb-Settings надо указать пакет и класс для таблицы, которые были созданы в процессе сохранения схемы. Также можно настроить порядок сортировки, кол-во вывода записей на одной странице и т.д. И выбрать режим загрузки данных. По умолчанию стоит загрузка данных по запросу. Удобно ставить, чтобы данные загружались вместе со странице автоматически - это параметр Load Grid со значением auto.
Колонки для таблицы MIGX
Теперь осталось настроить колонки таблицы, которые мы хотим видеть в админ панели. Для этого заполняем вкладку Columns. Важно указать среди прочих колонок - колонку id - она используется для пакетных операций и для операций контекстного меню со строкой. Без этого столбца операции над строкой работать не будут! Столбцу можно задать сортировку, ширину и т.д. Поле Header - заголовок колонки, Field - поле из нашей отдельной таблицы.
Этого всего достаточно, чтобы создать отдельную таблицу в базе данных вашего сайта на MODX Revolution, и настроить удобный интерфейс для работы с ней через админ панель.
Ещё один важный момент: в таблицах должно присутствовать поле resource_id - это поле устанавливает связь с Ресурсами из MODX, через него определяется, у какого из ресурсов отображать строки из вашей отдельной таблицы для просмотра и редактирования в админ-панели сайта!
Количество просмотров: 3 300