Как сделать различный вывод разделов, содержащих объекты, и пустых разделов каталога TPL

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

Допустим, необходимо реализовать следующую схему: разделы каталога, содержащие объекты, выглядят как ссылки на страницу просмотра списка объектов. Пустые разделы - просто текст. Раздел может содержать только подразделы или только объекты.

В итоге должно быть:

Раздел 1-го уровня
  Раздел 2-го уровня (1)
   Раздел 3-го уровня (с объектами)
   Раздел 3-го уровня (пустой)
  Раздел 2-го уровня (с объектами)

Пример приводится на двух шаблонах: ~/tpls/catalog/default.tpl и ~/tpls/catalog/default1.tpl:

В стандартном шаблоне default.tpl редактируем блок ['category_block_line']:

<?php
$FORMS['category_block_line'] = <<<END
%catalog getObjectsList('default1', '%id%')%
%catalog getCategoryList('default', '%id%')%
END;
?>


А в шаблон default1.tpl, по которому будет формироваться вывод разделов, размещаем следующий код:

<?php
$FORMS = Array();
$FORMS['objects_block'] = <<<END
<li><a href="%content get_page_url('%id%')%"><b>%h1%</b></a></li>
END;


$FORMS['objects_block_empty'] = <<<END
<li>%h1%</li>
END;
?>


В итоге имеем необходимый результат.