Файловый менеджер. Сильно не ругайте.
Прошу извинить, может не туда и не так влез. Имею домашний сервер под Apache, хочу http-ишный файловый менеджер. Для чего? Отдыхаю в Таиланде, мучаюсь на работе, понадобился файл с домашнего сервера, ну вот, нате вам! Ладно, это лирика. Менеджер хочу в стиле Win7, правую часть наваял (Perl+JS), верхнюю часть (с маршрутом) тоже вроде по моей скромной потенции, а вот с левой частью - беда... Никак не могу сообразить, КАК по нажатию этих треугольничков в готовой страницу вставлять новые элементы, а по закрытию - убирать элементы. Или это в JS+Perl слабо осуществимо? Коллега кричит - "Руби!!!", а я не понимаю - на хрена?
|
Кроме Javascript'а здесь ничего, во-первых, не нужно, а во-вторых, не поможет. Товарища с криками о руби можно послать лесом.
Схема такая: можете сразу выводить все элементы на страницу, скрыв некоторые (те, что изначально должны быть скрытыми), а потом показывать их по нажатию на нужные элементы. |
Схема такая: можете сразу выводить все элементы на страницу, скрыв некоторые (те, что изначально должны быть скрытыми), а потом показывать их по нажатию на нужные элементы.[/quote]
Спасибо, не пойдет. Это надо зачитать все дерево каталогов на диске 2Тб. Сколько времени будет работать такой скрипт? |
В таком случае можно по клику не показывать элементы, а вставлять их в документ, предварительно подгрузив их с помощью AJAX'а.
|
Цитата:
|
Спасибо.
Ну а динамически в нужное место HTML (<table>), зачитав perl-ом содержимое нужного каталога, никак не воткнуть? Темновато это для меня, простите... Или же только заново переформировывать страницу? Вроде возможно все хранить в hidden полях, но уж больно муторно получается. Нужно учитывать степень вложенности (для нужного смещения по горизонтали), флажок открытости/закрытости каталога и т.д. Мне кажется, что читать зараз ВСЁ дерево каталогов - моветон. Простите за надоедливость, все предложенное отвергаю не со зла. |
Цитата:
Если страшит само слово - не бойтесь: на самом деле это просто запрос из javascript к серверу(к тому самому perl скрипту) и получение от него ответа(который можно вставить куда надо).) Там даже пример похожий есть. |
Месяц назад написал двупанельный файловый менеджер. ИМХО, лучше однопанельного. Дерево делать не стал, нафиг. Оно не очень удобно, но хозяин - барин.
Я так понял проблема в написании дерева каталогов? Цитата:
На сервере функция простая, читаем каталог с путем присланным из js AJAX.(Путь + выбранный каталог) На клиенте строим дерево, достраивая один уровень по клику на + (плюсике), по клику на - (минус) убираем в display:none то что отстроили. Эдакое кэширование получиться, если есть дети и display:none, то запрос на сервер не делаем, а делаем display:block -> показ. + |
+ /
1. клик по / 2. ajax запрос на сервер -> на сервере perl-ом читаем список корня и отдаем клиенту 3. клиент получает список и строит детей, затем меняет у родителя + на - - / + Users + Document And Settings + Program Files Пример с jquery $.ajax({ type: "POST", url: "dir.cgi", data: { path: "/" }, dataType: "json" }).done(function( list ) { // отстраиваем детей, где list массив объектов [ { "name": "Users", "type": "dir"}, { "name": "ico.jpg", "type": "file"} ] while (list) { } }); |
Спасибо, люди добрые. Два дня читал, начало доходить, о чем вы говорите. Начну пробовать.
|
Часовой пояс GMT +3, время: 09:08. |