Pdoresources totalvar не работает

totalVar в pdoResources

Кто-нибудь сталкивался со странной работой pdoReources? Абсолютно идентичные коды, но в totalVar в первом запросе нормальный результат, в следующем — ноль.

Уже всё перепробовал, и названия фильтров поменять и всё, но нет.

Комментарии: 8

Думаю, тут проблема в использовании tvFilters.

pdoTools работает с реальными данными в таблице, а значения по умолчанию от ТВ туда не пишутся.

Из-за лютых тормозов потом пришлось изменить логику работы этого параметра. Хотя, скорость волнует не всех разработчиков.

Правильно ли я понимаю, что с pdoResources это возможно будет только, если все значения будут введёнными?

То значение фильтра делается выпадающим списком. Получается, если добавить в выпадающий список, какую-нибудь заглушку, чтобы она вставала «по умолчанию», то всё получится.

Как бы то ни было, я заметил, что ни теги, ни даты pdoResources также не выводит, в отличие от getResources. Может, есть какие-нибудь костыли?

Да всё он выводит, нужно просто разобраться, что и в каком виде хранится в БД, а не тупо копировать чанки от getResources.

В параметре &where можно проверять ТВ на null.

Я же говорю, ТВ заносится через селектор A||B||C, где B — значение по умолчанию. Получается, ресурсы, в которых выбрано А (по схеме из первого сообщения), считаются, а ресурсы, которые созданы и в которых не изменён ТВ и по умолчанию выставился В, в базу не занесён и не выводится. ОК, этот момент, допустим, прояснён, я проверю его.

Но другие поля ТВ, например, дата или теги, также не выводятся, к сожалению, в результате чего, например, после перехода на pdo перестал работать скрипт фильтрации, который брал данные, выводящиеся в теги data-* из ТВ. Хорошо, заметил 🙂

Источник

[pdoTools] 2.11.0 — отключение выборки total по умолчанию

Для начала, немного теории. Все сниппеты pdoTools используют класс pdoFetch для работы с базой данный. Во время этого происходит выборка данных с подсчётом количества результатов и выставлением плейхолдера [[+total]] . Для максимальной точности, делается это, используя встроенные функции MySQL. Перед выборкой добавляется такая функция:
И MySQL знает, что нужно считать потенциально выбираемые результаты.

А после выборки делается отдельный запрос для получения результата и выставления плейхолдера

Так вот, этот плейхолдер нужен исключительно для постраничной навигации и вывода количества в showLog , но его выборка может занимать весьма продолжительное время. Так что, в новой версии добавлена опция setTotal прямо в класс pdoFetch, и она отключена по умолчанию.

То есть, теперь все выборки pdoTools не делают эту ненужную работу. Но, так как плейхолдер [[+total]] необходим для постраничной навигации, сниппет pdoPage включает его всегда. При вызове любого сниппета через pdoPage, этот плейхолдер будет выставлен.

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

Если так, то просто включите его:
modx.pro уже работает на новой версии, никаких проблем не обнаружено.

Думаю, ускорение работы pdoMenu, pdoCrumbs, pdoNeighbors и других сниппетов стоит этого. Обновляемся, тестируем, и как обычно, пишем отзывы.

Источник

pdoResources не выводит tv и дату

Комментарии: 10

И не выведет, потому как в условии нет вызова TV, а вместо этого 2 раза вызывается includeContent=`1`.
&includeTVs=`1` не равняется вызову нужных ТВишек. Должно быть &includeTVs=`newImage, и тд`.
И надеюсь все это не в одном ресурсе/чанке? Ибо &tpl=`newsBlockTpl` говорит pdoResources отправить все именно в этот шаблон, а не в текущий ресурс/чанк.

Что-то сумбурно написал, простите я из гостей вернулся 🙂
PS: И вообще, читайте доки

Всех с широкой масленницей 🙂

Да в доках вообще ничего не написано, особенно, если их не читать.

Открываем ссылку, смотрим описание &includeTVs:

Список ТВ параметров для выборки, через запятую. Например: «action,time» дадут плейсхолдеры [[+tv.action]] и [[+tv.time]].

Список ТВ, а не цифра 1.

Я не знаю, что поменялось, но неожиданно все начало само по себе работать.

Конечно, заменил &includeTVs=`1` на &includeTVs=`newsImage` и всё начало само по себе работать. Мистика!

Тоже самое и с вот этим
Сможешь ответить на вопрос, зачем здесь strtotime? Уверен, не сможешь, потому что так просто принято в getResources.

Фокус в том, что даты ресурсов в MODX и так хранятся в виде timestamp, и дополнительно преобразовывать их не нужно.
При работе через getResources этот timestamp сначала переводится в дату, потому что так задано в объекте modResource, а потом через фильтр в чанке обратно в timestamp. То есть, двойная бесполезная работа, которую pdoResources не делает.

А вот теперь самое интересное — наша документация открыта для редактирования, ты можешь всю эту информацию оформить как тебе удобно и добавить.
Только мало кто что-то добавляет, все только ноют, что «в доках вообще мало чего написано».

Извините, однотипные вопросы и нытьё надоело.

Источник

Не работает пагинация

Комментарии (6)

А со стандартными шаблонами работает?

Если нет, то проверьте, есть ли на странице еще вызов pdoPage.
В этом случае добавьте параметр: и тогда страницы выводите:

Также бывает не лишним изменить [[+total]] параметром

Так, что-то я совсем запутался.
Со стандартным шаблоном такая же ситуация (не работает как надо).
В [[!pdoPage?… добавил &pageNavVar=`prod`
На странице пытаюсь вывести [[!+prod.nav]]. В итоге вообще ничего не выводится.
По последнему (изменить total) вообще не понял, это где менять надо?

Читайте также:  Philips xenium e168 не работает микрофон

Параметр pageNavVar служит для того, чтобы развести несколько вызовов pdoPage на странице (документация). Иначе по клику на ссылке будут листаться все.

Параметр totalVar задает плейсхолдер для сохранения общего количества результатов. Дело в том, что практически все сниппеты (pdoResources, getImageList, getProducts, pdoMenu и т. д.) выводят это кол-во в переменную total. Бывает (сталкивался пару раз), что пагинация глючит из-за того, что какой-то сниппет считывает этот total и на основе него делает вывод, а total-то не его)).
Поэтому и рекомендовал добавить в вызов этот параметр с любым уникальным значением (хотя сам pdoPage пишет по умолчанию в page.total, но мало ли).

Чтобы совсем обособить данный вызов, можно ещё пененазначить переменную в запросе через &pageVarKey.

Если собрать все вышесказанное, то сделайте так:

Если и это не поможет, надо смотреть сайт.

PS на всякий случай.
В HEAD base прописан?

Источник

MODX. Вывод списка ресурсов на сайте с использованием pdoResources

Отредактировано: 16 Октября 2019

pdoResources — это улучшенная версия getResource, сниппета для вывода ресурсов (страниц) сайта на MODX Revolution.

Для перехода с getResources на pdoResources в большинстве случаев достаточно просто поменять префикс get на pdo в вызове.

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

Для вывода списка ресурсов на сайте достаточно вызвать сниппет

  • parent — ID ресурса с которого отсчитывать вывод ресурсов;
  • tpl — это шаблон ресурса;

Параметр parent можно указывать следующими путями:

  • parent=`1` — непосредственно номер ресурса;
  • parent=`[[*id]]` — id текущего ресурса;

В качестве шаблона можно указать чанк, или использовать инлайновую запись

Для добавления дополнительных полей к результату вывода надо прописать названия полей в параметр &includeTVs. А некоторые типы полей, например изображения, после подключения надо подготовить (отрендерить) с помощью параметра &processTVs

Если надо отфильтровать по какому-либо параметру

Для более сложной фильтрации можно использовать параметр &where.

Если надо использовать разные шаблоны в зависимости от условия

Вывод ресурсов где каждые N имеют свою обертку (параметр &tpl_nN не совместим с &offset)

Вызов xPDO с параметрами

Возможные ошибки

Все заполнено правильно, но вместо ресурсов отображается массив. Ищите проблему в вызове

  • неправильные кавычки?
  • не существующий чанк с шаблоном?
  • строковый шаблон без @INLINE?

Примеры

Вывод ресурсов не являющихся папкой

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

pdoResources

pdoResources

Сниппет предназначен для вывода списка ресурсов. Является продвинутой заменой для getResources: обладает всеми его возможностями, но лишен недостатков.

Умеет правильно сортировать ТВ параметры, присоединять таблицы при выборке, включать и исключать категории из разных контекстов и еще много чего.

Параметры

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

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

Название По умолчанию Описание
&parents Текущий ресурс Список родителей, через запятую, для поиска результатов. Если поставить 0 — выборка не ограничивается. Если id родителя начинается с дефиса, он и его потомки исключаются из выборки.
&depth 10 Глубина поиска дочерних ресурсов от родителя.
&resources Список ресурсов, через запятую, для вывода в результатах. Если id ресурса начинается с дефиса, этот ресурс исключается из выборки.
&context Ограничение выборки по контексту ресурсов.
&where Массив дополнительных параметров выборки, закодированный в JSON.
&showHidden 1 Показывать ресурсы, скрытые в меню.
&showUnpublished 0 Показывать неопубликованные ресурсы.
&showDeleted 0 Показывать удалённые ресурсы.
&hideContainers 0 Отключает вывод контейнеров, то есть, ресурсов с «isfolder = 1».
&select 0 Список полей для выборки, через запятую. Можно указывать JSON строку с массивом, например .
&sortby pagetitle Любое поле ресурса для сортировки, включая ТВ параметр, если он указан в параметре &includeTVs. Можно указывать JSON строку с массивом нескольких полей, например . Для случайно сортировки укажите «RAND()»
&sortdir DESC Направление сортировки: по убыванию или возрастанию.
&setTotal 0 Отключение выборки total по умолчанию (с версии 2.11.0). Сниппет pdoPage включает его всегда.
&limit 10 Ограничение количества результатов выборки. Можно использовать «0».
&offset 0 Пропуск результатов от начала. Необходимо использовать вместе с явно указанным &limit
&first 1 Номер первой итерации вывода результатов.
&last Автоматически, по формуле (total + first — 1) Номер последней итерации вывода результатов.
&loadModels Список компонентов, через запятую, чьи модели нужно загрузить для построения запроса. Например: &loadModels=`ms2gallery,msearch2`.
&tvFilters Список фильтров по ТВ, с разделителями AND и OR. Разделитель, указанный в параметре &tvFiltersOrDelimiter представляет логическое условие OR и по нему условия группируются в первую очередь. Внутри каждой группы вы можете задать список значений, разделив их &tvFiltersAndDelimiter. Поиск значений может проводиться в каком-то конкретном ТВ, если он указан «myTV==value», или в любом «value». Пример вызова: &tvFilters=`filter2==one,filter1==bar%||filter1==foo`. Обратите внимание: фильтрация использует оператор LIKE и знак «%» является метасимволом. И еще: Поиск идёт по значениям, которые физически находятся в БД, то есть, сюда не подставляются значения по умолчанию из настроек ТВ.
&tvFiltersAndDelimiter «,» Разделитель для условий AND в параметре &tvFilters.
&tvFiltersOrDelimiter «||» Разделитель для условий OR в параметре &tvFilters.

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

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

Название Описание
&returnIds Установите значение «1», чтобы вернуть строку со списком id ресурсов, вместо оформленных результатов. Все указанные шаблоны игнорируются.
&tpl Имя чанка для оформления ресурса. Если не указан, то содержимое полей ресурса будет распечатано на экран.
&tplFirst Имя чанка для первого ресурса в результатах.
&tplLast Имя чанка для последнего ресурса в результатах.
&tplOdd Имя чанка для каждого второго ресурса (хоть «odd» значит «нечётный», работает для чётных ресурсов).
&tplWrapper Чанк-обёртка, для заворачивания всех результатов. Понимает один плейсхолдер: [[+output]] . Не работает вместе с параметром &toSeparatePlaceholders.
&wrapIfEmpty Включает вывод чанка-обертки &tplWrapper даже если результатов нет.
&tplCondition Поле ресурса, из которого будет получено значение для выбора чанка по условию в &conditionalTpls.
&tplOperator Необязательный оператор для проведения сравнения поля ресурса в &tplCondition с массивом значений и чанков в &conditionalTpls.
&conditionalTpls JSON строка с массивом, у которого в ключах указано то, с чем будет сравниваться &tplCondition, а в значениях — чанки, которые будут использованы для вывода, если сравнение будет успешно. Оператор сравнения указывается в &tplOperator. Для операторов типа isempty можно использовать массив без ключей.
&outputSeparator Необязательная строка для разделения результатов работы.

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

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

Название По умолчанию Описание
&fastMode 0 Быстрый режим обработки чанков. Все необработанные теги (условия, сниппеты и т.п.) будут вырезаны.
&idx Вы можете указать стартовый номер итерации вывода результатов.
&totalVar total Имя плейсхолдера для сохранения общего количества результатов. Параметр setTotal должен быть включен.
&includeContent 0 Включаем поле «content» в выборку.
&includeTVs Список ТВ параметров для выборки, через запятую. Например: «action,time» дадут плейсхолдеры [[+tv.action]] и [[+tv.time]] .
&prepareTVs «1», что означает подготовку всех ТВ, указанных в &includeTVs Список ТВ параметров, которые нужно подготовить перед выводом.
&processTVs Список ТВ параметров, которые нужно обработать перед выводом. Если установить в «1», будут обработаны все ТВ, указанные в &includeTVs.
&tvPrefix tv. Префикс для ТВ параметров.
&useWeblinkUrl Генерировать ссылку с учетом класса ресурса, включает плейсхолдер [[+link]] .
&toPlaceholder Если не пусто, сниппет сохранит все данные в плейсхолдер с этим именем, вместо вывода не экран.
&toSeparatePlaceholders Если вы укажете слово в этом параметре, то ВСЕ результаты будут выставлены в разные плейсхолдеры, начинающиеся с этого слова и заканчивающиеся порядковым номером строки, от нуля. Например, указав в параметре «myPl», вы получите плейсхолдеры [[+myPl0]] , [[+myPl1]] и т.д.
&showLog 0 Показывать дополнительную информацию о работе сниппета. Только для авторизованных в контекте «mgr».

Примеры

Простейший вывод списка дочерних ресурсов документа с идентификатором 1:

Если используется дополнительное поле image, то вызов изменится следующим образом:

В чанке ListRowTpl за это поле будет отвечать плейсхолдер [[+tv.image]]

Дополнительная информация

При переносе чанков с getResources, довольно распространённой ошибкой является использование модификатора strtotime, для форматирования даты.

Дело в том, что даты ресурсов и так хранятся в виде timestamp, но конвертируются в нормальные даты из-за использования объектов modResource — так запрограммировано в его свойствах. А потом, для форматирования даты, их нужно перевести обратно в timestamp. Выходит двойная ненужная конвертация.

pdoTools же работает напрямую с базой данных, без создания объектов и конвертации их значений, поэтому в чанк приходит timestamp, который не нужно дополнительно обрабатывать. Вы можете сразу применять модификатор date к значениям:

Это касается работы с датами ресурсов и в других сниппетах pdoTools.

Общие параметры для пакета pdoTools

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

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

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

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

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

Название По умолчанию Описание
&class modResource Класс получаемого объекта
&parents Текущий ресурс Список родителей, через запятую, для поиска результатов. Если поставить 0 — выборка не ограничивается. Если id родителя начинается с дефиса, он и его потомки исключаются из выборки.
&depth 10 Глубина поиска дочерних ресурсов от родителя.
&resources Список ресурсов, через запятую, для вывода в результатах. Если id ресурса начинается с дефиса, этот ресурс исключается из выборки.
&templates Список шаблонов, через запятую, для фильтрации результатов. Если id шаблона начинается с дефиса, ресурсы с ним исключается из выборки.
&context Ограничение выборки по контексту ресурсов.
&where Массив дополнительных параметров выборки, закодированный в JSON.
&showHidden 0 Показывать ресурсы, скрытые в меню.
&showUnpublished 0 Показывать неопубликованные ресурсы.
&showDeleted 0 Показывать удалённые ресурсы.
&hideContainers 0 Отключает вывод контейнеров, то есть, ресурсов с «isfolder = 1».
&hideUnsearchable Отключает вывод спрятанных от поиска ресурсов.
&select Список полей для выборки, через запятую. Можно указывать JSON строку с массивом, например .
&leftJoin Аналог SQL оператора left join
&rightJoin Аналог SQL оператора right join
&innerJoin Аналог SQL оператора inner join
&joinSequence innerJoin,leftJoin,rightJoin Порядок подключения таблиц, через зяпятую.
&sortby pagetitle Любое поле ресурса для сортировки, включая ТВ параметр, если он указан в параметре &includeTVs. Можно указывать JSON строку с массивом нескольких полей. Для случайно сортировки укажите «RAND()»
&sortdir ASC Направление сортировки: по убыванию или возрастанию.
&groupby Указывает поле, по которому группируются результаты
&having Используется, чтобы ограничить выборку сгруппированных строк с помощью условия, относящегося ко всей группе, заданной в &groupby
&limit 0 Ограничение количества результатов выборки. Можно использовать «0».
&offset 0 Пропуск результатов от начала.
&first 1 Номер первой итерации вывода результатов.
&last Автоматически, по формуле (total + first — 1) Номер последней итерации вывода результатов.
&loadModels Список компонентов, через запятую, чьи модели нужно загрузить для построения запроса. Например: &loadModels=`ms2gallery,msearch2`.
&tvFilters Список фильтров по ТВ, с разделителями AND и OR. Разделитель, указанный в параметре &tvFiltersOrDelimiter представляет логическое условие OR и по нему условия группируются в первую очередь. Внутри каждой группы вы можете задать список значений, разделив их &tvFiltersAndDelimiter. Поиск значений может проводиться в каком-то конкретном ТВ, если он указан «myTV==value», или в любом «value». Пример вызова: &tvFilters=`filter2==one,filter1==bar%||filter1==foo`. Обратите внимание: фильтрация использует оператор LIKE и знак «%» является метасимволом. И еще: Поиск идёт по значениям, которые физически находятся в БД, то есть, сюда не подставляются значения по умолчанию из настроек ТВ.
&tvFiltersAndDelimiter «,» Разделитель для условий AND в параметре &tvFilters.
&tvFiltersOrDelimiter «||» Разделитель для условий OR в параметре &tvFilters.
&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.
&conditionalTpls JSON строка с массивом, у которого в ключах указано то, с чем будет сравниваться &tplCondition, а в значениях — чанки, которые будут использованы для вывода, если сравнение будет успешно. Оператор сравнения указывается в &tplOperator. Для операторов типа isempty можно использовать массив без ключей.
&outputSeparator Необязательная строка для разделения результатов работы.

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

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

Название По умолчанию Описание
&return chunks Определяет способ вывода результатов. См. ниже.
&fastMode 0 Быстрый режим обработки чанков. Все необработанные теги (условия, сниппеты и т.п.) будут вырезаны.
&nestedChunkPrefix pdotools_ Префикс для «быстрых плейсхолдеров», включаемых параметром &fastMode
&idx Вы можете указать стартовый номер итерации вывода результатов.
&totalVar total Имя плейсхолдера для сохранения общего количества результатов.
&includeContent 0 Включаем поле «content» в выборку.
&includeTVs Список ТВ параметров для выборки, через запятую. Например: «action,time» дадут плейсхолдеры [[+action]] и [[+time]] .
&includeTVList Псевдоним &includeTVs
&prepareTVs 1 Список ТВ параметров, с файлами из источников медиа, для которых нужно сгенерировать полные пути. Если установить в «1», будут подготовлены все ТВ, указанные в &includeTVs.
&processTVs Список ТВ параметров, которые нужно обработать и вывести согласно их настроек в менеджере системы. Если установить в «1», будут обработаны все ТВ, указанные в &includeTVs. Замедляет работу.
&tvPrefix tv. у pdoResources и пусто у других сниппетов Префикс для ТВ параметров.
&prepareSnippet 1 Указывает сниппет, который принимает данные перед выводом в чанк и может их менять или добавлять
&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. В качестве шаблона будет использован код после этого префикса.

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

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

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

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

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

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

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

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

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

Источник

Оцените статью