![]() |
|
||||||||||
|
|||||
|
День добрый, может кто нибудь подскажет, есть динамическое меню (генерится список фильмов и выводится пользователю, тот скачивает что надобно), список генерится пхп скриптом, структура такова: ему даются папки, он по ним бегает и если находит фильмы то записывает их, если находится папки то тоже записывает и бегает еще по ним в поисках других фильмов (рекурсия обычная). Степень вложенности теоретически может быть любая (3-4 уровней хотя бы есть). Просто вывести список всего этого добра на экран я могу, но он слишком большой. Что быкак то облагородить это дело решил сделать возможность соврачивать \ разворачивать содержимое этих самых папок, тут и возникла наибольшая проблема — немогу логически понять как это организовать. Будь структура линейная было бы все просто, а как быть с разными уровнями сложности немогу придумать.
То есть цель такова, нажимаем на папку и елементы что ниже нее (на том же уровне) смещаются вниз, нажали еще раз — все вернулось обратно). Непонятно как именно достучать до элементов что находятся на другом уровне вложенности.(( З.Ы. думал все выходные а тут пока писал пришла еще одна мысль, опускаем все елементы что находятся ниже текущего на данном уровне вложенности, потом идем на уровень выше и делаем так же, и так пока не дойдет до рута. но может кто знает схемы получше? Исходник под 9тку в аттаче если кому интересно. |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 669
|
Я бы воспользовался компонентом Tree, по идеи его вы и пытаетесь реализовать. К тому же имеется возможность присваивания хмл-данных в качестве дата-провайдера, удобно.
|
|
|||||
|
Kuruki все упирается в "дизайн", сомневаюсь что с его помощью можно реализовать что мне надо (хотя могу и ошибаться с компонентами дел не имел, но отзывы о них не лестные((), опять же просто интересен алгоритм.
Всеравно спасибо, посмотрю его. Добавлено через 15 часов 48 минут К модерам: Можно я тут буду еще вопросы по этому задавать а не создавать отдельные темы? Вопрос по оптимизации, как лучше сделать перебор елементов в этой иерархии, мне в голову приходят 3 варианта: 1. for .. in, но читал что долго, так тчо скорее что то из двух других. 2. заносим все елементы в один многомерный массив и дальше его перебираем опираясь на уникальные идентификатор обьекта 3. заносим все содержимое папки в его св-во массив и дальше уже работает с этими св-вами. Как лучше сделать можете подсказать? |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:56. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|