Вывод количества объектов в категории TPL

Материал из Umicms
Перейти к:навигация, поиск

Актуально для версии 2.9.6

Задача - вывести количество товаров напротив каждой подкатегории(к примеру чтоб напротив категории аксессуары стояла цифра 3, то есть количество аксессуаров)

В файле classes/modules/custom.php после строки //TODO: Write your own macroses here пропишем следующий макрос:

public function productsCount($pageId) {

    $objectTypesCollection = umiObjectTypesCollection::getInstance();
    $hierarchy = umiHierarchy::getInstance();
			
    $product_basetype_id = $objectTypesCollection->getBaseType( 'catalog', 'object' );
    $product_hierarchy_type_id = $objectTypesCollection->getType( $product_basetype_id )->getHierarchyTypeId();
			
    $unactive_product = false;
    $unvisible_product = true;
			
    $count = $hierarchy->getChildsCount( $pageId, $unactive_product, $unvisible_product, 0, $product_hierarchy_type_id);
			
    return($count);
}

?>

Затем идём в шаблон, отвечающий за вывод подкатегорий и в блок

$FORMS['menu_line_level1_a'] = <<<END

<div>
	<a href="%link%" umi:element-id="%id%" umi:field-name="name">%text%</a>
</div>
%sub_menu%

END;

после

<a href="%link%" umi:element-id="%id%" umi:field-name="name">%text%</a>

добавляем следующий код

%custom productsCount(%pid%)%

В нашем случае это шаблон /tpls/content/menu/default.tpl Всё, теперь у нас напротив категорий выводится количество товаров в этой категории.