Виджеты

    ManagerManager: Виджеты

    Виджеты плагина ManagerManager для настройки внешнего вида ресурса в бэкэнд сайта.

    Ограничение ввода данных

    Синтаксис: mm_ddMaxLength($fields, $roles, $templates, $length)

    Описание параметров:

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    fields * Поля документа (или TV), для которых необходимо применить виджет. {comma separated string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}
    length Максимальное количество символов, которые можно ввести. {integer} 150

    Пример: Подключение виджета для TV «Slogan», ограничив количество вводимых символов до 140

    mm_ddMaxLength('Slogan', '', '', 140);

    Синтаксис: mm_ddNumericFields($tvs, $roles, $templates, $allowFloat, $decimals)

    Описание параметров:

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    tvs * Имена TV, для которых необходимо применить виджет. {comma separated string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}
    allowFloat Можно ли вводить числа с плавающей запятой? {0; 1} 1
    decimals Количество цифр после запятой (0 – любое). {integer} 0

    Пример: Сделать возможным ввод только цифр с точностью в 2 знака после запятой в TV «price» для шаблонов c id, равным 15 или 16 и всех ролей

    mm_ddNumericFields('price', '', '15,16', 1, 2);

    Синтаксис: mm_hideTemplates($tplIds, $roles, $templates)

    Описание параметров:

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    tplIds * Id шаблонов, которые необходимо скрыть из списка. {comma separated string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}

    Пример: Скрыть шаблоны с id = 0 и 4 из списка во всех документах для пользователей с id роли = 1

    mm_hideTemplates('0,4', '1');

    Синтаксис: mm_hideFields($fields, $roles, $templates)

    Описание параметров:

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    fields * Поля документа (или TV), которые необходимо скрыть. {comma separated string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}

    Пример: Скрыть поле «псевдоним» у документов с id шаблона = 3 для пользователей с id роли = 1

    mm_hideFields('alias', '1', '3');

    Синтаксис: mm_ddReadonly($fields, $roles, $templates)

    Описание параметров: Значения отображаются при редактировании, но их невозможно изменить.

    Довольно редко, но иногда бывают случаи, когда мы храним какую-то информацию о документе в его TV (например, количество просмотров или скачиваний, рейтинг и т.д.). Такая информация обновляется автоматически (какой-нибудь сниппет/плагин просто сохраняет значение в TV соответствующего документа). И вот Петя вдруг решил отредактировать текст документа: открыл, начал писать, его отвлекли по работе, потом позвонили, потом срочно пришлось уехать, два часа ездил, вернулся, продолжил редактировать. Всё это время документ у него был открыт, данные о количестве скачиваний уже 100 раз успели поменяться (было 3, а стало 33), но у Пети до сих пор отображается 3. Петя закончил свою работу, нажимает «Сохранить» и… количество скачиваний перезаписывается на 3! Неприятная ситуация. Что можно сделать? Вариант 1: можно сделать какую-нибудь супер-системную группу и выставить её для тех TV, значения которых не должны редактироваться пользователями. Неплохой вариант, но не надёжный (может найтись кто-то, кто поставит себе эту группу и обязательно что-то испортит) и не подходит, если хочется видеть эти данные при редактировании документа. Именно для таких случаев и предназначен этот виджет.

    Работа виджета делится на 3 части:

    Перед сохранением документа OnBeforeDocFormSave) получаются и запоминаются актуальные значения необходимых полей (из базы).

    После сохранения (OnDocFormSave) записываются обратно.

    JS делает поля визуально не редактируемыми.

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    fields * Поля документа (или TV), которые необходимо сделать доступными только для чтения. {comma separated string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}

    Пример: Сделать поле TV «myVar» доступным только для чтения для пользователей с id роли = 2

    mm_ddReadonly('myVar', '2');

    Синтаксис: mm_requireFields($fields, $roles, $templates)

    Описание параметров: Добавляет звёздочку красного цвета рядом с именем обязательного для заполнения поля, выдаёт сообщение при попытке сохранить не заполнив обязательные поля, предотвращая сохранение.

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    fields * Поля документа (или TV), которые должны быть обязательными. {comma separated string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}

    Пример: Сделать обязательным для заполнения заголовки и даты публикации всех документов

    mm_requireFields('pagetitle,pub_date');

    Установка необходимых значений

    Синтаксис: mm_inherit($fields, $roles, $templates)

    Описание параметров:

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    fields * Поля документа (или TV), которые необходимо наследовать. {comma separated string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}

    Пример: Выставлять всем новым документам заголовок как у родителя для пользователей с id ролью = 0 или 1

    mm_inherit('pagetitle', '0,1');

    Синтаксис: mm_default($fields, $value, $roles, $templates, $eval)

    Описание параметров: Сейчас TV задаются как «tvN», где N – id TV.

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    fields * Поля документа (или TV), для которых необходимо установить значение по умолчанию. {comma separated string}
    value Значение по умолчанию. Если в качестве поля указано «pub_date» или «unpup_date», а значение пустое, то выставится текущая дата. Также значение может являться строкой PHP-кода, который будет выполнен при параметре «eval» = true. {string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}
    eval Необходимо ли обрабатывать значение параметра «value» как PHP-код? {bollean} false

    Пример: Автоматически выставлять дату отмены публикации спустя 4 недели от текущей для документов с id шаблона = 4

    mm_default('unpub_date', 'return date("d-m-Y H:i:s", now()+(60*60*24*28));', '', '4', true);

    Синтаксис: mm_ddSetFieldValue($fields, $value, $roles, $templates)

    Описание параметров: Похож на mm_default, но выставляет всегда.

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    fields * Имена полей документа или TV, для которых необходимо установить значение. {comma separated string}
    value Значение, которое необходимо установить. {string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}

    Пример: У документов с шаблонами id = 1 и 3 выставить значение TV «someTv» в 'this is some' для редакторов (роль с id = 2)

    mm_ddSetFieldValue('someTv', 'this is some', '2', '1,3');

    Синтаксис: mm_synch_fields($fields, $roles, $templates)

    Описание параметров: Например: чтобы заголовок и пункт меню документа были одинакомыми, – особенно удобно, когда одно из полей скрыто. Работает только с текстовыми полями (input, textarea).

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    fields * Поля документа (или TV), которые необходимо синхронизировать. Необходимо задать минимум 2 поля. {comma separated string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}

    Пример: Сделать значения этих полей всегда одинаковыми (для всех пользователей и документов)

    mm_synch_fields('pagetitle,menutitle,longtitle');

    Изменение названий и подсказок

    Синтаксис: mm_renameField($fields, $newlabel, $roles, $templates, $newhelp)

    Описание параметров:

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    fields * Поля документа или TV, которые необходимо переименовать. {comma separated string}
    newlabel * Новый текст для отображения. {string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}
    newhelp Новый текст подсказки, всплывающей при наведении на иконку рядом с полем, или описания для TV. {string}

    Пример: Переименовать поле «заголовок» у документов с id шаблона = 3 для всех пользователей

    mm_renameField('longtitle', 'ФИО', '', '3');

    Синтаксис: mm_changeFieldHelp($field, $helptext, $roles, $templates)

    Описание параметров:

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    field * Поле документа (или TV), у которого необходимо изменить подсказку. {string}
    helptext * Новый текст подсказки. {string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}

    Пример: Изменить подсказку для поля «псевдоним» у всех документов для пользователей с id роли = 3

    mm_changeFieldHelp('alias', 'Это последний фрагмент адреса страницы', '3');

    Расширение функционала ввода данных

    Синтаксис: mm_ddMultipleFields($tvs, $roles, $templates, $columns, $columnsTitle, $templates, $colWidth, $splY, $splX, $imgW, $imgH, $minRow, $maxRow, $columnsData)

    Описание параметров: Значения записываются в одно через необходимые разделители, например: несколько изображений. Возможности:

    Добавление к одному документу произвольного количества изображений, текстовых полей, списков (с возможностью выбора значений).

    Задание нескольких колонок разных типов (или одинаковых), например: изображения и подписи к ним (параметр «coloumns»).

    Вывод заголовков колонок (параметр «coloumnsTitle»).

    Количество значений (строк) может быть как фиксированным, динамичным, так и в определённых диапазонах (параметры «minRow» и «maxRow»).

    Сортировка (перетаскивание) строк между собой.

    Генерация уникального идентификатора каждой строки (параметр «coloumns»).

    Вывод предопределённых списков значений (параметры «coloumns» и «coloumnsData»). Внимание, это пока в бете!

    Для вывода данных используйте сниппет ddGetMultipleField.

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    tvs * Имена TV, для которых необходимо применить виджет. {comma separated string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}
    columns Типы колонок:
    • field – колонка типа поля;
    • text – текстовая колонка;
    • textarea – колонка с многострочным полем;
    • richtext – колонка с HTML-редактором (TinyMCE);
    • date – колонка с датой;
    • id – скрытая колонка с уникальным идентификатором;
    • select – список с выбором значений (см. параметр «coloumnsData»).
    {comma separated string} 'field'
    columnsTitle Заголовки колонок. {comma separated string}
    colWidth Ширины колонок (может быть задана одна ширина). {comma separated string} 180
    splY Разделитель между строками. {string} '||'
    splX Разделитель между колонками. {string} '::'
    imgW Максимальная ширина превьюшки (для изображений). {integer} 300
    imgH Максимальная высота превьюшки (для изображений). {integer} 100
    minRow Минимальное количество строк. {integer} 0
    maxRow Максимальное количество строк (0 – без лимита). {integer} 0
    columnsData Список возможных значений для полей в формате json, через ||. {separated string}

    Пример: Возможность добавления контактов сотрудников, но не более 5 и не меньше 2, с разными размерами колонок (для текстовой tv «employees»)

    mm_ddMultipleFields('employees', '', '', 'text,text,text', 'Имя,Телефон,Должность', '250,100,100', '||', '::', 300, 100, 2, 5);

    Синтаксис: mm_ddSelectDocuments($tvs, $roles, $templates, $parentIds, $depth, $filter, $max, $labelMask)

    Описание параметров:

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    tvs * Имена TV, для которых необходимо применить виджет. {comma separated string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}
    parentIds * Id родительских документов, дочерние документы которых необходимо выбирать. {comma separated string}
    depth Глубина поиска дочерних документов. {integer} 1
    filter Условия фильтрации документов (чем-то похож на фильтр Ditto), разделённые через '&' между парами и через '=' между ключом и значением. Например: 'template=15&published=1', – получим только опубликованные документы с id шаблона 15. {separated string}
    max Максимальное количество документов, которое пользователь может выбрать (при == 0 – без ограничений). {integer} 0
    labelMask Шаблон отображения элемента в списке выбора документов. Задаётся как строка, содержащая плэйсхолдеры с полями документа (и TV). Также доступен дополнительный плэйсхолдер '[+title+]', в который будет подставлено значение поля «menutitle», а если оно не заполнено, то «pagetitle». {string} '[+title+] ([+id+])'

    Пример:

    mm_ddSelectDocuments();

    Синтаксис: mm_widget_tags($fields, $delimiter, $source, $display_count, $roles, $templates)

    Описание параметров: Для нужной TV автоматически формируется «список» выбора со всеми тегами, при этом, новые теги просто вписываются через разделитель здесь же) на странице редактирования документа. TV должна быть текстового типа.

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    fields * TV, для которых необходимо отобразить теги. {comma separated string}
    delimiter Разделитель между тегами в поле {string} ','
    source TV, из которых должны браться теги для списка выбра. Это позволяет использовать разные поля для ввода тегов и формирования списка выбора. По умолчанию значение берётся из параметра «fields». Не используйте этот параметр, если не уверены. {comma separated string} = fields
    display_count Отображать ли в списке выбора количество документов, в которых используется тег (в скобочках после самого тега)? {boolean} false
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}

    Пример: Сделать для TV «docTags» виджет тегов с отображением количества документов, использующих каждый тег рядом с ним у документов с id шаблона = 2 для всех ролей

    mm_widget_tags('docTags', ',', '', '1', '', '2');

    Синтаксис: mm_widget_colors($fields, $default, $roles, $templates)

    Описание параметров: Выбранный цвет сохраняется в TV в hex формате. TV должна быть текстового типа.

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    fields * TV, для которых необходимо отобразить палитру цветов. {comma separated string}
    default Цвет по умолчанию, который будет вставляться при пустом значении в TV (в случае, если значение по умолчанию у TV не задано стандартными средствами MODx). {string} '#ffffff'
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}

    Пример: Добавить палитру выбора цветов для TV «bgcolor» у документов с id шаблона = 2 для пользователей с id роли = 1 и выставить чёрный цвет по умолчанию

    mm_widget_colors('bgcolor', '#000000', '1', '2');

    Работа с секциями

    Синтаксис: mm_ddCreateSection($title, $id, $tabId, $roles, $templates)

    Описание параметров:

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    title * Текст заголовка новой секции. {string}
    id * Уникальный id новой секции. {string}
    tabId Id вкладки, в которую будет вставлена секция. Можно указать как id одной из стандартных вкладок, так и id вкладки, созданной при помощи mm_createTab. {string} 'general'
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}

    Пример: Создать секцию с заголовком «Категории» в основной вкладке у всех документов для всех пользователей

    mm_ddCreateSection('Категории', 'mycats');

    Синтаксис: mm_ddMoveFieldsToSection($fields, $sectionId, $roles, $templates)

    Описание параметров: К сожалению, невозможно переместить следующие поля: keywords, metatags, which_editor, show_in_menu, menuindex.

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    fields * Поля документа (или TV), которые необходимо переместить. {string}
    sectionId * Id секции, в которую необходимо переместить поля. Можно указать как id одной из стандартных секций, так и id секции, созданной при помощи mm_ddCreateSection. {string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}

    Пример: Переместить TV «profilePhoto» в секцию «images» для всех пользователей и шаблонов

    mm_ddMoveFieldsToSection('profilePhoto', 'images');

    Синтаксис: mm_hideSections($sections, $roles, $templates)

    Описание параметров: «Секции» – это такие области на странице редактирования документа, например: «Содержимое ресурса» или «Параметры (TV)».

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    $sections * Секции, которые необходимо скрыть. {comma separated string}
    $roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    $templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}

    Пример: Скрыть секции «Содержимое ресурса» и «Параметры (TV)» у документов с id шаблона = 3 для пользователей с id роли = 1

    mm_hideSections('content,tvs', '1', '3');

    Синтаксис: mm_renameSection($section, $newlabel, $roles, $templates)

    Описание параметров: «Секции» – это такие области на странице редактирования документа, например: «Содержимое ресурса» или «Параметры (TV)».

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    $section * Секция, которую необходимо переименовать. {'content'; 'tvs'}
    $newlabel * Новый текст заголовка секции. {string}
    $roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    $templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}

    Пример: Переименовать секцию контента документа для пользователей с id роли = 2

    mm_renameSection('content', 'Текстик (отображается на страничке)', '2');

    Работа с вкладками

    Синтаксис: mm_createTab($name, $id, $roles, $templates, $intro, $width)

    Описание параметров:

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    name * Текст заголовка новой вкладки. {string}
    id * Уникальный id новой вкладки. {string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}
    intro Описание новой вкладки, отображается в самом верху (можно использовать HTML). {string}
    width Ширина содержимого новой вкладки, можно использовать css значения (например: '100%', '450px', 'auto'). {string} 680

    Пример: Создать новую вкладку шириной 450px с описанием у документов с id шаблона = 3 или 4

    mm_createTab('SEO', 'seoTab', '', '3,4', '  Здесь вы можете отредактировать всё, что касается поисковой оптимизации. ', '450');

    Синтаксис: mm_moveFieldsToTab($fields, $tabId, $roles, $templates)

    Описание параметров: К сожалению, невозможно переместить следующие поля: keywords, metatags, which_editor, show_in_menu, menuindex.

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    fields * Поля документа (или TV), которые необходимо переместить. {comma separated string}
    tabId * Id вкладки, в которую необходимо переместить поля. Можно указать как id одной из стандартных вкладок, так и id вкладки, созданной при помощи mm_createTab. {string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}

    Пример: Переместить дату публикации документа в основную вкладку для пользователей с id роли = 2

    mm_moveFieldsToTab('pub_date', 'general', '2');

    Синтаксис: mm_hideTabs($tabs, $roles, $templates)

    Описание параметров:

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    tabs * Id вкладок, которые необходимо скрыть. {'general'; 'settings'; 'access'}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}

    Пример: Скрыть вкладку «Права доступа» у документов с id шаблона = 3 для пользователей с id роли = 1

    mm_hideTabs('access', '1', '3');

    Синтаксис: mm_renameTab($tab, $newlabel, $roles, $templates)

    Описание параметров:

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    tab * Id вкладки, которую необходимо переименовать. {'general'; 'settings'; 'access'}
    newlabel * Новый текст заголовка вкладки. {string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}

    Пример: Переименовать вкладку «Общие» для пользователей с id роли = 2

    mm_renameTab('general', 'Основное', '2');

    Карты

    Синтаксис: mm_ddGMap($tvs, $roles, $templates, $w, $h, $hideField)

    Описание параметров: Начальная позиция карты задаётся очень просто: достаточно указать необходимые координаты в качестве «значения по умолчанию» соответствующей TV.

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    tvs * Имена TV, для которых необходимо применить виджет. {comma separated string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}
    w Ширина контейнера с картой. {'auto'; integer} 'auto'
    h Высота контейнера с картой. {integer} 400
    hideField Необходимо ли скрывать оригинальное текстовое поле с координатами. {0; 1} 1

    Пример: Подключение виджета Google Maps для TV «LatLng»

    mm_ddGMap('LatLng');

    Синтаксис: mm_ddYMap($tvs, $roles, $templates, $w, $h, $hideField)

    Описание параметров: Для простого вывода карты на страницу используйте сниппет ddYMap. Начальная позиция карты задаётся очень просто: достаточно указать необходимые координаты в качестве «значения по умолчанию» соответствующей TV.

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    tvs * Имена TV, для которых необходимо применить виджет. {comma separated string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}
    w Ширина контейнера с картой. {'auto'; integer} 'auto'
    h Высота контейнера с картой. {integer} 400
    hideField Необходимо ли скрывать оригинальное текстовое поле с координатами. {0; 1} 1

    Пример: Подключение виджета Yandex Maps для TV «LngLat»

    mm_ddYMap('LngLat');

    Прочее

    Синтаксис: mm_widget_showimagetvs($fields, $maxWidth, $maxHeight, $thumbnailerUrl, $roles, $templates)

    Описание параметров: Аналогичен плагину ShowImageTVs, который не совместим с ManagerManager.

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    fields TV, для которых необходимо отобразить превьюшки. {comma separated string}
    maxWidth Максимальная ширина превьюшки в px. {integer} 300
    maxHeight Максимальная высота превьюшки в px. {integer} 100
    thumbnailerUrl Если у вас установлен PHPThumb, вы можете указать url, где он находится, адрес превью будет обращён к нему с передачей url исходной картинки, ширины и высоты. {string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}

    Пример: Показать превью для TV «mypic» у документов с id шаблона = 2 и отправить за одно на генерацию в phpThumb для получения превьюшек размером 300×200 px

    mm_widget_showimagetvs('mypic', '300', '200', '/assets/snippets/phpthumb/phpThumb.php', '', '2');

    Синтаксис: mm_ddResizeImage($tvs, $roles, $templates, $width, $height, $cropping, $suffix, $replaceFieldVal, $background, $multipleField, $colNum, $splY, $splX, $num, $allowEnlargement)

    Описание параметров: Виджет срабатывает только в момент сохранения документов (событие «OnBeforeDocFormSave») и не создаёт изображений повторно, что обеспечивает минимальный расход ресурсов сервера.

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    tvs * Имена TV с изображениями, для которых необходимо применить виджет. {comma separated string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}
    width * Ширина создаваемого изображения в px. Пустое значение – автоматический расчёт исходя из высоты. Обязателен хотя бы один размер. {integer}
    height * Высота создаваемого изображения в px. Пустое значение – автоматический расчёт исходя из ширины. Обязателен хотя бы один размер. {integer}
    cropping Обрезать ли изображение, пытаясь добиться жесткого соответствия размерам.
    • 0 – не обрезать;
    • 1 – просто обрезать (не изменяя масштаб);
    • 'crop_resized' – сначала уменьшить, затем обрезать;
    • 'fill_resized' – пропорционально уменьшить, заполнив образовавшиеся поля цветом («background»).
    {0; 1; 'crop_resized'; 'fill_resized'} 'crop_resized'
    suffix Суффикс для имен создаваемых изображений. При пустом значении заменяются исходные изображения! {string} '_ddthumb'
    replaceFieldVal Нужно ли переписывать значения в TV на имена созданных изображений (те, что с учётом «suffix»). Не работает при multipleField = 1! {0; 1} 0
    background Цвет фона (используется при cropping = 'fill_resized'). {string} '#FFFFFF'
    multipleField Является ли поле множественным (для mm_ddMultipleFields). {0; 1} 0
    colNum Номер колонки, в которой находится изображение (для mm_ddMultipleFields). {integer} 0
    splY Разделитель строк (для mm_ddMultipleFields). {string} '||'
    splX Разделитель колонок (для mm_ddMultipleFields). {string} '::'
    num Номер строки, которую надо обрабатывать (для mm_ddMultipleFields). {integer; 'all'} 'all'
    allowEnlargement Разрешить увеличение изображения? {0; 1} 1

    Пример: Создать для изображений, выставленных в TV «imageTV», уменьшенные копии, перезаписывая значения в TV

    mm_ddResizeImage('imageTV', '', '', 200, 100, 'crop_resized', '_ddthumb', 1);

    Синтаксис: mm_ddAutoFolders($roles, $templates, $yearsParents, $dateSource, $yearFields, $monthFields, $yearPublished, $monthPublished, $numericMonth)

    Описание параметров:

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates * Id шаблонов, для которых необходимо применить виджет. {comma separated string}
    yearsParents * ID корневых родителей (непосредственных родителей документов-лет). {comma separated string}
    dateSource Поле документа, из которого необходимо брать дату. {string} 'pub_date'
    yearFields Поля документов (и TV), которые необходимо выставить документам-годам. Ассоциативный массив в JSON, где ключ – имя поля, значение – значение. {string: JSON} '{"template":0,"published":0}'
    monthFields Поля документов (и TV), которые необходимо выставить документам-месяцам. Ассоциативный массив в JSON, где ключ – имя поля, значение – значение. {string: JSON} '{"template":0,"published":0}'
    yearPublished Внимание! Устаревший параметр, используйте «$yearFields». Надо ли публиковать документы-годы? {0; 1}
    monthPublished Внимание! Устаревший параметр, используйте «$monthFields». Надо ли публиковать документы-месяцы? {0; 1}
    numericMonth Нужно ли документам-месяцам делать псевдонимы в виде порядкового номера с ведущим нолём (например: «03»). {boolean} false

    Пример:

    mm_ddAutoFolders();

    Синтаксис: mm_ddFillMenuindex($parent)

    Описание параметров: По умолчанию позиция меню в MODx для новых документов просто равна количеству дочерних документов на одном уровне, что не всегда удобно.

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    parent ID документа, для дочерних документов которого должен применяться виджет. Если оставить пустым (не указаывать), то виджет будет применён абсолютно ко всем документам. {integer; ''}

    Пример:

    mm_ddFillMenuindex();

    Синтаксис: mm_widget_accessdenied($ids, $default, $roles)

    Описание параметров: Например, в родительском документе вызвыается сниппет «Ditto», и вы не хотите, чтобы пользователи редактировали этот документ, но хотите, чтобы пользователи могли создавать и редактировать дочерние документы.

    Используйте этот виджет с осторожностью, т.к. он не обеспечивает такой защиты, как встроенная система прав MODx. Пользователь, обладающий техническими знаниями может обойти эту защиту через инструменты для разработки в браузере.

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    ids * Список документов, к которым необходимо запретить доступ. {comma separated string}
    default Сообщение о запрете доступа (разрешён HTML). {string} 'Access denied - Access to current document closed for security reasons.'
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}

    Пример: Запретить доступ к документам с id = 1 и 15 пользователям с id роли = 2 и отобразить произвольное сообщение о запрете доступа

    mm_widget_accessdenied('1,15', 'Этот документ запрещено редактировать. Давай, до свидания!' '2');

    Синтаксис: mm_ddHTMLCleaner($fields, $roles, $templates, $validAttrsForAllTags, $validStyles, $validAttrs)

    Описание параметров:

    НазваниеОписаниеДопустимые значенияЗначение по умолчанию
    fields * Поля документа (или TV), для которых необходимо применить виджет. {comma separated string}
    roles Роли, для которых необходимо применить виждет, пустое значение – все роли. {comma separated string}
    templates Id шаблонов, для которых необходимо применить виджет, пустое значение – все шаблоны. {comma separated string}
    validAttrsForAllTags Разрешённые атрибуты для для всех тегов (атрибуты, которые не нужно удалять, остальные удалятся). {comma separated string} 'title,class'
    validStyles Разрешённые стили для всех тегов (стили, которые не нужно удалять из атрибута «style»). {comma separated string} 'word-spacing'
    validAttrs Разрешённые атрибуты для тегов (они не будут удаляться). В качестве ключа используется имя тега, в качестве значения – разрешённые атрибуты (строка, разделённая через запятую). {string: JSON} '{"img":"src,alt,width,height","a":"href,target"}'

    Пример:

    mm_ddHTMLCleaner();