Виджеты плагина 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 | Типы колонок:
|
{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'} | '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();