<?php $q = $modx->newQuery('modResource'); $q->leftJoin('modTemplateVarResource', 'Price', 'modResource.id = Price.contentid AND Price.tmplvarid = 14'); $q->leftJoin('modTemplateVarResource', 'Currency', 'modResource.id = Currency.contentid AND Currency.tmplvarid = 15'); $q->groupby('modResource.id'); $q->select([ 'modResource.*', '`Price`.`id` AS `Price_id`, `Price`.`tmplvarid` AS `Price_tmplvarid`, `Price`.`contentid` AS `Price_contentid`, `Price`.`value` AS `Price_value`', '`Currency`.`id` AS `Currency_id`, `Currency`.`tmplvarid` AS `Currency_tmplvarid`, `Currency`.`contentid` AS `Currency_contentid`, `Currency`.`value` AS `Currency_value`', 'IFNULL(`Price`.`value`, 0) AS `Price_value`', 'IFNULL(`Currency`.`value`, "RUB") AS `Currency_value`' ]); $q->where([ [ 'Price.value:!=' => 0, 'Price.value:IS NOT' => NULL ], [ 'Currency.value' => 'RUB', 'OR:Currency.value:IS' => NULL ] ]); $count = $modx->getCount('modResource', $q); $q->limit(100); if ($q->prepare() && $q->stmt->execute()) { $resources = $q->stmt->fetchAll(PDO::FETCH_ASSOC); } echo "<p>Всего ресурсов найдено: {$count}</p><hr>"; foreach($resources as $resource) { echo "<p><b>{$resource['pagetitle']} ({$resource['id']})</b> - {$resource['Price_value']} {$resource['Currency_value']}</p>"; }
Выборка ресурсов с TV-параметрами
19 ноября 2015, 18:51
Наткнулся на эту маленькую статью-шпаргалку у Вас.
Это прям то, что нужно мне. Только правда не всё понятно в скрипте Вашем мне.
Если не сложно, можно у Вас узнать, что значат второй и третий аргумент в подключаемом методе leftJoin?
В этом куске кода
Не подскажете ли ответ на следующий вопрос по этой причине,
как вывести в таблицу в своей CMP как раз id ресурса, его pagetitle и значение его TV?
Получилось разобраться самому!
Ну вот, хорошему человеку напишешь и сразу из космоса ответ приходит)))
А как можно вывести ресурсы с разными TV и их значениями?
Я делаю данный скрипт из этой статьи, а мне не выводит ресурсы с TV, если у них разные TV имеют значения. То есть у одних ресурсов есть значения в TV1 (например), а у других в TV2 и не выводит ничего. Показывает 0 ресурсов.
Попробуйте подробно описать свою задачу на modx.pro, добавить в вопрос код, который что-то выводит, код, который не работает. Там много специалистов, наверняка кто-то поможет.
Илья, спасибо Вам за совет.