cronAbs

cronAbs

С нами с 30 мая 2023; Место в рейтинге пользователей: #7237
Василий Наумкин
26 января 2015, 22:03
6
0
$pdo = $modx->getService('pdoFetch');
$result = $pdo->getArray(
	// Класс
	'msProduct',
	// Условие where
	array(
		'deleted' => false,
		'published' => true,
	),
	// Параметры выборки
	array(
		'parents' => 5, // Категория с товарами
		'innerJoin' => array(
			'Data' => array('class' => 'msProductData')
		),
		'select' => array('Data' => 'price'),
		'sortby' => 'Data.price',
		'sortdir' => 'asc',
	)
);
if (!empty($result)) {
	echo $result['price'];
}
// При желании можно лог посмотреть
echo '<pre>';
print_r($modx->getPlaceholder('pdoTools.log'));
Василий Наумкин
29 сентября 2014, 17:59
2
+1
Получится, там же строка с JSON.

Но правильнее, конечно, так:
[[!msProducts?
	&parents=`0`
	&innerJoin=`{"Options":{"class":"msProductOption"}}`
	&groupby=`msProduct.id`
	&where=`{"Options.key":"color","Options.value:IN":["Белый","Белая"]}`
]]
Василий Наумкин
18 сентября 2013, 17:23
9
0
<?php
$tvid = 1; // id нужного ТВ параметра
$res = array(); // Сюда забиваем результаты

$q = $modx->newQuery('modTemplateVarResource', array('tmplvarid' => $tvid));
$q->select('contentid,value');
if ($q->prepare() && $q->stmt->execute()) {
	while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
		$res[$row['contentid']] = $row['value'];
	}
}
print_r($res);

Получишь массив с id ресурсов и значенями ТВ c id = 1.