Reemake Digital Agency · Технический разбор

Автоматический сбор дерева
вложенных категорий через nested sets

В 2026 году сайт — это не только дерево страниц, но и сложные вложенные структуры. Модуль подгрузки должен уметь работать с вложенными категориями. Разбираем, как это устроено в Joomla и как использует Reemake AJAX Content.

Мини-кейс · Пермские Строители

Ассоциация застройщиков: 80+ объектов в 12 подкатегориях

Ситуация: «Пермские Строители» — ассоциация застройщиков Пермского края. На сайте 80+ объектов, разбитых по категориям: жилые дома, коммерческие объекты, инфраструктура. У «Жилых домов» — 4 подкатегории по районам города. У «Коммерческих» — 3 подкатегории по типу.

Задача

Страница «Жилые дома» должна показывать объекты из всех 4 подкатегорий. Не нужно писать запрос для каждой.

Решение

Модуль Reemake AJAX Content использует nested sets: выбирает всё поддерево одним запросом.

Результат: редакция добавила новый объект в подкатегорию «Жилые дома → Мотовилихинский район» — он автоматически появился в ленте «Жилые дома». Никаких дополнительных настроек. Ни одной правки в коде.

Технические детали

Как устроены nested sets в Joomla

Joomla хранит категории в таблице #__categories с полями lft, rgt, level — это nested sets. Они позволяют выбрать всё поддерево одним запросом. Модуль Reemake AJAX Content использует это: указываете категорию — модуль автоматически расширяет выборку на все дочерние подкатегории.

SELECT id FROM #__categories
WHERE lft BETWEEN :lft AND :rgt
AND extension = 'com_content'

Результат — все ID категорий в поддереве. Дальше модуль выбирает материалы из этих категорий одним запросом. Не нужно рекурсивно обходить дерево — это быстро и безопасно.

Вопросы и ответы

От лица клиента

«У меня категории в 5 уровней — модуль справится?»
Да. Nested sets поддерживают любое количество уровней. Модуль соберёт всё поддерево от указанной категории.

«Что если выбрана категория без статей?»
Модуль подтянет материалы из дочерних подкатегорий — рекурсивно. Если статей нет ни в одной — покажет сообщение «Материалов нет».

«Можно ли исключить категории?»
Да, есть режим «не показывать материалы из указанных категорий». Например, исключить «Архив» или «Служебное».

«Это влияет на скорость?»
Нет. Nested sets — быстрый способ выборки. Один запрос по индексу lft/rgt вместо рекурсивного обхода. На 500+ категорий работает мгновенно.

Обсудим работу с вложенными категориями

Настроим модуль под структуру вашего сайта. Проверим на реальных материалах. Бесплатный аудит — оценим проект без обязательств.

Обсудим задачу →
8 (950) 442-49-00 reemake@inbox.ru Max Messenger Max

с 8:00 до 20:00 (МСК)

г. Пермь