Решил для себя, делюсь со всеми.
Имею большую, разветвленную структуру контента, причем большая часть папок забита на перспективу, т.е. без содержимого. Пользователю не удобно, ну а все не нужные отключать не с руки. Решил скрыть.
Работаем с тремя файлами:
1. /system/controllers/content/model.php
2. /system/controllers/content/widgets/categories/widget.php
3. /templates/{ваш шаблон}/controllers/content/widgets/categories/categories.tpl.php
Так как у меня все фалы изрыты экспериментами прикреплять их не буду, дело там не большое дешевле описать.
model.php:
Из стандартного набора подобная функция мне не по глазам, рисую свою.
public function CountItemsInFolder($ctype_name,$parent_id){ $category = $this->getCategory($ctype_name,$parent_id); $this->filterCategory($ctype_name, $category, 1); $this->filterEqual('is_pub',1); $count = $this->getContentItemsCount($ctype_name); $this->resetFilters(); return $count; }
Перед строкой "return array(" собираем инфо о наличии вложенного материала.
foreach($cats as $id=>$cat){ $items[$id] = $model->CountItemsInFolder($ctype_name,$id); }
... 'items' => $items, );
Используем дефолтное условие по срытию папок.
ищем: <?php if (!$is_visible) { ?> расширяем условие: <?php if (!$is_visible || !$items[$id]) { ?>
Удачи.