понедельник, 26 октября 2015 г.

pdoCrumbs - быстрая замена BreadCrumb

Спонсор блога Магазин детской одежды Dress


Сниппет для построения навигации в стиле хлебных крошек.
Хорошо заменяет BreadCrumb, работает с документами из любых контекстов и позволяет указывать различные условия для выборки ресурсов.
Сниппет обладает очень высокой скоростью работы, за счет выборки всех нужных элементов из БД за один запрос.

Параметры

Принимает все параметры pdoTools и некоторые свои:
ПараметрПо умолчаниюОписание
&showLog0Показывать дополнительную информацию о работе сниппета. Только для авторизованных в контекте «mgr».
&from0Id ресурса, от которого строить хлебные крошки. Обычно это корень сайта, то есть «0».
&toId ресурса для которого строятся хлебные крошки. По умолчанию это id текущей страницы.
&excludeСписок id ресурсов, которые нужно исключить из выборки.
&toPlaceholderЕсли не пусто, сниппет сохранит все данные в плейсхолдер с этим именем, вместо вывода не экран.
&outputSeparator → Разделитель между крошками
&tplИмя чанка для оформления ресурса. Если не указан, то содержимое полей ресурса будет распечатано на экран.
&tplCurrentЧанк оформления текущего документа в навигации.
&tplMaxЧанк, который добавляется в начало результатов, если их больше чем &limit.
&tplHomeЧанк оформления ссылки на главную страницу.
&tplWrapperЧанк-обёртка, для заворачивания всех результатов. Понимает один плейсхолдер: [[+output]]. Не работает вместе с параметром &toSeparatePlaceholders.
&wrapIfEmptyВключает вывод чанка-обертки &tplWrapper даже если результатов нет.
&showCurrent1Выводить текущий документ в навигации.
&showHome0Выводить ссылку на главную в начале навигации.
&showAtHome1Показывать хлебные крошки на главной странице сайта.
&hideSingle0Не выводить результат, если он один единственный.
&directionltrНаправление навигации: слева направо «ltr» или справа налево «rtl», например для Арабского языка.

Шаблоны

ШаблонПо умолчанию
&tpl@INLINE <a href="[[+link]]">[[+menutitle]]</a>
&tplCurrent@INLINE <span>[[+menutitle]]</span>
&tplMax@INLINE <span>&nbsp;...&nbsp;</span>
&tplHome
&tplWrapper@INLINE <div class="breadcrumbs">[[+output]]</div>

Примеры

Генерация хлебных крошек для текущей страницы:
[[pdoCrumbs]]
Генерация в ограничением по количеству пунктов:
[[pdoCrumbs?
    &limit=`2`
]]
Сниппет хорошо работает при вызове из pdoResources. Например, вот такой чанк:
<h3>[[+pagetitle]]</h3>
<p>[[+introtext]]</p>
[[pdoCrumbs?
    &to=`[[+id]]`
    &showCurrent=`0`
]]

Написание своего снипеета Форматированный вывод цены

Спонсор блога Магазин детской одежды Dress


Создаем сниппет, к примеру с именем num
Код сниппета:

<?php
$output = number_format($input,(floor($input) == $input? 0: 2),'.',' ');
return $output;

Пример вызова в чанке, форматируя tv поле price:

[[+tv.price:num]]

Цены получаются красивые , с отступом. Например 15 600, вместо 15600

Если необходимо вывести с нулями в конце, к примеру 150.00

<?php
$output = number_format($input,2,'.',' ');
return $output;

PS  с шопкипером поставляется сниппет. Если его использовать, то свой сниппет можно и не создавать. Пример вызова 

[[*price:num_format]]

Фильтры phx в modx revo

Спонсор блога Магазин детской одежды Dress


Примеры:
[[*id:is=`1`:then=`[[$slider]]`]], где 1 - это id главной страницы, а $slider - чанк с html кодом слайдера

Проверка на непустое значение

[[+tv.discount:!empty=`Скидка!`]]

Если страница кешируется то [[!+discount:!empty=`Скидка!`]]

[[*tvname:is=`1`:then=`da`:else=`net`]]

Модификаторы условия

МодификаторОписаниеПример
if,inputif - задает дополнительное условие
input - добавляет в тег обратываемые данные
[[+phx:input=`/assets/img/hui.gif`]] - добавляем в тег phx входное значение, следующим модификатором, например, можно обработать изображение.
[[*id:is=`1`:and:if=`[[*id]]`:ne=`2`:then=`da`:else=`net`]] - если id-ресурса = 1 и не равно 2, выводим "da", или же "net"
or,andor - условие "ИЛИ"
and - условие "И"
[[*id:is=`1`:or:if=`[[*id]]`:is=`2`:then=`da`:else=`net`]] - если id-ресурса = 1 или = 2, выводим "da", или же "net"
isequalto, isequal, equalto, equals, is, eqЕсли тег равен модификатору, используется с "then" и "else."[[*id:is=`1`:then=`da`:else=`net`]] - если id-ресурса = 1, выводим "da", или же "net"
notequalto, notequals, isnt, isnot, neq, neЕсли тег не равен модификатору, используется с "then" и "else".[[*id:ne=`1`:then=`da`:else=`net`]] - если id-ресурса не равно 1, выводим "da", или же "net"
greaterthanorequalto, equalorgreaterthen,ge, eg, isgte, gteЕсли тег больше или равен модификатору, используется с "then" и "else".[[*id:ge=`1`:then=`da`:else=`net`]] - если id-ресурса больше или равен 1, выводим "da", или же "net"
isgreaterthan, greaterthan, isgt, gtЕсли тег больше модификатора, используется с "then" и "else".[[*id:gt=`1`:then=`da`:else=`net`]] - если id-ресурса больше 1, выводим "da", или же "net"
equaltoorlessthan, lessthanorequalto, el, le, islte, lteЕсли тег меньше или равен модификатору, используется с "then" и "else".[[*id:el=`10`:then=`da`:else=`net`]] - если id-ресурса меньше или равно 10, выводим "da", или же "net"
islowerthan, islessthan, lowerthan, lessthan, islt, ltЕсли тег меньше модификатора, используется с "then" и "else".[[*id:lt=`10`:then=`da`:else=`net`]] - если id-ресурса меньше 10, выводим "da", или же "net"
hideЕсли предыдущий модификатор возвращает положительное значение ("then"), то не выводим обработанный тег.[[*id:is=`10`:hide]] - если id-ресурса = 10, ничего не выводим
showЕсли предыдущий модификатор возвращает положительное значение ("then"), то выводим обработанный тег.[[*id:is=`10`:show]] - если id-ресурса = 10, выводим.
thenУсловие, если тег соответствует модификатору, выводим сообщение, иначе ничего не выводим[[*id:is=`10`:then=`ept`]] - если id-ресурса = 10, выводим "ept".
elseУсловие, если тег не соответствует модификатору, выводим сообщение. Используется только в связке с "then"[[*id:is=`10`:then=`ept`:else=`nooo`]] - если id-ресурса = 10, выводим "ept" иначе "nooo".

Модификаторы строки

МодификаторОписаниеПример
catДобавляет к тегу строку.[[+num:cat=` раз`]], выведет к примеру "10 раз".
lcase, lowercase, strtolowerПереведет значение тега в нижний регистр, аналогично функции php strtolower.[[*pagetitle:lcase]]
ucase, uppercase, strtoupperПереведет текст в верхний регистр, аналогично функции php strtoupper.[[*pagetitle:ucase]]
ucwordsПереведет каждую первую букву, каждого слова в верхний регистр, аналогично функции php ucwords.[[*pagetitle:ucwords]]
ucfirstПереведет только первую букву строки в верхний регистр, аналогично функции phpucfirst.[[*pagetitle:ucfirst]]
htmlent, htmlentitiesПреобразует все символы в соответствющие HTML сущности (для тех символов, для которых HTML сущности существуют), аналогично функции phphtmlentities. Использует текущие настройки системы "modx_charset" с флагом "ENT_QUOTES".[[*pagetitle:htmlentities]]
esc,escapeЭкранирует разные "плохие символы", так же экранирует [, ] и `.[[*content:esc]]
stripЗаменяет все переносы строк, табуляции и множественные пробелы с на один пробел.[[*content:strip]]
stripStringВырезает из строки заданную строку.[[*pagetitle:stripString=`хуй`]]
replaceОбычная замена.[[*pagetitle:replace=`хуй==конфетка`]]
striptags, stripTags,notags,strip_tagsВырезает все теги, кроме разрешенных, аналогично функции php strip_tags[[*longtitle:strip_tags=`
`]]
len,length, strlenВозвращает длину строки, аналогично функции php strlen[[*longtitle:strlen]]
reverse, strrevПереворачивает строку, аналогично функции php strrev[[*longtitle:reverse]]
wordwrapУстанавливает переносы в зависимости от кол-ва символов слова, аналогично функции php wordwrap[[*pagetitle:wordwrap=`10`]]
limitУстанавливает лимит на длинну строки и обрезает ее.[[*pagetitle:limit=`10`]]
ellipsisУстанавливает лимит на длинну строки и обрезает ее, добавляя три точки в конце[[*pagetitle:ellipsis=`10`]]
tagВернет, запись тега.[[*pagetitle:ellipsis=`10`:tag]]вернет: [[*pagetitle:ellipsis=`10`:tag]]
add, increment, incrВернет, значение + модификатор ( по умолчанию +1 ).[[+num:incr]] или [[+num:add=`97`]]
subtract, decrement, decrВернет, значение - модификатор ( по умолчанию -1 ).[[+num:decr]] или [[+num:decr=`97`]]
multiply, mpyВернет, значение * модификатор ( по умолчанию *2 ).[[+num:mpy]] или [[+num:mpy=`5`]]
divide, divВернет, значение / модификатор ( по умолчанию /2 ).[[+num:div]] или [[+num:div=`5`]]
modulus, modВернет, значение % модификатор ( по умолчанию %2 ). Вернет 1 или 0.[[+num:mod]] или [[+num:mod=`5`]]
ifempty, default, empty, isemptyВернет, указанный модификатор, если значение пусто.[[*pagetitle:empty=`Пусто`]]
notempty, !empty, ifnotempty, isnotemptyВернет, указанный модификатор, если значение не пусто.[[*pagetitle:!empty=`Не пусто!`]]
nl2brВернет строку с "<br />" или "<br>" вставленные перед всеми (\r\n, \n\r, \n и \r)..., аналогично функции php nl2br[[*pagetitle:nl2br]][[*pagetitle:nl2br]]
dateАналогично функции PHP strftime. Значение - отформатировано. См. форматы дат.[[+birthyear:date=`%Y`]]
strtotimeАналогично функции PHP strtotime. Вернет дату. См. форматы дат.[[*createdon:strtotime]], - вернет типа "[[*createdon:strtotime]]"
fuzzydateВернет дату. Типа вчера, сегодня....[[*createdon:fuzzydate]], - вернет типа "[[*createdon:fuzzydate]]"
agoВернет дату в прошедших секундах, минутах, неделях или месяцах.[[*createdon:ago]], - вернет типа "[[*createdon:ago]]"
md5Аналогично функции php md5.[[+password:md5]].
cdataВставляет строку в оболочку "CDATA" тегов.[[*pagetitle:cdata]].
userinfoВозвращает запрошенные модификаторов данные о пользователе. Значение должно быть id-пользователя ( modUser ).[[+modx.user.id:userinfo=`username`]].
isloggedinВозвращает true, если пользователь авторизирован в этом контексте.[[+modx.user.id:isloggedin]].
isnotloggedinВозвращает true, если пользователь не авторизирован в этом контексте.[[+modx.user.id:isnotloggedin]].
urlencodeАналогично функции php urlencode.[[+stringi:urlencode]].
urldecodeАналогично функции php urldecode.[[+stringi:urldecode]].

ваы

воскресенье, 25 октября 2015 г.

DateAgo - Для работы с датами

Спонсор блога Магазин детской одежды Dress

Сниппет делает даты более дружелюбными.
Работает и как сниппет, и как фильтр вывода.

У MODX Revolution есть 2 встроенных фильтра обработки дат: ago и fuzzydate. Первый выводит сколько прошло времени от указанной даты, а второй — тоже самое, но с указанием «сегодня», «вчера».


Пример использования в чанке 
[[dateAgo?
&input=`[[+publishedon]]`
&dateFormat=`d F Y`

]]

с TV парамметром
[[dateAgo?
&input=`[[+tv.date]]`
&dateFormat=`d F Y`

]]


Использование

Вызов на странице, как сниппет:
[[dateAgo?
 &input=`[[*publishedon]]`
]]

Вывод с параметрами, отключаем «Только что»:
[[Jevix?
 &input=`[[*publishedon]]`
 &dateNow=`0`
]]

Вызов фильтром, например в чанке getResources:
[[+publishedon:dateAgo]]

Вызов фильтром, с указанием параметров:
[[+publishedon:dateAgo=`{"dateNow":0}`]]

Тексты для вывода «Только что», «Меньше минуты», «Сегодня» и другие можно менять в управлении словарями.

Парамметры


  • dateDay
    • по умолчанию: day H:i
    • тип: textfield
    • описание: Указывает на необходимость замены "Сегодня", "Вчера", "Завтра". В указанном формате "day" будет заменено на соответствующее значение.
  • dateFormat
    • по умолчанию: d F Y, H:i
    • тип: textfield
    • описание: Формат даты по умолчанию.
  • dateHours
    • по умолчанию: 10
    • тип: numberfield
    • описание: Количество часов, в течении которых событие имеет статус "... часов назад"
  • dateMinutes
    • по умолчанию: 59
    • тип: numberfield
    • описание: Количество минут, в течении которых событие имеет статус "... минут назад"
  • dateNow
    • по умолчанию: 10
    • тип: numberfield
    • описание: Количество секунд, в течении которых событие имеет статус "Только что"
  • input
    • по умолчанию: -
    • тип: textfield
    • описание: Дата для обработки

Официальная документация

phpThumbOf - ресайз изображений

Спонсор блога Магазин детской одежды Dress

phpThumbOf - безопасный настраиваемый фильтр вывода для MODx Revolution, позволяющий использовать phpThumb с любыми адресами изображений, заданными в плейсхолдере.

Пример вывода в чанке из TV поля
[[+tv.image:phpthumbof=`w=45&h=45`]]


Атрибуты

  • w = ширина (в пикселях)
  • h = высота (в пикселях)
  • zc = кадрирование при масштабировании. 1 включает кадрирование при масштабировании.

Примеры

Изменение размера изображения на 120x120 пикселей
[[*image:phpthumbof=`w=120&h=120`]]
Создание миниатюры размером 300x300, с кадрированием при масштабировании.
[[*thumbnailImage:phpthumbof=`w=300&h=300&zc=1`]]
Если используете TV, тип вывода TV должен быть text.
Данный сниппет не ограничивается лишь указанными атрибутами - полный список можно посмотреть на страницах с официальной документацией, ссылки на которые указанны ниже.




getResources - извлечение полей из других ресурсов

Спонсор блога Магазин детской одежды Dress


Служит для вывода информации из различных страниц в одном месте и в необходимом формате. К примеру вывод новостей в ленте новостей

Пример

[[!getResources? &parents=`-1`
&resources=`16`
&tpl=`ShowLevel1OnSlider`
&includeTVs=`1`
&processTVs=`1`]]
 
( Вывод в чанке url текущей страницы [[~[[+id]]]] )
код чанка IconsTriger

<div class="bCol m25">
<a href="[[+tv.TrigerLink]]" class="eInfoBlock">
    <div class="eInfoBlock_img mBulding">
<img src="[[+tv.imageField]]" alt="[[+pagetitle]]">
</div>
        <div class="eInfoBlock_text">
[[+tv.valueFieldText]]
        </div>
        <div class="eInfoBlock_text mSmall">
[[+pagetitle]]
</div>
        <!--hover data-->
        <div class="eInfoBlock_hover">
        <div class="eInfoBlock_hoverInner">
[[+tv.addDescription]]
</div>
        </div>
</a>
</div>

пример вывода всех товаров

[[!getResources? &parents=`3` &where=`{"template:=":8}` &tpl=`myRowTpl` &depth=`3` &limit=`0`]]

Сниппет getResources может быть вызван при помощи тега:


[[getResources]]

Вызовы без заданного параметра &tpl будет просто выводить массив в виде списка каждого конечного ресурса и его полей.

Доступные параметры

Параметры шаблонизации

#ПараметрОписание
1tplИмя чанка, выступающего в качестве шаблона для ресурса. Если не установлен, свойства выдаются в виде списка для каждого ресурса
2tplOddИмя чанка, выступающего в качестве шаблона для ресурсов с нечетным индексом (см. параметр idx
3tplFirstИмя чанка, выступающего в качестве шаблона для первого ресурса
4tplLastИмя чанка, выступающего в качестве шаблона для последнего ресурса
5tpl_NИмя чанка, выступающего в качестве шаблона для N-ного ресурса, например &tpl_4=`tpl4th`
6tpl_nNИмя чанка, выступающего в качестве шаблона для каждого N-ного ресурса, например шаблон &tpl_n4=`tpl4th` будет применен к каждому элементу, порядковый номер которого кратен 4 Добавлено в версии: 1.4.1-pl
7tplPathДополнительный каталог для поиска чанков на основе файлов при использовании биндинга @FILE По умолчанию: assets_path + "elements/chunks/"
8outputSeparatorДополнительные строки для разделения каждого ресурса после шаблонизации По умолчанию: "\n"
9toPlaceholderЕсли установлен, присвоит результат в указанный плейсхолдер вместо вывода напрямую
10toSeparatePlaceholdersЕсли установлен, присвоит КАЖДОМУ результату отдельное имя плейсхолдера в виде суффикса из значения этого параметра и порядкового номера (начиная с 0) Добавлено в версии: 1.3.0

Параметры выборки

#ПараметрОписание
1parentsСписок идентификаторов родительских ресурсов, разделенных запятыми. Используйте -1 для исключения родительских ресурсов. По умолчанию: current Resource id
2resourcesСписок идентификаторов ресурсов, разделенных запятыми, для включения их в результат выборки. Префикс в виде минуса исключает ресурсы из результата выборки.
3depthЦелое число, указывающее глубину поиска для ресурсов от каждого из родителей. По умолчанию: 10
3tvFilters
Может использоваться для фильтрации ресурсов по определенным значениям переменных шаблона (TV). Они задаются как [(tvname)(operator)](value). Можно использовать два разделителя для объединения условий фильтра.
У вас могут быть фильтры с условием "ИЛИ" (OR) в виде двойной вертикальной черты. OR-фильтр получает ресурсы, которые имеют одно из перечисленных значений переменной шаблона (TV).
mytv==somevalue||mytv==othervalue
Вы также можете использовать фильтр "И" (AND) используя запятую. Этот фильтр проверит, чтобы все условия выполнялись.
mytv==somevalue,othertv==othervalue
Для тонкой фильтрации вы можете также группировать их. Важно знать, что сначала идут условия, разделенные по условиям ИЛИ (||), затем условия И (,). Давайте посмотрим такой пример:
mytv==foo||mytv==bar,bartv==3||bartv==1
Ресурсы будут отфильтрованы по одному из следующих условий (на самом деле в запросах к БД используется функция LIKE):
  • mytv == foo, ИЛИ:
  • mytv == bar И bartv == 3, ИЛИ:
  • bartv == 1
Приведенные выше примеры ищут точные совпадения. Если вы хотите, вы также можете использовать знак процента (%) в качестве шаблона. Например:
mytv==%a%
Находит любые ресуры, которые имеют "a" в значении mytv.
mytv==a%
Находит любые ресурсы, значение mytv которых начинается с "a" и содержит все что угодно после "a".
mytv==%a
Находит любые ресурсы, которые которые имеют значение mytv, заканчивающееся на "a" и содержащее все что угодно до "a".
И конечно, вы можете совмещать это с OR (||) и AND (,) разделителями, которые описаны выше.
Важно знать, что эта функция смотрит на исходные значения переменных шаблона, заданные для конкретного ресурса. Это значит, что значение было установлено для ресурса и что оно не будет обработано как переменная шаблона с типом вывода (или значение по умолчанию в релизах до 1.4.2-pl; в этом релизе добавлена поддержка фильтрации, которая включает значения по умолчанию). Так что если у вас есть переменная шаблона "autotag", это значит, что исходное значение представляет собой список тегов, разделенных запятыми и оно не распалось на теги так, как это видно в админке.

Новые операторы в фильтрах доступны в 1.4.2-pl

Начиная с релиза getResources 1.4.2-pl имеется целый ряд новых операторов сравнения, которые можно использовать при построении условий фильтрации. Кроме этого, при использовании многих из этих новых операторов при сравнении с числовыми значениями значения переменных шаблона автоматически приводятся к числовым типам. Вот список новых операторов:
<=> — безопасное сравнение с NULL
Оператор фильтраОператор SQLПриведение к числу
<=><=>Да
====Да
!==!=Да
<><>Да
==LIKEНет
!=NOT LIKEНет
<<<Да
<=<=Да
=<=<Да
>>>Да
>=>=Да
=>=>Да
3sortby
Любое поле ресурса (за исключением переменных шаблона) для сортировки. Некоторые из общих полей для сортировки - это publishedon, menuindex, pagetitle и др., но смотрите документацию по ресурсам для всех полей. Укажите только имя поля, без использования синтаксиса тегов. Обратите внимание, что при использовании таких полей, как template, publishedby и подобных для сортировки, они будут сортироваться по сырым значениям, таким как ID шаблона или юзера, а не по их именам.
Вы также можете отсортировать в случайном порядке, используя RAND(), вот так:
&sortby=`RAND()`
Начиная с версии 1.3.0 это также может быть JSON массив для сортировки по нескольким полям, например:
&sortby=`{"publishedon":"ASC","createdon":"DESC"}`
Если вы хотите сортировать в определенном порядке, вы можете сделать это, указав список идентификаторов ресурсов следующим образом:
&sortby=`FIELD(modResource.id, 4,7,2,5,1 )`
Тоже самое возможно, если вы передадите список ID для сортировки в переменной шаблона, например:
&sortby=`FIELD(modResource.id,[[*templateVariable]])`
По умолчанию: publishedon Добавлено в версии: 1.3.0
4sortbyAliasПсевдоним запроса для поля из sortby
5sortbyEscapedЭкранировать имя поля заданного в sortby
sortdirПорядок сортировки По умолчанию: DESC
6sortbyTVПеременная шаблона (Template Variable) для сортировки Добавлено в версии: 1.2.0
7sortdirTVПорядок сортировки при использовании sortbyTV По умолчанию: DESC Добавлено в версии: 1.2.0
8sortbyTVTypeУказывает тип данных сортировки по TV. Возможные значения: string, integer, decimal, datetime По умолчанию: string Добавлено в версии: 1.3.0
9limitОграничение количества возвращаемых ресурсов По умолчанию: 5
10offsetСмещение ресурсов для пропуска, которые возвращаются в соответствии с критериями По умолчанию: 0
11whereВыражение критериев в json-стиле для построения любых дополнительных условий. Смотрите ниже пример. Подробнее http: //rtfm.modx.com/display/xPDO20/xPDOQuery.where
12contextВ каком контексте следует искать. По умолчанию текущий контекст.

Другие параметры

#ПараметрОписание
1showUnpublishedЕсли true, то будут показаны также ресурсы, которые не опубликованы. По умолчанию: 0
2showDeletedЕсли true, то будут показаны ресурсы независимо от того, удалены они или нет. По умолчанию: 0
3showHiddenЕсли true, покажет ресурсы независимо от того, показываются они в меню или нет. По умолчанию: 0
4hideContainersЕсли указан, то не будут показаны ресурсы, помеченные как контейнер (is_folder). По умолчанию: 0
5includeContentУказывает, что содержание каждого ресурса должно возвращаться в результатах выборки. По умолчанию: 0
6includeTVsУказывает, что значения переменных шаблона должны быть включены в набор свойств, доступных для каждого шаблона ресурса По умолчанию: 0
7includeTVListДополнительный список разделенных запятыми имет переменных шаблона для явного включения в результат, если includeTVs установлен в 1 Добавлено в версии: 1.4.0
8processTVsУказывает, что переменные шаблона должны быть отрисованы так как они были бы представлены в ресурсе. Переменные шаблона должны быть включены для обработки (см. includeTVs/includeTVList). По умолчанию: 0
9processTVListДополнительный список имен переменных шаблона, разделенных запятыми, для явной обработки. Переменные шаблона, заданные здесь, должны быть включены через includeTVs/includeTVList Добавлено в версии: 1.4.0
10tvPrefixПрефикс для свойств в виде переменных шаблона По умолчанию: tv.
11idxВы можете задать начало idx ресурсов, что представляет собой свойство, котороые увеличивается с каждым отрисованным ресурсом По умолчанию: 1
12firstЗадает idx, который представляет собой первый ресурс По умолчанию: 1
13lastЗадает idx, который представляет последний ресурс. По умолчанию это количество ресурсов, которые будут складываться + первый - 1 (?)
14totalVarЗадает ключ плейсхолдера, устанавливаемого getResources для показа общего количества ресурсов, которые будут выбраны не учитывая значения limit. По умолчанию: total
15debugЕсли true, будет записывать sql-запросы в log MODX. По умолчанию: false

Доступные плейсхолдеры

Плейсхолдеры доступные в ваших чанках форматирования getResources в основном зависят от ресурсов, которые вы перечисляете.
См. Все теги на странице "Часто используемые теги шаблона" — это список свойств, доступных для всех ресурсов.
Если ваш ресурс имеет переменные шаблона, те в свою очередь будут иметь соответствующие плейсхолдеры (помните, что плейсхолдеры будут использовать префикс, заданный через параметр &tvPrefix)
Кроме того, существуют следующие плейсхолдеры:
ПлейсхолдерОписание
[[+idx]]
Увеличивается с каждой итерацией, начиная с 1 (или со значения, установленного параметром &idx)

Примеры

Вывод списка дочерних ресурсов текущего ресурса, используя чанк 'myRowTpl':
[[!getResources? &parents=`[[*id]]` &tpl=`myRowTpl`]]
Вывод всех дочерних ресурсов ресурса с ID '5', за исключением ресурса 10, используя чанк 'myRowTpl':
[[!getResources? &parents=`5` &resources=`-10` &tpl=`myRowTpl`]]
Вывод всех дочерних ресурсов ресурса с ID '5', за исключением текущего ресурса, используя чанк 'myRowTpl':
[[!getResources? &parents=`5` &resources=`-[[*id]]` &tpl=`myRowTpl`]]
Вывод всех дочерних ресурсов ресурса с ID '5' с сортировкой как в дереве ресурсов используя чанк 'myRowTpl':
[[!getResources? &parents=`5` &tpl=`myRowTpl` &sortby=`{"menuindex":"ASC"}`]]
Вывод только заданных ресурсов, используя чанк 'myRowTpl':
[[!getResources? &parents=`-1` &resources=`10,11,12` &tpl=`myRowTpl`]]
Вывод последних 5 опубликованных ресурсов, у которых родительский ресурс с ID '5', используя шаблон 'blogPost':
[[!getResources? &parents=`5` &limit=`5` &tpl=`blogPost` &includeContent=`1`]]
Вывод списка дочерних ресурсов текущего ресурса, основанного на шаблоне ресурсов:
[[!getResources? &parents=`[[*id]]` &where=`{"template:=":8}` &tpl=`myRowTpl`]]
Вывод списка дочерних ресурсов текущего ресурса, где ID шаблона ресурсов равен 1 или 2:
[[!getResources? &parents=`[[*id]]` &where=`{"template:=":1, "OR:template:=":2}` &tpl=`myRowTpl`]]
Вывод списка дочерних ресурсов текущего ресурса, где ID шаблона ресурсов равен 1, 2 или 3 (вы не можете использовать тот же ключ больше одного раза):
[[!getResources? &parents=`[[*id]]` &where=`{"template:IN":[ 1,2,3 ]}` &tpl=`myRowTpl`]]
Показ сообщения, когда ничего не найдено (эквивалент "empty" в Ditto):
[[!getResources:default=`No results found`? &parents=`[[*id]]` &tpl=`myRowTpl`]]

Показ переменных шаблона (Template Variables) с getResources

Чтобы уменьшить время обработки, getResources не получает значения TV по умолчанию. Если вы хотите показывать TV, вы должны включить следующие параметры:
&includeTVs=`1` &processTVs=`1`
Вам также нужен либо префикс для всех TV с tv. или использовать этот параметр в теге вашего сниппета:
&tvPrefix=``
В чанке tpl, который вы используете для вывода getResources, используйте тег плейсхолдера как здесь (но с именем вашего TV):
[[+tv.my_tv]]

Использование getPage для постраничной навигации

В сочетании с getPage getResources позволяет делать мощные и гибкие нумерации ваших страниц.

Примеры

Берет первые 10 ресурсов, отсортированные по дате публикации (publishedon), которые внутри ресурса с ID 17, не больше чем на 2 уровня в глубину, с шаблоном 'blogListPost', включая переменные шаблона (TV) и содержимое (content):
[[!getPage? 
&elementClass=`modSnippet` 
&element=`getResources` 

&parents=`17` 
&depth=`2` 
&limit=`10` 
&pageVarKey=`page` 

&includeTVs=`1` 
&includeContent=`1` 

&tpl=`blogListPost`]]

<div class="paging"> 
    <ul class="pageList"> 
        [[!+page.nav]] 
    </ul> 
</div> 
и чанк blogListPost:
 
<div class="blogPost"> 
    <div class="date">[[+publishedon:strtotime:date=`%b %d %Y`]]</div> 
    <h2><a href="[[~[[+id]]]]" title="[[+pagetitle]]">[[+pagetitle]]</a></h2> 

    <p class="author"><strong>Author:</strong> <span class="author">[[+createdby:userinfo=`username`]]</span></p> 
    <p class="summary">[[+introtext]]</p> 
    <p class="readmore"><a href="[[~[[+id]]]]"><span>Read more</span></a></p> 

    <div class="clear"></div> 
</div> 
<hr/> 

Поиск и устранение неисправностей

Ничего не происходит

Прежде чем биться головой о стену, убедитесь, что это дополнение установленно на вашем сайте.

Выводится массив атрибутов

Вы забыли указать параметр `&tpl`. Без &tpl сниппет будет пытаться определить ресурсы, но вы не сказали ему как их форматировать. Проверьте, указан ли параметр &tpl в вызове вашего сниппета, как тут:
[[!getResources? &parents=`5` &limit=`5` &tpl=`blogPost`]]
ИЛИ
Вы допустили ошибку в имени чанка. Возможно у вас и указан &tpl, но чанк действительно существует? Если вы указали имя чанка, который не существует, getResources не будет знать как форматировать ваши ресурсы.
ИЛИ
Даже если вы правильно задали параметр &tpl, возможно, вы случайно забыли амперсанд к одному из ваших другихпараметров. Например limit=`5` приведет вызов сниппета к фейлу и атрибуты будут выведены без форматирования. Правильный формат должен быть &limit=`5`.

Тот же самый ресурс выводится несколько раз (1.2.2 и предыдущие релизы)

Если вы видите, что один и тот же ресурс показывается несколько раз, попробуйте убрать параметр &sortbyTV.

Содержимого там нет

Вы извлекаете правильные ресурсы и вы видите какие-топравильно отформатированные результаты, но ваш плейсхолдер
[[+content]]
ничего не выводит. Что происходит? Вам нужно указать параметр &includeContent=`1` чтобы получить содержимое.


Официальная документация