Форумчанин gorunov предложил достаточно простой и эффективный способ организации файлового архива на Joomla средствами веб-сервера Apache, без использования сторонних расширений. Помимо того, что данное решение очень просто в реализации, оно значительно меньше нагружает сервер, нежели сторонние компоненты для организации файловых архивов.
Создадим две вложенные директории /files/files в корне сайта. Если вы пожелаете использовать другие имена директорий, то вам необходимо будет внести соответствующие правки в дальнейшем.
В директорию /files поместим файл index.php следующего содержания:
Это необходимо сделать для того, чтобы пользователь, путешествую по директориям вашего репозитория, не смог выйти за его пределы.
В директорию files/files поместим файл .htaccess с настройками:
Команда RemoveType application/x-httpd-php php php3 запрещает запускать файлы *.php на выполнение в пределах вашего репозитория. Это полезно сделать, если вы будете давать доступ на размещение файлов в вашем репозитории третим лицам. В этом режиме php файлы не запускаются, а скачиваются как обычные файлы.
Команда Options Indexes FollowSymLinks MultiViews говорит серверу APACHE, что в данной директории разрешено сканирование содержимого. Это является ключевой настройкой, которая позволяет организовать репозиторий данного типа в принципе.
Команда IndexOptions FancyIndexing ScanHTMLTitles позволяет выводить заголовки html-файлов рядом с их именами. Эта опция является полезна, если в вашем репозитории будут хранится HTML-файлы.
Команды ReadmeName .footer.html, HeaderName .header.html назначают файлы, содержимое которых будет автоматически подставляться в начало и конец страницы репозитории и служат для достижения разнообразных оформительских эффектов.
Теперь создайте файлы .header.html, .footer.html и поместите их в каждую папку в пределах вашего репозитория. Если вы хотите, чтобы ваш репозиторий унаследовал стили вашего шаблона, то в файле .header.html нужно сделать подключение CSS-стилей, например так:
(В моем случае идет импорт стилей с шаблона "akogreenportal")
Здесь существует один важный момент. В случае когда файлы заголовков не определены, APACHE автоматически создает заголовки с путём до текущей директории, например Index of /files/files . Это очень полезная информация, так как показывает координаты директории, которую вы в данный момент просматриваете. Если вы создаете свой заголовок (файл .header.html), то в нём будет полезно отразить эту информацию, прописав в каждом файле .header.html, каждой директории, путь до данной директории.
Использование файлов .header.html и .footer.html позволяет сделать из репозитория полноценную HTML-страницу, которую можно гармонично вписать в дизайн вашего сайта. Вот пример репозитория-галереи (в качестве файлов выступают рисунки): [ссылка]
Осталось самое важное - интегрировать наш репозиторий в JOOMLA. Для этого в админке JOOMLA войдите в окно создания нового элемента меню и выберите тип меню Wrapper. В открывшемся окне настроек впишите:
Name: - Файлы (название пункта меню)
Wrapper Link: - /files/files (путь до вашей директории с файлами)
Auto Height; - yes (активации данной опции является полезной, так как автоматически регулирует высоту окна и избавляет от неэстетической вертикальной полосы прокрутки)
В остальных опциях можно оставить значения по умолчанию.
Все, репозитарий готов. Он будет выглядеть примерно как у меня: [ссылка]
Создание закрытой директории
Очень часто вам может понадобиться закрыть некоторые директории от общего доступа. Это также можно сделать средствами Apache: В директорию, которую вы хотите закрыть (в моём случае, это директория private) поместите файл .htacces в котором необходимо прописать "секьюрные" настройки, например:
Здесь самой важной является опция AuthUserFile, в которой прописывется путь до файла passwd.file. В файле passwd.file - хранятся данные авторизации: имя пользователя и хэш-образ пароля.
Файл passwd.file создается утилитой htpasswd, которая входит в состав сервера APACHE. Более подробно об этом можно узнать [здесь].
P.S. Если в вашем ропозитории будут отсутствовать иконки файлов, то распакуйте и поместите папку icons в корень вашего сайта [ссылка]
Joomla!® CMS — пожалуй, лучшая система управления контентом с открытым исходным кодом
Joomla! — это больше, чем просто программное обеспечение, это люди, включающие разработчиков, дизайнеров, системных администраторов, переводчиков, копирайтеров, и, что самое главное — простых пользователей.