ddGetMultipleField

Snippet
  • Версия: 2.15
  • Выпущено:
  • Метки: Manager, General
  • Использует:
Скачать53 скачивания

Описание

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

  • Получение необходимого поля документа (и TV) по id (используется сниппет ddGetDocumentField). Параметры «getField» и «getId».
  • Вывод необходимого количества значений по номерам строк и id (значение первой колонки). Параметры «num», «vals» и «count».
  • Вывод необходимых значений по номерам колонок. Параметр «colNum».
  • Сортировка строк по значениям колонок перед выводом ('ASC', 'DESC', 'RAND', 'REVERSE'), в том числе множественная сортировка. Параметры «sortDir» и «sortBy».
  • Вывод значений через разделители строк и колонок. Параметры «glueY» и «glueX».
  • Удаление пустых значений колонок и строк перед выводом. Параметры «removeEmptyRows» и «removeEmptyCols».
  • Типографирование значений перед выводом (используется сниппет ddTypograph). Параметр «typographing».
  • URL-кодирование результата перед выводом. Параметр «urlencode».
  • Вывод результата в JSON. Параметр «format».
  • Вывод значений по шаблонам (чанкам) строк и колонок (в шаблоне строк также доступен плэйсхолдер с номером строки). Параметры «tplY» и «tplX».
  • Вывод результата выполнения в чанк «tplWrap» с передачей дополнительных данных через параметр «placeholders».

Список изменений

  • Добавлена возможность выводить общее количество строк во внешний плэйсхолдер (параметр «totalPlaceholder»).

Документация

Из пары параметров field/getField необходимо передавать лишь один.

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

Название Описание Допустимые значения Значение по умолчанию
field* Строка, содержащая значения с разделителями. {separated string}
getField Имя поля документа, значение которого необходимо получить. {string}
getId ID документа, значение поля которого нужно получить. {integer}
getPublished Опубликован ли документ, значения поля которого нужно получить. 0; 1 1
splY Разделитель между строками в исходной строке. {string} '||'
splX Разделитель между колонками в исходной строке. {string} '::'
num Номер строки, которую нужно вернуть (начиная с которой необходимо возвращать). {integer} 0
vals ID строк (значения первой колонки), которые нужно получить. Форамат: строка, разделённая '||' между значениями. {separated string}
count Количество возвращаемых строк. {integer; 'all'} 'all'
colNum Номера колонк, которые нужно вернуть. {comma separated string; 'all'} 'all'
sortDir Направление сортировки. 'ASC'; 'DESC'; 'RAND'; 'REVERSE'; ''
sortBy Номер колонки (нумеруются с ноля), по которой необходимо сортировать. Для множественной сортировки параметры указываются через запятую (например: '0,1'). {comma separated string} 0
glueY Разделитель при выводе между строками. {string}
glueX Разделитель при выводе между колонками. {string}
removeEmptyRows Удалять пустые строки? 0; 1 1
removeEmptyCols Удалять пустые колонки? 0; 1 1
typographing Нужно ли типографировать значения? 0; 1 0
urlencode Надо URL-кодировать строку? 0; 1 0
format Формат, в котором возвращать результат. 'JSON'; ''
tplY Шаблон для вывода строк (параметр format должен быть пустым). Доступные плэйсхолдеры: [+row_number+] (выводит номер строки, начиная с 1), [+total+] (общее количество строк), [+val0+],[+val1+],…. {string: chunkName}
tplX Список шаблонов для вывода колонок, через запятую. Если шаблонов меньше, чем колонок, для всех недостающих выставляется последний указанный шаблон. Значение 'null' — без шаблона. Доступный плэйсхолдер: [+val+]. {comma separated string: chunkName; 'null'}
tplWrap Шаблон внешней обёртки. Доступные плэйсхолдеры: [+wrapper+]. {string: chunkName}
placeholders Дополнительные данные, которые необходимо передать (видны только в tplWrap!). Формат: строка, разделённая '::' между парой ключ-значение и '||' между парами. {separated string}
totalPlaceholder Имя внешнего плэйсхолдера, в который нужно вывести общее количество, если не задан — не выводится. {string}

Примеры

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

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

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

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

[[ddGetMultipleField? &field=`[*images*]` &tplY=`imgRow`]]

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

[+val1+]:
<img src="[+val0+]" alt="[+val1+]" />

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

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

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

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

[[ddGetMultipleField? &getField=`prices` &getId=`25` &tplY=`pricesRow` &tplWrap=`pricesWrap`]]

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

<tr>
<td>[+row_number+]</td>
<td>[+val0+]</td>
<td>[+val1+] руб./[+val2+]</td>
</tr>

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

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

Примеров здесь можно напридумывать великое множество, но, честно говоря, лень =) Так что, если что не понятно, спрашивайте в комментариях ниже ↓