Иван Бочкарев

Иван Бочкарев

Был в сети 35 минут назад
Заказы не принимаю
Маленько не то, может поможет:
<div class="row">
<h2 class="text-center">Похожие объекты</h2>
[[msOptionsMy?
&product=`[[*id]]`
&name=`region`
&tplRow=`@INLINE [[+value]]`
&tplOuter=`@INLINE [[+rows]]`
&toPlaceholder=`region`
]]

 [[!idsProperty?
 &prop=`[[+region]]`
&key=`region`
&toPlaceholder=`ids`
]]

[[!msProducts?
&parents=`0`
&resources=`[[+ids]]`
&tpl=`tpl.properties.row`
&includeThumbs=`700x470`
&depth=`3`
&sortby=`RAND()`
&limit=`3`
]]
 </div>
Выводим объекты из этого региона:
Пример

Снипет idsProperty
//$key = 'region';
$category = 0;
//$prop = 'значение свойства';
//$key = $scriptProperties['key'];

//print_r($key);die;

$q = $modx->newQuery('msProductOption');
$q->innerJoin('msProduct', 'msProduct', 'msProduct.id=msProductOption.product_id');
$q->where(array('msProductOption.key' => $key, 'msProductOption.value'=> $prop));
$q->sortby('msProductOption.value','ASC');
$q->select('DISTINCT(msProductOption.value), msProduct.id');
$q->where(array('msProductOption.key' => $key));
if (!empty($category)) {
    $ids = $modx->getChildIds($category);
    $ids[] = $category;
    $q->innerJoin('msCategory', 'msCategory', 'msCategory.id=msProduct.parent');
    $q->where(array('msCategory.id:IN' => $ids));
}
$result = array();
if ($q->prepare() && $q->stmt->execute()) {
    while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
    	$res['id'][] = $row['id'];
	}
	$result = implode(",", array_unique($res['id'])) ;

}

$modx->setPlaceholder($toPlaceholder, $result);

return '';
Автор: Володя Володин