Древовидная навигация по сайту

Долго я искал способ построения древовидной навигации для сайта. Я не спорю, возможно этот велосипед уже не раз изобретался. Но дерево без ограничения в уровнях — действительно являлось проблеммой для меня.

Ранее я делал нечто подобное на SQL. Это была хранимая процедура на сервере MySQL, при вызове которой мы получали HTML код навигации. Но в коде были свои недостатки, которые я от проекта к проекту решал путем прямого вмешательства.

В этом же коде, написанном на php очень легко реализовано дерево объектов.

В таблице данные я храню в виде:

  • id int auto_increment,
  • parent int,
  • title varchar

Первым делом я загоняю в массив id активного объекта и всех родительских уровней. Делаю это функцией array_unshift($id, $parents_array) для того, чтобы нулевой уровень (родитель объектов первого уровня всегда равен нулю, т.к. у объектов первого уровня нет родителя) был внесен в $parents_array[0], а $id активного элемента был последним в списке ($id активного элемента я вношу в данный массив, потому, что у данного объекта тоже могут оказаться элементы-потомки, которые тоже необходимо выводить).

Добавить комментарий

Ваш e-mail не будет опубликован.