# Элементы

{% hint style="danger" %}
Документация находится в процессе наполнения.
{% endhint %}

Все типы по своей сути это элементы (Elements) которые могут содержать разный набор параметров.

{% hint style="warning" %}
Для корректной работы всех возможностей, желательно использовать уникальные ключи для элементов в рамках всей конфигурации на всех уровнях.
{% endhint %}

#### Ниже приведены общие параметры для большинства элементов

## type

Строка. Обязательный параметр, указывающий на тип элемента. Возможно указание подтипа через двоеточие. Например **thumb:image**

## title

Строка. Заголовок для элемента.

## title.attr

Строка. Атрибуты заголовка.

## label

Строка. Название элемента в списке шаблонов, если пропустить данный параметр, то название будет браться из ключа в массиве конфигурации

## placeholder

Строка. Если элемент имеет текстовое поле, то в этом параметр можно указать подсказку для ввода.

## class

Строка. Класс для элемента. Можно использовать классы из bootsrap 4

## attr

Строка. Атрибуты для обертки элемента.

## item.attr

Строка. Атрибуты для элемента. Используется при выборе стандартного типа tv.&#x20;

## default

Строка. Значение по умолчанию

## elements

Строка. Параметр для стандартных типов tv, для ввода множественных значений, с разделителем ||.

## items

Массив. Данные для дочерних элементов.

## items.class

Строка. Класс для обёртки дочерних элементов.

## items.attr

Строка. Атрибуты для обёртки дочерних элементов

## actions

Массив или Булево. Используется для элементов которые могут иметь какие либо действия. Если булево то показывает или скрывает весь блок с действиями.\
Чаще используемые значения:\
**add** - добавление\
**del** - удаление\
**move** - перемещение\
Например - удаление и перемещение `['del', 'move']`

## hidden

Булево. Используется только для дочерних элементов первого уровня, для скрытия шаблона из основного списка. Остаётся доступным при указании в параметре [templates](https://64j.gitbook.io/multifields-2/tipy-i-parametry/row#templates)

## prepare

Строка или Функция. Название сниппета, функции или самой функции для обработки данных на фронте. \
Доступные аргументы \
`$data` - массив с данными, \
`$modx` - объект \DocumentParser, \
`$_MF` - объект Multifields

На фронте можно вызвать для каждого элемента свой обработчик через параметры сниппета как **`` &prepare_<KEY_TEMPLATE>=`snippet` ``**

## tpl

Строка. Шаблон для вывода данных на фронте. Поддерживает теги @CODE, @TPL, @FILE, @CHUNK и др. В качестве значения используется плейсхолдер `[+value+]`

Пример шаблона.

```php
<?php

return [
    'settings' => [],
    'templates' => [
        'Thumb' => [
            'title' => 'Картинка',
            'label' => 'Картинка',
            'type' => 'thumb:image',
            'multi' => 'Thumb',
            'tpl' => '@CODE:<img src="[+value+]">',
            'prepare' => function ($data, $modx) {
                $data['value'] = $modx->runSnippet('phpthumb', [
                    'input' => $data['value'],
                    'options' => 'w=100,h=100,zc=1'
                ]);

                return $data;
            }
        ]
    ]
];
```
