Skip to content
  1. Компоненты
  2. pdoTools
  3. Общие параметры

Общие параметры

Общие параметры для сниппетов, основанных на pdoTools/pdoFetch.

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

Эти параметры определяют, какие объекты будут получены.

НазваниеПо умолчаниюОписание
&classmodResourceКласс получаемого объекта
&parentsТекущий ресурсСписок родителей, через запятую, для поиска результатов. Если поставить 0 - выборка не ограничивается. Если id родителя начинается с дефиса, он и его потомки исключаются из выборки.
&depth10Глубина поиска дочерних ресурсов от родителя.
&resourcesСписок ресурсов, через запятую, для вывода в результатах. Если id ресурса начинается с дефиса, этот ресурс исключается из выборки.
&templatesСписок шаблонов, через запятую, для фильтрации результатов. Если id шаблона начинается с дефиса, ресурсы с ним исключается из выборки.
&contextОграничение выборки по контексту ресурсов.
&whereМассив дополнительных параметров выборки, закодированный в JSON.
&showHidden0Показывать ресурсы, скрытые в меню.
&showUnpublished0Показывать неопубликованные ресурсы.
&showDeleted0Показывать удалённые ресурсы.
&hideContainers0Отключает вывод контейнеров, то есть, ресурсов с isfolder = 1.
&hideUnsearchableОтключает вывод спрятанных от поиска ресурсов.
&selectСписок полей для выборки, через запятую. Можно указывать JSON строку с массивом, например {"modResource":"id,pagetitle,content"}.
&leftJoinАналог SQL оператора left join
&rightJoinАналог SQL оператора right join
&innerJoinАналог SQL оператора inner join
&joinSequenceinnerJoin,leftJoin,rightJoinПорядок подключения таблиц, через зяпятую.
&sortbypagetitleЛюбое поле ресурса для сортировки, включая ТВ параметр, если он указан в параметре &includeTVs. Можно указывать JSON строку с массивом нескольких полей. Для случайно сортировки укажите RAND()
&sortdirASCНаправление сортировки: по убыванию или возрастанию.
&groupbyУказывает поле, по которому группируются результаты
&havingИспользуется, чтобы ограничить выборку сгруппированных строк с помощью условия, относящегося ко всей группе, заданной в &groupby
&limit0Ограничение количества результатов выборки. Можно использовать «0».
&offset0Пропуск результатов от начала.
&first1Номер первой итерации вывода результатов.
&lastАвтоматически, по формуле (total + first - 1)Номер последней итерации вывода результатов.
&loadModelsСписок компонентов, через запятую, чьи модели нужно загрузить для построения запроса. Например:&loadModels=`ms2gallery,msearch2` .
&tvFiltersСписок фильтров по ТВ, с разделителями AND и OR. Разделитель, указанный в параметре &tvFiltersOrDelimiter представляет логическое условие OR и по нему условия группируются в первую очередь. Внутри каждой группы вы можете задать список значений, разделив их &tvFiltersAndDelimiter. Поиск значений может проводиться в каком-то конкретном ТВ, если он указан myTV==value, или в любом «value». Пример вызова: ``&tvFilters=`filter2==one,filter1==bar%
&tvFiltersAndDelimiter,Разделитель для условий AND в параметре &tvFilters.
&tvFiltersOrDelimiter`
&sortbyTVДополнительное поле, по которому нужно сортировать результаты. Может быть указано напрямую в параметре &sortby
&sortdirTVНаправление сортировки по дополнительному полю, указанному в &sortbyTV. Может быть указано напрямую в параметре &sortby
&sortbyTVTypeТип сортировки по ТВ параметру. Возможные варианты: string, integer, decimal и datetime. Если пусто, то ТВ будет отсортирован в зависимости от его типа: как текст, число или дата.
&checkPermissionsУкажите, какие разрешения нужно проверять у пользователя при выводе объектов.
&disableConditionsОтключает специфичные для класса modResource параметры выборки.
&fenomModifiersСписок сниппетов-модификаторов через запятую, для подключения в Fenom. Подробности в соответствующем разделе.

Параметры шаблонов

Эти параметры устанавливают чанки, которые содержат шаблоны для генерации вывода, то есть отвечают за внешний вид.

НазваниеОписание
&tplИмя чанка для оформления ресурса. Если не указан, то содержимое полей ресурса будет распечатано на экран.
&tplFirstИмя чанка для первого ресурса в результатах.
&tplLastИмя чанка для последнего ресурса в результатах.
&tplOddИмя чанка для каждого чётного ресурса (хоть "odd" значит "нечётный", работает для чётных ресурсов).
&tpl_NИмя чанка для N-го ресурса, например, &tpl_4=`tpl4th` установит шаблон для 4-го ресурса.
&tpl_nNИмя чанка для каждого N-го ресурса, например, &tpl_n4=`tplEvery4th` будет применено к каждому 4-му ресурсу.
&tplConditionПоле ресурса, из которого будет получено значение для выбора чанка по условию в &conditionalTpls.
&tplOperatorНеобязательный оператор для проведения сравнения поля ресурса в &tplCondition с массивом значений и чанков в &conditionalTpls.
&conditionalTplsJSON строка с массивом, у которого в ключах указано то, с чем будет сравниваться &tplCondition, а в значениях - чанки, которые будут использованы для вывода, если сравнение будет успешно. Оператор сравнения указывается в &tplOperator. Для операторов типа isempty можно использовать массив без ключей.
&outputSeparatorНеобязательная строка для разделения результатов работы.

Параметры результатов

Эти параметры дополнительно определяют, какие данные и каким способом будут выводиться.

НазваниеПо умолчаниюОписание
&returnchunksОпределяет способ вывода результатов. См. ниже.
&fastMode0Быстрый режим обработки чанков. Все необработанные теги (условия, сниппеты и т.п.) будут вырезаны.
&nestedChunkPrefixpdotools_Префикс для "быстрых плейсхолдеров", включаемых параметром &fastMode
&idxВы можете указать стартовый номер итерации вывода результатов.
&totalVartotalИмя плейсхолдера для сохранения общего количества результатов.
&includeContent0Включаем поле content в выборку.
&includeTVsСписок ТВ параметров для выборки, через запятую. Например: action,time дадут плейсхолдеры [[+action]] и [[+time]].
&includeTVListПсевдоним &includeTVs
&prepareTVs1Список ТВ параметров, с файлами из источников медиа, для которых нужно сгенерировать полные пути. Если установить в 1, будут подготовлены все ТВ, указанные в &includeTVs.
&processTVsСписок ТВ параметров, которые нужно обработать и вывести согласно их настроек в менеджере системы. Если установить в 1, будут обработаны все ТВ, указанные в &includeTVs. Замедляет работу.
&tvPrefixtv. у pdoResources и пусто у других сниппетовПрефикс для ТВ параметров.
&prepareSnippet1Указывает сниппет, который принимает данные перед выводом в чанк и может их менять или добавлять
&decodeJSONРазбирает поля типа JSON вместо вывода в виде строки
&scheme-1Схема формирования url, передаётся в modX::makeUrl(), поэтому возможные варианты нужно смотреть здесь. Особый тип uri подставляет значение uri ресурса, без запуска функции.
&useWeblinkUrlГенерировать ссылку с учетом класса ресурса.
&toSeparatePlaceholdersЕсли вы укажете слово в этом параметре, то ВСЕ результаты будут выставлены в разные плейсхолдеры, начинающиеся с этого слова и заканчивающиеся порядковым номером строки, от нуля. Например, указав в параметре myPl, вы получите плейсхолдеры [[+myPl0]], [[+myPl1]] и т.д.
&additionalPlaceholdersУстанавливает дополнительные плейсхолдеры
&cache_keyЗначение системной настройки cache_resource_key для ресурсов (по умолчанию resource) или defaultКлюч кеширования
&cache_handlerЗначение системной настройки cache_resource_handler или xPDOFileCacheОбработчик кеша
&cacheTimeЗначение системной настройки cache_resource_expires или 0 (вечный)Время жизни кеша (в секундах)

Способы вызова чанков

Все чанки могут иметь один из следующих префиксов:

@INLINE или @CODE. В качестве шаблона будет использован код после этого префикса.

modx
[[!pdoResources?
  &parents=`0`
  &tpl=`@INLINE <li>[[+pagetitle]]</li>`
]]

В INLINE чанках нельзя указывать сниппеты, другие чанки или фильтры вывода через обычные теги, потому что так парсер MODX обработает их в первую очередь, и сниппет получит совсем не то, что вы хотели.

Поэтому для INLINE чанков предусмотрена замена [[+]] на {{+}} - такие теги MODX пропускает, а pdoTools при работае конвертирует их как нужно. Конечно, вы всё равно можете использовать теги MODX, если вам нужно, чтобы в чанк попала уже обработанная информация, например:

modx
[[!pdoResources?
  &parents=`0`
  &tplFirst=`@INLINE Текущая страница: [[*pagetitle]]`
  &tpl=`@INLINE <p>[[+id]] - [[+pagetitle]]<p>`
]]

@FILE. Вместо чанка из базы данных используется содержимое файла. Путь до файла указывается в систеной настройке pdotools_elements_path.

Имя файла должно быть с расширением .tpl или .html.

modx
[[!pdoResources?
  &tpl=`@FILE fileBasedRow.tpl`
]]

@TEMPLATE. Указывается идентификатор или имя шаблона. Если пусто - для каждого ресурса будет использован его собственный шаблон.

modx
[[!pdoResources?
  &tpl=`@TEMPLATE 10`
]]

@CHUNK. Аналогично простому указанию имени чанка, оставлено для совместимости со сторонними сниппетами.

modx
[[!pdoResources?
  &tpl=`@CHUNK tpl.Resource.row`
]]

[[!pdoResources?
  &tpl=`tpl.Resource.row`
]]

Подробнее про возможности pdoParser можно прочитать в соответствующем разделе.

Возвращаемые значения

pdoTools умеет возвращать данные в разном виде, в зависимости от параметр &return. В основном это используют сами сниппеты для внутренних нужд, но вы можете указывать &return в pdoResources:

modx
[[!pdoResources?
  &parents=`0`
  &return=`json`
]]
  • chunks - оформленные чанки, по умолчанию.
  • sql - подготовленный сырой SQL, полезно для отладки. Сам запрос не выполняется, только выводится на экран.
  • data - готовый массив данных. Из-за особенностей работы сниппетов MODX этот вариант имеет смысл использовать только при вызове pdoFetch::run() напрямую из своего сниппета, в противном случае вы получите только строку Array.
  • ids - возвращает только идентификаторы документов, через запятую. Удобно для подстановки в качестве параметра другим сниппетам. Параметр &returnIds использует именно этот тип.
  • json - возврат массива данных JSON строкой.
  • serialize - возврат массива данных сериализованной строкой. Иногда, по непонятным причинам, может вызвать нехватку памяти. Лучше использовать json.

Внимание

Все значения параметра &return понимают только pdoResources (pdoPage в связке с pdoResources) и pdoUsers.

Значения chunks и data понимают pdoMenu и pdoCrumbs.

Остальные сниппеты понимают, в основном, лишь chunks.