Файловый архив в блоге с авторизацией и разными уровнями доступа


Я неоднократно задумывался над одним интересным и актуальным вопросом: как в блоге правильно организовать страницу с файловым архивом, наподобие ftp сервера или листинга директорий в апаче, где каждая папка представляет собой определённый раздел. Например, картинки, музыка, видео, или скрипты, ночные сборки и т.д. Но придумать кое-что было можно, а вот с юзабельной навигацией как-то совсем туго.

Проблему решила одна замечательная разработка под названием: Ajax File Browser.
По названию можно догадаться, что это файловый "браузер" на аяксе (технология AJAX позволяет перемещаться по элементам страницы без её перезагрузки).

Живого демо не будет, покажу только на скриншотах.

Возможности.


На скиншоте мой тестовый блог, куда я поместил через iframe этот ajax-"браузер". Главная, приветственная, страница afb очень гибко настраивается, даже позволяет редактировать область head для подключения метатегов и скриптов, причём всё это делается из админки.

Базовые возможности afb:
создание и управление пользователями (регистрация отсутствует, юзеров создаёт только админ):


создание директорий (разделов) и назначение прав на каждую директорию для каждого пользователя:


поддержка прав анонимных пользователей (гостей)
управление файлами в соответствии с правами пользователей: только 
просмотр директории, download, upload, модерация (удаление, переименование файлов)

просмотр статитистики по загрузкам:


Надо сказать, что разработчики уделили много внимания статистике. Здесь есть и Top50 скачек, и рейтинг активности закачек, авторизаций.
Поэтому, если хотите в кратчайшие сроки сообразить платный доступ к контенту на своём блоге, afb для этого - выгодное решение.

Лог активности пользователя
навигация по разделам без перезагрузки страницы, определение типов файлов, их размер и предпросмотр (preview):


По умолчанию движок не позволяет загружать файлы больше 8mb, обойти это ограничение можно где-то в конфиге, но я рекомендую загружать крупные файлы через FileZilla прямо на хостинг.

изменение отображения содержимого раздела:


То есть классические режимы просмотра любого файл-менеджера: список, крупные значки, мелкие значки, мини-картинки.

чёрный список для запрета закачки (upload) типов файлов (по названиям и расширениям) и папок:


Без этой опции upload очень небезопасен. Обязательно продумайте, какие фалы по имени и расширению нужно запретить, чтобы злоумышленники не взломали админку и не наделали прочих гадостей.Для обеспечения повышенной безопасности для папок afb на хостинге рекомендую погуглить на тему "настройка .htaccess для apache".

поддержка тем
-- как вы наверное заметили, в админке скин более светлого тона


В комплекте тем - 3 штуки (четвёртую я добавил свою). Любая из них довольно легко правится через файл style.css.php. Просто поменяйте цвета на более подходящие.
Обратите внимание, что в этой же вкладке Settings настраивается время (часовой пояс), название страницы и ссылка, которую можно заметить в футере.

Установка.
Официальная страница и форум afb давно в дауне. Скачать архив со скриптами нужно с sourceforge.

После этого распаковываете архив, переименовываете папку из afb-3-beta-2007-08-28 в afb и  при помощи ftp-клиента заливаете на свой хостинг (я для демо использовал бесплатный хостингер).
Затем переходите по ссылке http://ваш-хостинг-трололо/afb и следуете шагам мастера установки.

Пошагово:


Во втором окне заполняете поля для:
  1. названия сервера базы данных
  2. имени созданной базы
  3. имени пользователя созданной базы
  4. пароля созданной базы
  5. имени будущего админа afb
  6. пароля и подтверждения пароля будущего админа afb

 Эти данные, кроме двух последних строк, перечисленных мной, берутся из админ-панели вашего хостинга. Разумеется, что база к этому моменту должна быть создана из той же админ-панели.

Название файлов и категорий нужно писать на английском. Что касается русификации, её можно провести самостоятельно, взяв за образец или исправив файл /_includes/lang/lang.en.php.

Подключение к блогу.
Blogger "не дружит с" и не поддерживает php, поэтому подключать будем через iframe, тем более, что резиновый шаблон afb к этому располагает.

Для этого заводим в блоге отдельную страницу и делаем фрейм:
<iframe allowtransparency="true" frameborder="0" scrolling="no" src="http://ваш-хостинг-трололо/afb/" style="border: medium none; height: 650px; width: 100%;"></iframe>
Где:
width: 100% означает динамическую ширину фрейма, т.е. будет занимать всё доступное пространство по оси x в теле сообщения. Можно поставить определённый размер в пикселях.
height: 650px - высота в "шессотписяд" пикселей, примерное значение, подбирается индивидуально опытным путём.

1 комментарий: