Как получить количество товаров в определенной категории с определенным значением в tv поля?

Подскажите а можно получить количество товаров с определенным значением в tv поля, только в той категории в которой находишься, а то этот код
<?php
$count = 0;
foreach ($modx->getIterator('msProduct') as $resource) {
	if($resource->getTVValue('Proiz') == 'Atlas Concore') $count++;
}
return $count;

выдает все товары из всех категорий. Нужно подсчитать количество товаров только в категории которой находишься с определенным значением в tv поля.
Антон
04 сентября 2018, 20:49
modx.pro
1 669
0

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

Андрей
05 сентября 2018, 10:45
0
Попробуй так:
<?php

$count = 0;
$pages = $modx->getIterator('msProduct', ['parent' => $modx->resource->get('id')]);

foreach ($pages as $p) {
	if($resource->getTVValue('Proiz') == 'Atlas Concore') $count++;
}

return $count;
    Антон
    05 сентября 2018, 21:59
    0
    Выдает ошибку Fatal error: Uncaught Error: Call to a member function getTVValue() on null in D:\YandexDisk\Open_Server\OSPanel\domains\kupalniki-dzhinsy\core\cache\includes\elements\modsnippet\65.include.cache.php:9 Stack trace: #0 D:\YandexDisk\Open_Server\OSPanel\domains\kupalniki-dzhinsy\core\model\modx\modscript.class.php(70): include() #1 D:\YandexDisk\Open_Server\OSPanel\domains\kupalniki-dzhinsy\core\model\modx\modparser.class.php(536): modScript->process(NULL) #2 D:\YandexDisk\Open_Server\OSPanel\domains\kupalniki-dzhinsy\core\components\pdotools\model\pdotools\pdoparser.class.php(273): modParser->processTag(Array, true) #3 D:\YandexDisk\Open_Server\OSPanel\domains\kupalniki-dzhinsy\core\model\modx\modparser.class.php(250): pdoParser->processTag(Array, true) #4 D:\YandexDisk\Open_Server\OSPanel\domains\kupalniki-dzhinsy\core\components\pdotools\model\pdotools\pdoparser.class.php(65): modParser->processElementTags('', '<!DOCTYPE html>...', true, false, '[[', ']]', Array, 9) #5 D:\YandexDisk\Open_Server\OSPanel\domains\kupalniki- in D:\YandexDisk\Open_Server\OSPanel\domains\kupalniki-dzhinsy\core\cache\includes\elements\modsnippet\65.include.cache.php on line 9
    Антон
    05 сентября 2018, 22:01
    1
    0
    Работает вот такой вариант
    $count = 0;
    $output = $modx->getIterator('msProduct',array("parent" => 5)); //Тут id вашей категории
    foreach ($output as $resource) {
    	if($resource->getTVValue('flagImagesYandex') == '1') $count++;
    }
    return $count;
    Но все ровно спасибо за потраченное время))
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3