Вывод количества объектов в категории TPL
Материал из Umicms
Версия от 10:27, 2 июня 2014; Alexei (обсуждение | вклад)
Актуально для версии 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>
добавляем следующий код
%data doSelection('default2', amount, %pid%)%
В нашем случае это шаблон /tpls/content/menu/default.tpl Всё, теперь у нас напротив категорий выводится количество товаров в этой категории.