Последняя версия 1.0.11-pl от 15.02.2019
[English]
Может быть установлен из официального репозитария MODx http://modx.com/extras/package/fileattach.
Модуль для загрузки файлов к ресурсам в менеджере сайта и во frontend
К каждому файлу можно указывать описание, режим приватности (доступность по прямой ссылке), количество скачиваний, контрольную сумму SHA1.
Файлы доступны для скачивания по прямой ссылке. Для "закрытых" файлов генерируется длинное название, не соответствующее изначальному имени файла. У "открытых" файлов имя сохраняется.
Произвольный порядок файлов в списке можно задать перетягиванием записей в редакторе на нужное место.
Поддерживает работу в СУБД MySQL и SQLSrv DB.
Минимальная версия PHP v5.3.
Разработка компонента ведется на странице: https://gitlab.com/13hakta/FileAttach
Обратите внимание: дополнение несовместимо с плагинами, которые изменяют название файлов при загрузке, такими как fileTranslit.
Редактор в административном режиме
Редактирование файла в административном режиме
Список файлов в фронтенде сайта
Как выглядит настройка доступа для скачивания
Позволяет задать произвольное оформление для вывода записей файлов.
Название | Описание |
---|---|
description | Описание |
docid | Идентификатор ресурса, для которого загружен файл |
download | Количество скачиваний |
fid | Уникальный строковой идентификатор файла |
hash | Контрольная сумма SHA1 |
ext | Расширение файла в нижнем регистре |
id | Идентификатор файла |
internal_name | Внутреннее имя. Содержит имя файла в файловой системе |
name | Имя файла. Совпадает с internal_name когда private=нет |
path | Путь внутри медиа источника |
private | Признак закрытости файла |
rank | Порядок в списке. Можно использовать для сортировки |
size | Размер файла в байтах |
tag | Метка |
timestamp | Метка времени в unix timestamp |
Изначальное содержание чанка:
<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>`]]
[{+ext:notempty=`<br/><small>Type: <img src="/img/[[+ext]].png" /></small>`]]
Замените в тексте "[{" на "[ [".
Выводит список файлов.
Название | Значение по умолчанию | Описание |
---|---|---|
&ext | Фильтр по расширению файла. Работает при включении showExt | |
&groups | Ограничение доступа для просмотра списка файлов указанным группам пользователей. Перечисление через запятую | |
&limit | 0 | Ограничение вывода файлов на странице. Если не указано, то вывод всех прикрепленных файлов |
&totalVar | total | Название плейсхолдера для вывода количества записей. Работает при непустом &limit |
&offset | 0 | Количество пропущенных записей в выводе |
&makeURL | false | Создавать ссылку для скачивания файла |
&outputSeparator | Разделитель вывода записей | |
&privateUrl | false | Форсировать использование обработчик скачиваний, что позволяет считать скачивания даже для открытых файлов |
&resource | 0 | Показать файлы для документа с номером id, если не указано, то вывод только для текущего документа |
&showHASH | false | Получить хэш файла |
&showExt | false | Извлекать расширение файла |
&showSize | false | Получать размер файла |
&showTime | false | Получать дату изменения файла |
&sortBy | name | Сортировать по полю |
&sortDir | ASC | Направление сортировки |
&toPlaceholder | false | Сохранять результат в плейсхолдер, вместо прямого вывода на странице |
&tag | Фильтр по метке | |
&tpl | FileAttachTpl | Чанк оформления каждого ряда файлов |
&inline | false | Создавать ссылки для получения потока содержимого файла, вместо скачивания |
Выводит адрес вложенного файла, который позволяет получить содержимое файла (но не скачать). Выбор файлов только из приложенных к текущему документу.
Можно использовать для встраивания изображений из вложенных файлов.
Название | Значение по умолчанию | Описание |
---|---|---|
&fid | Идентификатор вложенного файла | |
&groups | Ограничение доступа для просмотра списка файлов указанным группам пользователей. Перечисление через запятую |
Методы
Название | Описание | Параметры |
---|---|---|
generateName | Сгенерировать новое имя файла | length (int) = 32 |
getFullPath | Получить полный путь к файлу | |
getPath | Получить путь к файлу относительно корня медиа источника | |
getSize | Получить размер файла | |
getUrl | Получить ссылку на файл | |
rename | Переименовать файл | name (str) |
sanitizeName | Отфильтровать недопустимые комбинации символов в имени файла | name (str) |
setPrivate | Установить режим приватности | private (bool) |
Название | Значение по умолчанию | Описание |
---|---|---|
calchash | false | Вычислять контрольную сумму SHA1 при загрузке файла |
download | true | Считать количество скачиваний |
files_path | Путь | Путь файла относительно корня медиа источника |
mediasource | 1 | Идентификатор медиа источника |
private | false | Делать файл закрытым при загрузке |
put_docid | false | Размещать файл в подкаталоге ресурса |
templates | Список шаблонов документов, в которых будет активирован модуль. Перечисление через запятую | |
user_folders | false | Размещать файл в подкаталоге пользователя |
translit | false | Транслитерировать имена загружаемых файлов. Необходима настройка дополнения через системные настройки в разделе "friendly urls" |
Название | Аргументы |
---|---|
faOnRemove |
id - номер объекта в таблице, |
faOnUpload |
id - идентификатор ресурса |
faOnUploadItem |
id - идентификатор ресурса, |
Закрытые файлы скачиваются через коннектор, что позволяет скрыть прямую ссылку на файл и произвести подсчет количества скачиваний. Можно скачивать открытые файлы через коннектор, указав в вызове сниппета &privateUrl=`1`, при этом коннектор сделает перенаправление на прямую ссылку.
Ссылка на коннектор имеет вид: MODX_ASSETS_URL/components/fileattach/connector.php?action=web/download&ctx=web&fid=file_id
, где file_id - строковой идентификатор файла в таблице БД.
В сниппете создается ссылка с указанием контекста для текущего ресурса.
Список разрешений
Название | Описание |
---|---|
fileattach.doclist | Управление файлами в документе |
fileattach.download | Возможность скачивать файлы |
fileattach.totallist | Управление всеми файлами |
fileattach.remove | Удаление файлов во frontend |
fileattach.list | Получение списка файлов во frontend |
Для загрузки файлов пользователю надо включить доступ для:
Для удаления файлов во frontend разрешено удалять свои файлы, прикрепленные к соответствующему ресурсу. Для возможности удаления не только своих файлов надо включить разрешение "fileattach.totallist".
Для скачивания надо разрешить «fileattach.download».
Есть две политики, которыми можно разрешить скачивание, первая это «File Attach Download» предназначенная только для скачивания, и «File Attach Frontend» для разрешения работы во frontend.
Назначьте одну из них для группы пользователя в контексте web.
При установке модуля создается набор политик:
Название | Описание |
---|---|
File Attach | Полный доступ |
File Attach Download | Только скачивание |
File Attach Frontend | Разрешает использовать процессоры для управления файлами во frontend |
Обратите внимание на то, что в модуле нет возможности ограничивать доступ к файлам отдельных ресурсов, отдельным файлам. В модуле реализован способ сокрытия прямого пути к файлу, ограничение на скачивание через политику задается для всех файлов.
Доставьте скобки для вызова кода.
В простом случае можно просто вызвать сниппет:
[FileAttach]
Чтобы для всех файлов считалось количество скачиваний надо чтобы они открывались через приватную ссылку:
[FileAttach? &privateUrl=`1`]
Сортировка по порядку, заданному вручную в менеджере:
[FileAttach? &sortBy=`rank`]
Ограничение на доступ к списку только пользователям из группы Editors:
[FileAttach? &groups=`Editors`]
Фильтр по расширению:
[FileAttach? &showExt=`1` &ext=`zip`]
Набор вложенных изображений в слайдере:
[FileAttach? &inline=`1` &ext=`jpg`]
Для загрузки используется менеджер очереди загрузки, загрузка через AJAX с помощью FormData.
Смотрите во вложении
faupm-1071.zip 5406
Size: 9240 bytes
SHA1: a53bf121ed56b18ea6b3122541f498ebc4cb8cdd
Метки: