Skip to content
  1. Компоненты
  2. FileAttach

FileAttach

Модуль для загрузки файлов к ресурсам в менеджере сайта

  • Поддерживается ограничение доступа к загрузке и скачиванию политиками;
  • Есть административное управление всеми загруженными файлами на сайте;
  • Для обзора загруженных файлов есть медиа источник, он доступен при глобальной регистрации пакета во время установки;
  • Список файлов хранится в таблице

К каждому файлу можно указывать описание, режим приватности (доступность по прямой ссылке), количество скачиваний, контрольную сумму SHA1.

Файлы доступны для скачивания по прямой ссылке. Для "закрытых" файлов генерируется длинное название, не соответствующее изначальному имени файла. У "открытых" файлов имя сохраняется.

Произвольный порядок файлов в списке можно задать перетягиванием записей в редакторе на нужное место.

Поддерживает работу в СУБД MySQL и SQLSrv DB.

Разработка компонента ведется на странице: https://github.com/13hakta/FileAttach

Чанк FileAttachTpl

Позволяет задать произвольное оформление для вывода записей файлов.

НазваниеОписание
&descriptionОписание
&docidИдентификатор ресурса, для которого загружен файл
&downloadКоличество скачиваний
&hashКонтрольная сумма SHA1
&idИдентификатор файла
&internal_nameВнутреннее имя. Содержит имя файла в файловой системе
&nameИмя файла. Совпадает с internal_name когда private=нет
&pathПуть внутри медиа источника
&privateПризнак закрытости файла
&rankПорядок в списке. Можно использовать для сортировки
&sizeРазмер файла в байтах

Изначальное содержание чанка:

modx
<p>[[+description:notempty=`<strong>[[+description]]</strong><br/>`]]
<a href="[[+url]]">[[+name]]</a> <span class="badge">[[+download]]</span>
[[+size:notempty=`<br/><small>Size: [[+size]] bytes</small>`]]
[[+hash:notempty=`<br/><small>SHA1: [[+hash]]</small>`]]</p>

Сниппет FileAttach

Выводит список файлов.

НазваниеЗначение по умолчаниюОписание
&limit0Ограничение вывода файлов на странице. Если не указано, то вывод всех прикрепленных файлов
&makeURLfalseСоздавать ссылку для скачивания файла
&outputSeparatorРазделитель вывода записей
&privateUrlfalseФорсировать использование обработчик скачиваний, что позволяет считать скачивания даже для открытых файлов
&resource0Показать файлы для документа с номером id, если не указано, то вывод только для текущего документа
&showSizefalseПолучать размер файла
&sortBynameСортировать по полю
&sortDirASCНаправление сортировки
&toPlaceholderfalseСохранять результат в плейсхолдер, вместо прямого вывода на странице
&tplFileAttachTplЧанк оформления каждого ряда файлов

Класс FileItem

Методы

НазваниеОписаниеПараметры
generateNameСгенерировать новое имя файлаlength (int) = 32
getFullPathПолучить полный путь к файлу
getPathПолучить путь к файлу относительно корня медиа источника
getSizeПолучить размер файла
getUrlПолучить ссылку на файл
renameПереименовать файлname (str)
sanitizeNameОтфильтровать недопустимые комбинации символов в имени файлаname (str)
setPrivateУстановить режим приватностиprivate (bool)

Системные настройки

НазваниеЗначение по умолчаниюОписание
calchashfalseВычислять контрольную сумму SHA1 при загрузке файла
downloadtrueСчитать количество скачиваний
files_pathПутьПуть файла относительно корня медиа источника. Завершается на "/".
mediasource1Идентификатор медиа источника
privatefalseДелать файл закрытым при загрузке
put_docidfalseРазмещать файл в подкаталоге ресурса
templatesСписок шаблонов документов, в которых будет активирован модуль. Перечисление через запятую
user_foldersfalseРазмещать файл в подкаталоге пользователя

Коннектор для скачивания файлов

Закрытые файлы скачиваются через коннектор, что позволяет скрыть прямую ссылку на файл и произвести подсчет количества скачиваний. Можно скачивать открытые файлы через коннектор, указав в вызове сниппета &privateUrl=1, при этом коннектор сделает перенаправление на прямую ссылку.

Ссылка на коннектор имеет вид: MODX_ASSETS_URL/components/fileattach/connector.php?action=web/download&ctx=web&id=file_id, где file_id - порядковый номер файла в таблице БД.

Политики доступа

Список разрешений

НазваниеОписание
fileattach.doclistУправление файлами в документе
fileattach.downloadВозможность скачивать файлы
fileattach.totallistУправление всеми файлами

Пример использования

В простом случае можно просто вызвать сниппет:

modx
[[FileAttach]]

Чтобы для всех файлов считалось количество скачиваний надо чтобы они открывались через приватную ссылку:

modx
[[FileAttach? &privateUrl=`1`]]

Сортировка по порядку, заданному вручную:

modx
[[FileAttach? &sortby=`rank`]]

Снимки экрана

  • Список файлов в менеджере

    Список файлов в менеджере

  • Дерево медиа источника

    Дерево медиа источника

  • Редактирование файла

    Редактирование файла

  • Редактирование файла в административном режиме

    Редактирование файла в административном режиме

  • Список файлов в фронтенде сайта

    Список файлов в фронтенде сайта

  • Окно загрузки

    Окно загрузки