multiTV представляет собой пакет для MODX Evolution, предназначеный для управления контентом.
Этот пакет добавляет новый тип переменной шаблона (TV-параметра), состоящий из мульти-элементов.
Пакет содержит три основные части
- Пользовательская переменная для отображения и редактирования мульти-элементов - списоков или datatable
- Сниппет для отображения значения переменной шаблона
- Модуль редактирования содержимого пользовательских таблиц базы данных
а также некоторые дополнения
- Модификатор PHx
- Экстендер Ditto multiTvFilter
- Сниппет для старых установок, чтобы обновить содержимое переменных шаблона в новый формат, введенный с версии 1.4.11.
Модуль
Модуль multiTV Database Manager обеспечивает почти те же параметры, как и переменная шаблона multiTV в режиме datatable. Главное отличие - это прямой доступ к таблицам базы данных MODX Evolution.
С Database Manager можно управлять (CRUD) собственными таблицами базы данных.
Конфигурация
Каждый файл конфигурации создаст соответствующую вкладку в модуле Database Manager. Файлы конфигурацйии находятся в папке assets/tvs/multitv/moduleconfigs
. Смотрите пример файла конфигурации event_log.moduleconfig.json
Каждый файл конфигурации содержит JSON массив со следующими параметрами:
Таблица
таблица базы данных с ключем table
. Имя таблицы будет служить префиксом таблицы MODX.
Заголовок
Название вкладки в модуле Database Manager с ключем caption
.
Процессоры
Путь к папке с процессорами можно установить в ключе processors
. Если не задано, то по умолчанию используются процессоры assets/tvs/multitv/processors
. Если задано, то процессоры извлекаются из вложенной папки assets/tvs/multitv/processors
названой по значению ключа. If that subfolder does not exist, the value points to a subfolder of the MODX base path.
Существует пять процессоров, используемых в данный момент.
Процессоры | Описание |
---|---|
loadtable | Загружает в текущую таблицу с limit и offset в datatable |
loadrecord | Загружает строки таблицы в редактирование слоя |
createrecord | Создает новую строку таблицы для редактирования слоя |
deleterecord | Удаляет строку таблицы |
saverecord | Сохраняет значения редактируемого слоя в строке таблицы |
Поля
Поля таблицы базы данных могут быть определены в ключе fields
. Этот ключ содержит массив fieldnames и каждый fieldname содержит массив свойств поля.
Свойство | Описание | Значение по умолчанию |
---|---|---|
caption | Заголовок (при horizontal) или лейбл (при vertical) для поля ввода | - |
type | Тип поля ввода (используются все типы ввода MODX кроме url и richtext, добавлен thumb для отображения эскизов изображений) и unixtime для конвертации datetime таблицы данных в unixtime и наоборот |
text |
elements | Для ввода возможных значений переменной, например, для выпадающего списка всех дочерних документов корневой папки сайта: @SELECT `pagetitle`, `id` FROM `modx_site_content` WHERE parent = 0 ORDER BY `menuindex` ASC |
- |
default | Значение по умолчанию. Это значение может содержать вычисления. Может содержать два плэйсхолдера: {i} - автоматически увеличивающийся индекс, {alias} - псевдоним редактируемого документа. |
- |
thumbof | Имя переменной для миниатюры изоображения. Миниатюра будет отображена в этой области. | - |
width | Ширина поля ввода | 100 |
During adding/editing one row a layer is displayed. In this editing layer the MODX input type richtext is not usable at the moment (degrades to textarea).
Столбцы
Видимые столбцы datatable могут быть определены в ключе columns
. Этот ключ содержит массив параметров столбцов. Каждый параметр столбца содержит массив свойств. Если свойство не задано, используется свойство ключа fields
.
Свойство | Описание | Значение по умолчанию |
---|---|---|
fieldname | (обязательный параметр) Имя свойства | - |
caption | Заголовок столбца | Заголовок для fields |
width | Ширина столбца | Ширина дял fields |
render | Enable rengering of the column content with this PHx capable string | - |
Редактирование слоев
Содержимое редактируемого слоя во время добавления/редактирования одной строки может быть определено в ключе form
. Этот ключ содержит массив параметров вкладки form.
Свойство | Описание | Значение по умолчанию |
---|---|---|
caption | (обязательный параметр) Заголовок вкладки form | - |
content | (обязательный параметр) Ассоциативный массив параметров полей | - |
Each form tab setting contains an associative array of field properties (the key contains the fieldname in fields
). If a field property is not set, the field property in fields
is used.
Свойство | Описание | Значение по умолчанию |
---|---|---|
caption | Заголовок для ввода | Заголовок для fields |
Кнопки
Кнопки для модуля Database Manager могут быть определены в ключе buttons
. Этот ключ содержит ассоциативный массив конфигурации кнопок.
Свойство | Описание | Значение по умолчанию |
---|---|---|
position | (обязательный параметр) Положение кнопок (может быть topleft , topright , bottomleft or bottom right ) |
- |
buttons | (обязательный параметр) Ассоциативный массив конфигурации кнопок | - |
Каждая конфигурация конопок содержит ассоциативный массив параметров кнопок.
Property | Description | Default |
---|---|---|
caption | текст на кнопке | - |
icon | иконка для кнопки, расположенная в assets/tvs/multitv/css/images |
- |
processor | имя обработчика файла assets/tvs/multitv/processors/[key] (key contains the group config key) | - |
form | Массив параметров вкладки form (см. редактирование слоев) | - |
Пример генерации кнопки.
"buttons": { "coupons": { "position": "topright", "buttons": { "generate": { "caption": "Generate", "icon": "wand.png", "processor": "generate", "form": [ { "caption": "Coupon", "content": { "count": {}, "discount": {}, "validuser": {}, "validgroup": {}, "validuntil": {}, "maxuse": {} } } ] } } } },
Другие опции
Другие опции могут быть определены в ключе configuration
.
Свойство | Описание | Значение по умолчанию |
---|---|---|
radioTabs | Tabs in the datatable editing layer are displayed as radio buttons. The button state is saved in fieldTab column of each table row (this column has to exist). | false |
sorting | Enable sorting by column header. | false |
sortindex | Column name that ist used as sorting index. The column type has to be integer and it should contain an autoincremented index (see in Fields) as default value. | false |