Автоматический сбор дерева
вложенных категорий через 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+ категорий работает мгновенно.
Обсудим работу с вложенными категориями
Настроим модуль под структуру вашего сайта. Проверим на реальных материалах. Бесплатный аудит — оценим проект без обязательств.
Обсудим задачу →




Messenger Max