У меня есть эта функциональность в моей заказной CMS.
У меня есть одна функция PHP, которая просто запрашивает базу данных и использует рекурсию. Первый параметр, переданный этой функции, является родительским, по умолчанию 0.
Поэтому, когда функция вызывается, она запрашивает базу данных для всех страниц с родительским значением 0.
При циклическом просмотре результирующего набора функция проверяет, есть ли какие-либо страницы с родительским значением идентификатора этой страницы. Если это так, он запускает новый список и извлекает записи, которые являются дочерними для этой конкретной страницы.
Вышеприведенное устанавливает рекурсивную функцию, которая выводит многоуровневый <ul>
. Затем я использую плагин jQuery для преобразования этого списка в дерево файлов со значками +
/ -
для переключения ветвей и значков типов файлов.
Надеюсь, это поможет.