Есть разветвлённый каталог с подразделами, как вывести все объекты из всех подразделов?

Материал из Umicms

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

Для вывода всех объектов каталога используется макрос %catalog getObjectsList('default', 'mode=all')%, однако, подобный способ не всегда удобен, поэтому мы проводим еще одно решение:

Применим рекурсию;

шаблон ~tpls/catalog/default.tpl будет выглядеть примерно так:

$FORMS = Array(); 

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

%catalog getCategoryList('default', '%category_id%')%
%catalog getObjectsList('default', '%category_id%')%

END; 

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

%lines%

END; 

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

END;
 

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

%catalog getCategoryList('default', '%id%')%
%catalog getObjectsList('home', '%id%')%

END;

 

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

%lines%

END; 

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

%catalog viewObject('%id%', 'preview')%

END; 

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

<div id="objl">%name%<br />%data getAllGroups('%id%','catalog_full')%</div>

END; 

?>


Здесь важно, что в блоке ['category_block_line'] вызывается %catalog getCategoryList('default', '%id%')%, то есть для каждого раздела вызывается список подразделов и список объектов этого раздела. И так происходит, пока мы не доходим до конца дерева.

Личные инструменты