Поддержать Проект

Обратная связь

[MODX] Guru
  • Информация
  • Разработчикам
  • Дополнения
    • DocLister
    • DLMenu
    • DLCrumbs
    • DLBuildMenu
    • DLLastViews
    • DLSiblings
    • DLRequest
    • DLglossary
    • DLSitemap
    • DocInfo
    • FormLister
    • Wayfinder
    • phpthumb
    • LikeDislike
    • eForm
    • Ditto
    • multiTV
    • AjaxMegaSearch
    • AjaxSearch
    • WebLoginPE
    • Breadcrumbs
    • CodeMirror
    • AnythingRating
    • Easy Newsletter
    • FirstChildRedirect
    • OpenGraphTags
    • ddTypograph
    • TagSaver
    • BlackList
    • CfgTv
    • ModxAccount
    • Forgot Manager Login
    • GetField
    • if
    • Jot
    • ListChild
    • ListIndexer
    • ManagerManager
      • Установка
      • Параметры
      • Виджеты
      • Примеры
      • Дополнительно
    • ddMMEditor
    • MaxiGallery
    • MemberCheck
    • ddGetMultipleField
    • MetaX
    • MODxBB и phpBB
    • Yams
    • Personalize
    • PHx
    • Reflect
    • tagLinks
    • TransAlias
    • TvTagCloud
    • UltimateParent
    • WebSignup
    • WebLogin
    • countViews
    • thumb
    • imageCaptor
    • optimizeJPG
    • Preview Next
    • Shopkeeper
    • SiteMap
    • Sass
    • Selector
    • SimpleGallery
    • SimpleTube
    • SimpleFiles
    • Star Rating
    • MinifyX
    • adminNav
    • SimplePolls
    • CResource
    • MODxAPI
    • customTables
    • HtmlInLine
    • HtmlMinModxEvo
    • SHKUserProfile
    • PickDocsInTree
    • evoSearch
    • editDocs
    • PageBuilder
    • HybridAuth
    • Compare
    • alterTitle
  • Виджеты
  • Уроки
  • Разработчики
  • Готовые примеры
  • Блог
  • Конфиги
  • HTML коды
© [MODX] Guru
  • ManagerManager

ManagerManager: Дополнительно

  • Дополнения
  • ManagerManager
  • Дополнительно
1043

ManagerManager: Дополнительно

Модуль ddMMEditor

Модуль для удобного редактирования файла конфигурации плагина ManagerManager.

Возможности:

  • визуальное создание правил для MM;
  • применение правил к необходимым шаблонам и ролям в два клика;
  • autocomplete со всеми именами полей и TV;
  • объединение правил в группы по смыслу (группы можно называть произвольными именами);
  • сворачивание-разворачивание групп для удобного просмотра в общем виде;
  • drag'n'drop правил и групп между собой;
  • возможность «ручной» вставки произвольного кода в начало и конец конфигурационного файла.

Установка

Содержимое файла module.php должно быть скопировано в поле «Код модуля» в меню создания нового модуля. Остальные файлы должны находиться в assets/modules/ddmmeditor/... (в архиве уже создана нужная структура папок). Модуль изменяет файл assets/plugins/managermanager/mm_rules.inc.php плагина ManagerManager.

Внимание! Чтобы ManagerManager использовал правила, созданные модулем, параметр «Configuration Chunk» в конфигурации плагина (вкладка «Конфигурация») должен быть пустым.

Сниппет ddGetMultipleField

Сниппет для вывода данных, разделённых через определённые разделители. Удобно использовать для вывода значений полей документов, сформированных виджетом mm_ddMultipleFields. Возможности:

  • Получение необходимого поля документа (и TV) по id. Параметры «docField» и «docId».
  • Вывод необходимого количества значений по номерам строк и и значениям. Параметры «startRow», «totalRows» и «filter».
  • Вывод необходимых значений по номерам колонок. Параметр «columns».
  • Сортировка строк по значениям колонок перед выводом ('ASC', 'DESC', 'RAND', 'REVERSE'), в том числе множественная сортировка. Параметры «sortDir» и «sortBy».
  • Вывод значений через разделители строк и колонок. Параметры «rowGlue» и «colGlue».
  • Удаление пустых значений колонок и строк перед выводом. Параметры «removeEmptyRows» и «removeEmptyCols».
  • Типографирование значений перед выводом (используется сниппет ddTypograph). Параметр «typography».
  • URL-кодирование результата перед выводом. Параметр «urlencode».
  • Вывод результата в JSON. Параметр «outputFormat».
  • Вывод значений по шаблонам (чанкам) строк и колонок (в шаблоне строк также доступен плэйсхолдер [+rowNumber+] с номером строки). Параметры «rowTpl» и «colTpl».
  • Вывод результата выполнения в чанк «outerTpl» с передачей дополнительных данных через параметр «placeholders»

Внимание! Из пары параметров «string»/«docField» необходимо передавать лишь один.

НазваниеОписаниеДопустимые значенияЗначение по умолчанию
string * Исходная строка, содержащая значение с разделителями. {separated string} –
docField Имя поля документа / TV, содержащего значение. В этом случае параметр «string» игнорируется, значение получается из поля документа. {string} –
docId ID документа, значение поля которого нужно получить. Если id не задан, берётся id текущего документа. {integer} –
rowDelimiter Разделитель между строками в исходной строке. {string; regexp} '||'
colDelimiter Разделитель между колонками в исходной строке. {string; regexp} '::'
startRow Номер строки, начиная с которой необходимо возвращать (строки нумеруются с 0). {integer} 0
totalRows Количество возвращаемых строк. При значении == 'all' будут возвращены все имеющиеся строки. {integer; 'all'} 'all'
columns Номера колонк через запятую, которые нужно вернуть (колонки нумеруются с 0). При значении == 'all' будут возвращены все колонки. {comma separated string; 'all'} 'all'
filter Фильтр по значениям колонок. Например, при '0::a||0::b||1::1' выведутся только строки, в которых значение колонки 0 равно 'a' или 'b' и значение колонки 1 равно '1'. {separated string} –
removeEmptyRows Удалять пустые строки? {0; 1} 1
removeEmptyCols Удалять пустые колонки? {0; 1} 1
sortBy Номер колонки (нумеруются с ноля), по которой необходимо сортировать. Для множественной сортировки параметры указываются через запятую (например: '0,1'). {comma separated string} 0
sortDir Направление сортировки строк. При значении == 'REVERSE' строки будут возвращены в обратном порядке. {'ASC'; 'DESC'; 'RAND'; 'REVERSE'; ''} –
typography Номера колонок через запятую, значения которых нужно типографировать (колонки нумеруются с 0). Если не задано, ничего не типографируется. {comma separated string} –
outputFormat Формат, в котором возвращать результат. {'html'; 'JSON'; 'array'; 'htmlarray'} 'html'
rowGlue Разделитель (объединитель) между строками при выводе. Может использоваться совместно с шаблоном «rowTpl». {string} –
colGlue Разделитель (объединитель) между колонками при выводе. Может использоваться совместно с шаблоном «colTpl» (но не «rowTpl», по понятным причинам). {string} –
rowTpl Шаблон для вывода строк (параметр «outputFormat» должен быть == 'html'). Доступные плэйсхолдеры: [+rowNumber+] (номер строки, начиная с 1), [+total+] (общее количество строк), [+resultTotal+] (количество возвращаемых строк), [+col0+], [+col1+], … (значения соответствующих колонок). {string: chunkName} –
colTpl Список шаблонов для вывода колонок, через запятую (параметр «outputFormat» должен быть == 'html'). Если шаблонов меньше, чем колонок, для всех недостающих выставляется последний указанный шаблон. Значение 'null' – без шаблона. Доступный плэйсхолдер: [+val+]. {comma separated string: chunkName; 'null'} –
outerTpl Шаблон внешней обёртки (при «outputFormat» != 'array'). Доступные плэйсхолдеры: [+result+], [+total+] (общее количество строк), [+resultTotal+] (количество возвращаемых строк), [+rowY.colX+] (где «Y» – номер строки, «X» – номер колонки). {string: chunkName} –
placeholders Дополнительные данные, которые необходимо передать в шаблон «outerTpl». Формат: строка, разделённая '::' между парой ключ-значение и '||' между парами. {separated string} –
urlencode Надо URL-кодировать результирующую строку (при «outputFormat» != 'array')? Строка кодируется согласно RFC 3986. {0; 1} 0
totalRowsToPlaceholder Имя внешнего плэйсхолдера, в который нужно вывести общее количество. Если параметр не задан – не выводится. {string} –
resultToPlaceholder Имя внешнего плэйсхолдера, в который нужно сохранить результат работы сниппета вместо обычного вывода. Если параметр не задан – сниппет просто возвращает реузльтат. {string} –

Примеры

Вывод изображений с описаниями

Исходная строка (пусть находится в TV документа «images»):

/assets/images/some_img1.jpg::Изображение 1||/assets/images/some_img2.jpg::Изображение 2

Вызов сниппета в шаблоне документа:

[[ddGetMultipleField?
&string=`[*images*]`
&rowTpl=`imgRow`
]]

Код чанка «imgRow»:

[+col1+]:
<img src="[+col0+]" alt="[+col1+]" />

Получение и вывод данных из поля (TV) «prices» документа с id = 25 в виде таблицы, если что-то есть и ничего, если нету

Исходное значение поля:

Яблоки вкусные::100::кг||Гвозди обыкновенные::5 000::центнер||Коты::865::шт

Вызов сниппета (где угодно):

[[ddGetMultipleField?
&docField=`prices`
&docId=`25`
&rowTpl=`pricesRow`
&outerTpl=`pricesWrap`
]]

Код чанка «pricesRow»:

<tr>
	<td>[+rowNumber+]</td>
	<td>[+col0+]</td>
	<td>[+col1+] руб./[+val2+]</td>
</tr>

Код чанка «pricesWrap»:

<h1>Табличка цен</h1>
<table>
	[+result+]
</table>

Вывод тегов документа через запятую с использованием регулярного выражения в «rowDelimiter»

Пусть теги документа у нас хранятся в TV «tags» и к этой TV у нас применён виджет mm_widget_tags. Пользователь заполняет теги через запятую, при этом, может заполняться как с пробелами по краям, так и без них.

Значение TV «tags»:

Коты, Кошки,Собаки , Медведи ,Слоны

Вызов сниппета в шаблоне документа:

[[ddGetMultipleField?
&string=`[*tags*]`
&rowDelimiter=`/\s*,\s*/`
&rowGlue=`, `
&rowTpl=`tagsRow`
]]

Код чанка «tagsRow»:

<a href="[~[*parent*]~]?tags=[+col0+]">[+col0+]</a>

Результат:

<a href="[~[*parent*]~]?tags=Коты">Коты</a>,
<a href="[~[*parent*]~]?tags=Кошки">Кошки</a>,
<a href="[~[*parent*]~]?tags=Собаки">Собаки</a>,
<a href="[~[*parent*]~]?tags=Медведи">Медведи</a>,
<a href="[~[*parent*]~]?tags=Слоны">Слоны</a>

Сниппет ddTypograph

Сниппет типографирует текст. Не использует сторонних сервисов, не отправляет никаких запросов, всё делается прямо у вас на сервере.

НазваниеОписаниеДопустимые значенияЗначение по умолчанию
text * Текст, который нужно типографировать. {string} –
optAlign Оптическое выравнивание (висячая пунктуация). {0; 1} 0
text_paragraphs Простановка параграфов и переносов строк. {0; 1} 0
text_autoLinks Выделение ссылок из текста (в том числе email). {0; 1} 0
etc_unicodeConvert Преобразовывать html-сущности в юникод (– вместо &mdash; и т.д.). {0; 1} 1
noTags Не добавлять теги. Бывают ситуации, когда использование HTML-тегов в тексте недопустимо (например, когда текст выводится в значение атрибута тега), для таких случаев и предназначен этот параметр. {0; 1} 0

Примеры

Типографирование аннотации перед выводом

[[ddTypograph? &text=`[*introtext*]`]]

Типографирование аннотации с автоматической расстановкой абзацев, ссылок и адресов email

[[ddTypograph? &text=`[*introtext*]` &text_paragraphs=`1` &text_autoLinks=`1`]]

Типографирование аннотации с автоматическим оптическим выравниванием (висячие кавычки и пр.)

[[ddTypograph? &text=`[*introtext*]` &optAlign=`1`]]

Сниппет ddYMap

Сниппет для вывода на страницу Яндекс.Карт в простом виде.

Удобно использовать совместно с виджетом mm_ddYMap.

Внимание! На странице уже должен быть подключен jQuery.

Из пары параметров «geoPos» / «docField» необходимо передавать лишь один.

Сниппет можно вызывать в любом месте страницы, место его вызова не имеет значения.

НазваниеОписаниеДопустимые значенияЗначение по умолчанию
geoPos * Координаты на карте (широта и долгота, перечисленные через запятую). {comma separated string} –
docField Имя поля документа, содержащего координаты, значение которого необходимо получить. {string} –
docId ID документа, значение поля которого нужно получить. {integer} текущий документ
mapElement Селектор контейнера, где будет находиться карта. {string} '#map'
defaultType Тип карты по умолчанию: 'map' – схема, 'satellite' – спутник, 'hybrid' – гибрид, 'publicMap' – народная карта, 'publicMapHybrid' – народный гибрид. {'map'; 'satellite'; 'hybrid'; 'publicMap'; 'publicMapHybrid'} 'map'
defaultZoom Масштаб карты по умолчанию. {integer} 15
icon Изображение иконки для метки на карте. {string} без иконки (используется стандартная)
iconOffset Смещение иконки в пикселях относительно базового положения, задается в виде пары чисел, разделенных запятой (x, y). Базовое положение: иконка располагается горизонтально по центру точки (geoPos), вертикально – над точкой. {comma separated string} –
scrollZoom Разрешёно ли изменение масштаба карты колесом мыши? {0; 1} 0
mapCenterOffset Смещение центра карты относительно центра контейнера в пикселях. {comma separated string} –

Примеры

[[ddYMap? &geoPos=`55.177446326764496,61.29041790962219`]]