Как получить в сниппете результат runsnippet
Прошу помощи
в сниппете получаю документ сниппетом pdoResources
до вывода на страницу мне нужно проверить значение TV поля этого документа
вопрос как это сделать?
вот так получил документ из которого нужно узнать значение TV — myTV
в сниппете получаю документ сниппетом pdoResources
до вывода на страницу мне нужно проверить значение TV поля этого документа
вопрос как это сделать?
вот так получил документ из которого нужно узнать значение TV — myTV
$params = array(
'parents' => '1',
'resources' => '2',
'showUnpublished' => '1',
'includeContent' => '1',
'includeTVs' => 'myTV',
'tpl' => 'tpl_chunk'
);
$res = $modx->runSnippet('pdoResources', $params);
Комментарии: 8
Вариантов масса, но лучше, конечно, прямым запросом в базу(SELECT *
FROM `modx_tmplvar_contentvalues`… ) или xPDO & MODX API(тут тоже можно напрямую)
FROM `modx_tmplvar_contentvalues`… ) или xPDO & MODX API(тут тоже можно напрямую)
$page = $modx->getObject('modResource',$where);
$tvValue = $page ->getTVValue('myTV');
Если нужны все твшки все дочерних документов, то через метод $page = $modx->getIterator('modResource',$where);
А потом в цикле пройтись. В вашем случае, проверку можно пройти в чанке tpl_chunk, там она будет доступна через феном$_pls['tv.myTV']
Обычным парсером, вроде как: [[+myTV]] ну или [[+tv.myTV]]
Пример в ответе не вяжется с примером в вопросе
Я знаю как получать TV у ресурсов
вопрос в том как получать TV поле у полученных ресурсов в результате работы сниппета
вот получил я результат $res, а дальше что, как узнать значение поля myTV ресурсов из полученного результата?
Прошу прощения заранее, возможно мой вопрос совсем простой, но не нашел нигде ни примеров ни ответов, вот и обратился за помощью.
Я знаю как получать TV у ресурсов
вопрос в том как получать TV поле у полученных ресурсов в результате работы сниппета
вот получил я результат $res, а дальше что, как узнать значение поля myTV ресурсов из полученного результата?
Прошу прощения заранее, возможно мой вопрос совсем простой, но не нашел нигде ни примеров ни ответов, вот и обратился за помощью.
В массив параметров добавить элемент 'includeTVs'=>'myTV'
После этого значения данного поля будут в массиве результатов, дополнительные запросы не потребуются.
После этого значения данного поля будут в массиве результатов, дополнительные запросы не потребуются.
Так там есть такой элемент
вот же код первоначальный
Я понимаю, что в массиве результатов уже есть то что надо
КАК получить эти значения из $res, вот чего не знаю и о чем спрашивал.
вот же код первоначальный
$params = array(
'parents' => '1',
'resources' => '2',
'showUnpublished' => '1',
'includeContent' => '1',
'includeTVs' => 'myTV',
'tpl' => 'tpl_chunk'
);
$res = $modx->runSnippet('pdoResources', $params);
вопрос в том как проверить какое значение в myTV у каждого ресурса в результате $res?Я понимаю, что в массиве результатов уже есть то что надо
КАК получить эти значения из $res, вот чего не знаю и о чем спрашивал.
Результат работы runSnippet — это HTML-код (текст). Либо надо его парсить, либо просто проверять значения ТВ отдельным запросом
Оба варианта — это дичь
Если нужно отфильтровать по значению ТВ, используйте фильтр по ТВ (tvFilters). Если нужно оформить в соответствии со значением, используйте или Fenom в чанке, или параметр prepareSnippet.
Можно указать параметр
'return' => 'json',
а дальше дело техники.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.