mFilter

Добрый день!
Никак не могу в фильтр добавить фильтрацию по категориям товара
Вызов mfilter такой:


[[!mFilter?
					&resources=`[[!getCatIds?parents=`[[*id]]` &depth=`4`]]`
					&includeTVs=`1`
                                        &includeTVList=`category`
					&includeMS=`1`
					&includeMSList=`price,new,favorite,popular,size,color`
&sortFilters=`tv_category,tv_subcategory,ms_price,ms_new,ms_favorite,ms_popular,ms_size,ms_color`
					&tpl=`tpl.msProducts.row`
				]]
Вот сниппет getCatIds:

if (!empty($_REQUEST['query'])) {
	$modx->setPlaceholder('parents', @$_REQUEST['parents']);
	return;
}

if (!isset($parents) || empty($parents)) {
	$parents = $modx->resource->id;
}
	
if (empty($depth)) {$depth = 1;}
$pids = array_map('trim', explode(',', $parents));
$parents = $pids;
foreach ($pids as $v) {
	if (!is_numeric($v)) {continue;}
	$parents = array_merge($parents, $modx->getChildIds($v, $depth));
}

$ids = array();
$q = $modx->newQuery('msProduct', array('parent:IN' => $parents, 'class_key' => 'msProduct', 'published' => 1, 'deleted' => 0));
$q->select('id');
if ($q->prepare() && $q->stmt->execute()) {
	$ids = $q->stmt->fetchAll(PDO::FETCH_COLUMN);
}

$q = $modx->newQuery('msCategoryMember', array('category_id:IN' => $parents));
$q->select('product_id');
if ($q->prepare() && $q->stmt->execute()) {
	$members = $q->stmt->fetchAll(PDO::FETCH_COLUMN);
}

if (!empty($members)) {$ids = array_merge($ids, $members);}
return implode(',', $ids);
Но в фильтр упорно не выводятся категории, что бы можно было по ним фильтровать!

Подскажите, пожалуйста в чем моя ошибка!

Заранее благодарен!
Серго Арбузов
06 августа 2013, 17:54
modx.pro
861
0

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0