Как вывести результаты pdoResources в формате json, но с моим tpl
        Всем привет!
Вывод с параметром &return=`json` меня не совсем устраивает, так как он выводит все поля документа без возможности обработки вложенными сниппетами.
Например, у меня есть TV в формате MIGX для добавления множества фото к документу и их необходимо обработать с помощью phpthumbon, а также другие необходимы обработки внутри чанков.
Если я делаю свой шаблон с закосом под структуру json:
{
«id»: "{$id}",
«pagetitle»: "{$pagetitle}",
},
То это не работает. Выводит в таком виде, но не работает там, куда отправляется эта json-ссылка.
Что делать?
    
    
                                                                                
            Вывод с параметром &return=`json` меня не совсем устраивает, так как он выводит все поля документа без возможности обработки вложенными сниппетами.
Например, у меня есть TV в формате MIGX для добавления множества фото к документу и их необходимо обработать с помощью phpthumbon, а также другие необходимы обработки внутри чанков.
Если я делаю свой шаблон с закосом под структуру json:
{
«id»: "{$id}",
«pagetitle»: "{$pagetitle}",
},
То это не работает. Выводит в таком виде, но не работает там, куда отправляется эта json-ссылка.
Что делать?
Комментарии: 10
[[!pdoResources?
	&return=`json`
]]Тут документация            - Обработанные изображения (image)
 - Имя родителя, вместо id родителя
 
                Спасибо. Но говорю же — не помогает. Мне нужно, например, обработать все фото с помощью phpthumbon и вывести название родителя. Это можно сделать внутри чанка для pdoResources.
Попробую по-другому спросить. Как получить и вывести в json?
                    &return=`json` выводит все поля ресурса, без обработок.Попробую по-другому спросить. Как получить и вывести в json?
{
"id": "7",
"pagetitle": "Студия",
"parent": "4",
"tv_photos": [
{
"MIGX_id": "1",
"title": "Room",
"image": "assets/uploads/room_2_1.webp"
},
{
"MIGX_id": "2",
"title": "Room",
"image": "assets/uploads/room_2_2.webp"
},
{
"MIGX_id": "3",
"title": "Room",
"image": "assets/uploads/room_2_3.webp"
}
},Буду очень рад помощи.            
                Ну, через SELECT, задайте, какие вам поля нужны. А так не очень понятно, при чем тут phpthumbon и json. =)            
                    
                Поля заданы:
Как сначала обработать фотографии с помощью? Как В это (огромная фотка)
Как получить имя родителя? А потом вывести все в формате json?
Если все обобщить, то я ищу вариант чтобы сначала обработать встроенными сниппетами все что можно (мне нужно в чанках вложенные сниппеты использовать), затем сформировать правильный json и выкатить его на страницу (ресурс).
Как такое сделать? Смотрел в сторону API Rest, но это не совсем то.
                    {$_modx->runSnippet('!pdoResources', [
'fastMode' => 0,
'limit' => 0,
'parents' => 2,
'depth' => 5,
'includeContent' => 1,
'tvPrefix' => 'tv_',
'includeTVs' => 'stars,room_type,room_details,basis_price,photos',
'select' => '{"modResource":"id,uri,pagetitle,content,photos"}',
'return' => 'json',
'where' => ['isfolder' => 0]
])}Но я не могу использовать вложенные сниппеты при return=json, которые можно использовать только в чанках.Как сначала обработать фотографии с помощью? Как В это (огромная фотка)
"image": "assets/uploads/room_2_3.webp" воткнуть это [[*thumbnailImage:phpthumbof=`w=300&h=300&zc=1`]]?Как получить имя родителя? А потом вывести все в формате json?
Если все обобщить, то я ищу вариант чтобы сначала обработать встроенными сниппетами все что можно (мне нужно в чанках вложенные сниппеты использовать), затем сформировать правильный json и выкатить его на страницу (ресурс).
Как такое сделать? Смотрел в сторону API Rest, но это не совсем то.
                При использовании return json до tpl дело не доходит. 
Эти параметры между собой не совместимы.
Сниппеты обработать в tpl не получился.
Чтобы получить дополнительные данные — например родителя нужно использовать конструкции LeftJOIN и Select
                    Эти параметры между собой не совместимы.
Сниппеты обработать в tpl не получился.
Чтобы получить дополнительные данные — например родителя нужно использовать конструкции LeftJOIN и Select
                Я пытаюсь прикрутить Vue.js на фронт, а он принимает json (мне с ним проще работать).
Пытаюсь все обработать привычным MODX Revo и его сниппетами, сформировать правильный json и скормить Vue.js а фронт с помощью axios.
Как можно сделать такой json с уже обработанными ТВ и др.?
                    Пытаюсь все обработать привычным MODX Revo и его сниппетами, сформировать правильный json и скормить Vue.js а фронт с помощью axios.
Как можно сделать такой json с уже обработанными ТВ и др.?
                Привычным путем работы с шаблонизатором ничего хорошего не выйдет. 
Нужно писать API в котором работать напрямую с PHP и отдавать как нужно сформированный JSON.
Тут можно пойти двумя путями. Либо использовать RestFull API — и путем манипулирования URL запрашивать нужную информацию, либо пробрасывать все обращения на какой то единый коннектор. который будет отдавать данные в зависимости от action и HTTP метода запроса.
Но в любом случае обработчик должен быть PHP который уже внутри может запускать что то вроде
                    Нужно писать API в котором работать напрямую с PHP и отдавать как нужно сформированный JSON.
Тут можно пойти двумя путями. Либо использовать RestFull API — и путем манипулирования URL запрашивать нужную информацию, либо пробрасывать все обращения на какой то единый коннектор. который будет отдавать данные в зависимости от action и HTTP метода запроса.
Но в любом случае обработчик должен быть PHP который уже внутри может запускать что то вроде
$modx->runSnippet()            {set $rows = $_modx->runSnippet('!pdoResources', [
    'fastMode' => 0,
    'limit' => 0,
    'parents' => 2,
    'depth' => 5,
    'includeContent' => 1,
    'tvPrefix' => 'tv_',
    'includeTVs' => 'stars,room_type,room_details,basis_price,photos',
    'select' => '{"modResource":"id,uri,pagetitle,content,photos"}',
    'return' => 'json',
    'where' => ['isfolder' => 0]
]) | fromJSON}
{foreach $rows as $row} 
    ..
{/foreach}            
                Спасибо, но не работает.
Пробовал в одну строку, пробовал играться со скобками (выносил в переменные) — не работает.
Что я делаю не так?
                    {set $rows = $_modx->runSnippet('!pdoResources', [
'fastMode' => 0,
'limit' => 0,
'parents' => 2,
'depth' => 5,
'includeContent' => 1,
'tvPrefix' => 'tv_',
'includeTVs' => 'stars,room_type,room_details,basis_price,photos',
'select' => '{"modResource":"id,uri,pagetitle,content,photos"}',
'return' => 'json',
'where' => ['isfolder' => 0]
]) | fromJSON}
[{foreach $rows as $row}
    {
    "id":"{$row.id}",
    "uri":"{$row.uri}",
    "pagetitle":"{$row.pagetitle}",
    "content":"{$row.content}"
    },
{/foreach}]Выводит подобие json'а, но Vue не принимает его и генерирует пустые объекты, без данных.Пробовал в одну строку, пробовал играться со скобками (выносил в переменные) — не работает.
Что я делаю не так?
{set $rows = $_modx->runSnippet('!pdoResources', [
'fastMode' => 0,
'limit' => 0,
'parents' => 2,
'depth' => 5,
'includeContent' => 1,
'tvPrefix' => 'tv_',
'includeTVs' => 'stars,room_type,room_details,basis_price,photos',
'select' => '{"modResource":"id,uri,pagetitle,content,photos"}',
'return' => 'json',
'where' => ['isfolder' => 0]
])}
{$rows | print}            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.