Нужна помощь по выводу древовидного меню в Smarty

F
На сайте с 03.10.2006
Offline
160
1627

У меня на сайте выводится дерево разделов библиотеки. Сам вывод я организовал, всё работает. Но вот сделать вывод в виде дерева каталогов как в explorer`е у меня не получается. Мне нужен вывод дерева как тут: http://www.destroydrop.com/javascripts/tree/v1/ . То есть нужно чтобы около каждого раздела были крестики и были полосочки связывающие разделы одного уровня. Кто-то может это реализовать в Smarty? Все данные дам. Естественно не бесплатно.

Shtogrin
На сайте с 02.11.2006
Offline
95
#1

furamag, вы хотите использовать указанный javascript и связать его с Smarty? Или нарисовать такое же, но статическое дерево.

www.shtogrin.com (http://www.shtogrin.com/). Канцтовары (http://www.invit.com.ua/). 1С Бухгалтерия (http://account.kiev.ua/).
F
На сайте с 03.10.2006
Offline
160
#2

Я хочу сделать его без javascript, чтобы ссылки индексировались ПС. Сейчас у меня меню выводится как описано тут: http://www.php.com.ua/ru/tips/smarty_tree.htm . У меня такое ощущение, что эта задача не реализуема. Я месяца два назад пытался сделать но не получилось. Сейчас опять вернулся к этой проблеме.

Я хочу, чтобы оно выглядело также как тут - http://www.destroydrop.com/javascripts/tree/v1/ - но без js.

F
На сайте с 03.10.2006
Offline
160
#3

В общем, в mysql дерево разделов представлено таблицей rzd (поля: id, parent, title). Взяв данные из этой таблицы нужно построить дерево разделов, такое как было указано по ссылке. При этом его нужно вывести с помощью Смарти и не используя JS. JS можно использовать, но при этом сами ссылки должны быть видны ПС.

Shtogrin
На сайте с 02.11.2006
Offline
95
#4

Вы конечно понимаете, что такое дерево не должно содержать очень много пунктов (до 100). И в вашей ссылке есть еще одно ограничение - названия пунктов не должны переносится на другую строку, иначе все эти полосочки сдвинутся. Можно прикрутить существующий скрипт, например так

<div id="tree" style='display:none'>
<a nodeId='X' parentNodeId='Y' href="/path">Path</a>
....
</div>
<div id="treejs"></div>
<script>//onload
1) взять все ссылки с div id="tree" (getElementsByTagName?)
2) прочитать атрибуты nodeId, parentNodeId
3) создать массив Tree
4) нарисовать дерево createTree(Tree, 0, 4);
//в createTree document.write заменить на innerHTML в div id="treejs"
</script>

Плюсы - у вас будут открываться и закрываться узлы дерева, ссылки представлены линейным списком (в том же сматри даже без рекурсий)

Минусы - может не понравиться кому-то style='display:none'

F
На сайте с 03.10.2006
Offline
160
#5

Да, про минусы моей реализации я знаю. Просто тогда, когда делал не смог придумать что-то лучше.

В чём минус style='display:none' ? Как по мне это вполне приемлемо.

Вы сможете реализовать поставленную задачу, так, чтобы всё выглядело в конце как по указанной ссылке (http://www.destroydrop.com/javascripts/tree/v1/)? Если да, то отпишите в личку Ваши условия.

P.S. Я, в принципе, и сам это могу сделать, но сейчас слишком много других проблем. А эта задача осталась не решённой.

F
На сайте с 03.10.2006
Offline
160
#6

Большое спасибо Shtogrin за оказанную помощь! Без него бы не справился.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий