Вывод количества объектов в категории TPL — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
 
(не показана 1 промежуточная версия этого же участника)
Строка 41: Строка 41:
 
добавляем следующий код
 
добавляем следующий код
 
<source lang="php">
 
<source lang="php">
%data doSelection('default2', amount, %pid%)%
+
%custom productsCount(%id%)%
 
</source>
 
</source>
  

Текущая версия на 10:47, 2 июня 2014

Актуально для версии 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(%id%)%

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