Есть разветвлённый каталог с подразделами, как вывести все объекты из всех подразделов?
Материал из 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%')%, то есть для каждого раздела вызывается список подразделов и список объектов этого раздела. И так происходит, пока мы не доходим до конца дерева.
