[FileAttach] Загрузка файлов на сайт во frontend. Modx fileattach
FileAttach / Компоненты / docs.modx.pro
Модуль для загрузки файлов к ресурсам в менеджере сайта
- Поддерживается ограничение доступа к загрузке и скачиванию политиками;
- Есть административное управление всеми загруженными файлами на сайте;
- Для обзора загруженных файлов есть медиа источник, он доступен при глобальной регистрации пакета во время установки;
- Список файлов хранится в таблице
К каждому файлу можно указывать описание, режим приватности (доступность по прямой ссылке), количество скачиваний, контрольную сумму 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 | Размер файла в байтах |
Изначальное содержание чанка:
<p>[[+description:notempty=`<strong>[[+description]]</strong><br/>`]] <a href="[[+url]]">[[+name]]</a> <span>[[+download]]</span> [[+size:notempty=`<br/><small>Size: [[+size]] bytes</small>`]] [[+hash:notempty=`<br/><small>SHA1: [[+hash]]</small>`]]</p>
Сниппет FileAttach
Выводит список файлов.
&limit | 0 | Ограничение вывода файлов на странице. Если не указано, то вывод всех прикрепленных файлов |
&makeURL | false | Создавать ссылку для скачивания файла |
&outputSeparator | Разделитель вывода записей | |
&privateUrl | false | Форсировать использование обработчик скачиваний, что позволяет считать скачивания даже для открытых файлов |
&resource | 0 | Показать файлы для документа с номером id, если не указано, то вывод только для текущего документа |
&showSize | false | Получать размер файла |
&sortBy | name | Сортировать по полю |
&sortDir | ASC | Направление сортировки |
&toPlaceholder | false | Сохранять результат в плейсхолдер, вместо прямого вывода на странице |
&tpl | FileAttachTpl | Чанк оформления каждого ряда файлов |
Класс FileItem
Методы
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 | Размещать файл в подкаталоге пользователя |
Коннектор для скачивания файлов
Закрытые файлы скачиваются через коннектор, что позволяет скрыть прямую ссылку на файл и произвести подсчет количества скачиваний. Можно скачивать открытые файлы через коннектор, указав в вызове сниппета &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 | Управление всеми файлами |
Пример использования
В простом случае можно просто вызвать сниппет:
[[FileAttach]]Чтобы для всех файлов считалось количество скачиваний надо чтобы они открывались через приватную ссылку:
[[FileAttach? &privateUrl=`1`]]Сортировка по порядку, заданному вручную:
[[FileAttach? &sortby=`rank`]]Снимки экрана
docs.modx.pro
Attaching files to resources: FileAttach for MODx Revolution
- Главная
- Блог
- Attaching files to resources: FileAttach for MODx Revolution
Latest version 1.0.10-pl2 from 10.02.2018
[Russian]
May be installed with Package Manager from official MODx repository http://modx.com/extras/package/fileattach.
Allows to upload files to resources in site manager. File list is held in a table. For every file it could be set description, privacy mode (accessibility by direct link), download count, SHA1 checksum.
Custom order may be set by enabling order column in editor and dragging selected rows.
Supports MySQL and SQLSrv DB schemes.
Support download range, download continuation, paginated output.
Minimal version PHP v5.3.
Component development is here: https://gitlab.com/13hakta/FileAttach
Screenshots
Editor in admin mode
File list in manager
Media source tree
File editor
File editor in admin mode
File list in frontend
Upload dialog window
Chunk FileAttachTpl
Allows to customize view of file item output.
name | File name. When private=false internal_name equal to name |
internal_name | Internal name. File name in file system |
hash | SHA1 checksum |
description | Description |
docid | Resource ID, where file uploaded |
ext | File extension, lowercased |
id | File ID |
path | Path in media source |
private | Privacy flag |
download | Download count |
size | File size in bytes |
rank | Order in file list. May be used for custom sorting |
Initial chunk content:
<p>[{+description:notempty=`<strong>[[+description]]</strong><br/>`]]<a href="[[+url]]">[[+name]]</a> <span>[[+download]]</span>[{+size:notempty=`<br/><small>Size: [[+size]] bytes</small>`]][{+hash:notempty=`<br/><small>SHA1: [[+hash]]</small>`]]</p>
Snippet FileAttach
Outputs file list.
&limit | The number of files to limit per page. Show all items if not set | 0 |
&totalVar | Name of placeholder to output count of rows | total |
&offset | Offset in output | 0 |
&makeURL | Generate URL for file download | false |
&outputSeparator | A string to separate each row with. | |
&privateUrl | Force private url. Allows to count downloads even with open files | false |
&resource | Show files for resource id | 0 |
&showExt | Extract file extension | false |
&showSize | Retrieve file size | false |
&sortBy | The field to sort by. | name |
&sortDir | The direction to sort by. | ASC |
&toPlaceholder | If set, will output the content to the placeholder specified in this property, rather than outputting the content directly. | false |
&tpl | The chunk to use for each row of files. | FileAttachTpl |
&groups | Limit file list displaying to user groups. Delemitter is comma. |
Class FileItem
Methods:
getPath | Get file path relatively to media source root | |
getFullPath | Get full file path | |
getUrl | Get file link | |
generateName | Generate new filename | length (int) = 32 |
sanitizeName | Filter unacceptable symbol combination in file name | name (str) |
rename | Rename file | name (str) |
setPrivate | Set privacy mode | private (bool) |
getSize | Get file size |
System options
calchash | false | |
files_path | Path relative to media source root | |
mediasource | Media source ID | 1 |
private | Make file private at upload | false |
put_docid | Upload file in subfolder <ResourceID> / | false |
templates | List of templates to activate module | |
user_folders | Upload file in subfolder <UserID> / | false |
Access policies
Permissions list
fileattach.doclist | Manage files in resource |
fileattach.totallist | Manage all files |
fileattach.download | Permission to download files |
fileattach.remove | Permission to delete files in frontend |
fileattach.list | Listing files in frontend |
To allow user file upload you should enable access:
- Permission "create" in media source
- Permission "file_upload" from AdminTemplate
In frontend by default allowed to remove own files corresponding to resource. For ability to remove not only owned files you should enable permission "fileattach.totallist".
During installation set of policies are created:
File Attach | Full access |
File Attach Download | Only download |
File Attach Frontend | Allows to use processors to manage files in frontend |
Usage example
In simple case just call snippet:
[[FileAttach]]
To force download count it's needed to open files through private link:
[[FileAttach? &privateUrl=`1`]]
Custom sorting:
[[FileAttach? &sortBy=`rank`]]
Example for frontend file managing
Look in attach.
Прикрепленные файлы
faupm-1071.zip 2644 Size: 9240 bytes SHA1: 2b58a4317c5f2f8608f520c36cd21f71b3ecd7f4
Метки: filemodxразработка
Просмотров: 2341 Автор: Admin Опубликовано: 06.02.2015
13hakta.ru
FileAttach: прикрепление файлов к ресурсам для MODx Revolution
- Главная
- Блог
- FileAttach: прикрепление файлов к ресурсам для MODx Revolution
Последняя версия 1.0.10-pl2 от 10.02.2018
[English]
Может быть установлен из официального репозитария MODx http://modx.com/extras/package/fileattach.
Модуль для загрузки файлов к ресурсам в менеджере сайта и во frontend
- Поддерживается ограничение доступа к загрузке и скачиванию политиками;
- Есть административное управление всеми загруженными файлами на сайте;
- Для обзора загруженных файлов есть медиа источник, он доступен при глобальной регистрации пакета во время установки;
- Список файлов хранится в таблице
- Поддерживается докачка файлов
- Постраничный вывод записей
К каждому файлу можно указывать описание, режим приватности (доступность по прямой ссылке), количество скачиваний, контрольную сумму SHA1.
Файлы доступны для скачивания по прямой ссылке. Для "закрытых" файлов генерируется длинное название, не соответствующее изначальному имени файла. У "открытых" файлов имя сохраняется.
Произвольный порядок файлов в списке можно задать перетягиванием записей в редакторе на нужное место.
Поддерживает работу в СУБД MySQL и SQLSrv DB.
Минимальная версия PHP v5.3.
Разработка компонента ведется на странице: https://gitlab.com/13hakta/FileAttach
Обратите внимание: дополнение несовместимо с плагинами, которые изменяют название файлов при загрузке, такими как fileTranslit.
Снимки экрана
Редактор в административном режиме
Список файлов в менеджере
Дерево медиа источника
Редактирование файла
Редактирование файла в административном режиме
Список файлов в фронтенде сайта
Окно загрузки
Чанк FileAttachTpl
Позволяет задать произвольное оформление для вывода записей файлов.
description | Описание |
docid | Идентификатор ресурса, для которого загружен файл |
download | Количество скачиваний |
fid | Уникальный строковой идентификатор файла |
hash | Контрольная сумма SHA1 |
ext | Расширение файла в нижнем регистре |
id | Идентификатор файла |
internal_name | Внутреннее имя. Содержит имя файла в файловой системе |
name | Имя файла. Совпадает с internal_name когда private=нет |
path | Путь внутри медиа источника |
private | Признак закрытости файла |
rank | Порядок в списке. Можно использовать для сортировки |
size | Размер файла в байтах |
Изначальное содержание чанка:
<p>[{+description:notempty=`<strong>[[+description]]</strong><br/>`]]<a href="[[+url]]">[[+name]]</a> <span>[[+download]]</span>[{+size:notempty=`<br/><small>Size: [[+size]] bytes</small>`]][{+ext:notempty=`<br/><small>Type: <img src="/img/[[+ext]].png" /></small>`]]
Замените в тексте "[{" на "[ [".
Сниппет FileAttach
Выводит список файлов.
&groups | Ограничение доступа для просмотра списка файлов указанным группам пользователей. Перечисление через запятую | |
&limit | 0 | Ограничение вывода файлов на странице. Если не указано, то вывод всех прикрепленных файлов |
&totalVar | total | Название плейсхолдера для вывода количества записей |
&offset | 0 | Количество пропущенных записей в выводе |
&makeURL | false | Создавать ссылку для скачивания файла |
&outputSeparator | Разделитель вывода записей | |
&privateUrl | false | Форсировать использование обработчик скачиваний, что позволяет считать скачивания даже для открытых файлов |
&resource | 0 | Показать файлы для документа с номером id, если не указано, то вывод только для текущего документа |
&showHASH | false | Получить хэш файла |
&showExt | false | Извлекать расширение файла |
&showSize | false | Получать размер файла |
&sortBy | name | Сортировать по полю |
&sortDir | ASC | Направление сортировки |
&toPlaceholder | false | Сохранять результат в плейсхолдер, вместо прямого вывода на странице |
&tpl | FileAttachTpl | Чанк оформления каждого ряда файлов |
Класс FileItem
Методы
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 | Размещать файл в подкаталоге пользователя |
Системные события
В среде MODx регистрируется системное событие faOnRemove, которому передаются два аргумента: id - номер объекта в таблице, object - объект FileItem.
Коннектор для скачивания файлов
Закрытые файлы скачиваются через коннектор, что позволяет скрыть прямую ссылку на файл и произвести подсчет количества скачиваний. Можно скачивать открытые файлы через коннектор, указав в вызове сниппета &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 |
Для загрузки файлов пользователю надо включить доступ для:
- Разрешение "create" в медиа-источнике
- Разрешение "file_upload" из шаблона AdminTemplate
Для удаления файлов во 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`]]
Пример управления файлов во frontend
Для загрузки используется менеджер очереди загрузки, загрузка через AJAX с помощью FormData.
Смотрите во вложении
Прикрепленные файлы
faupm-1071.zip 2644 Size: 9240 bytes SHA1: a53bf121ed56b18ea6b3122541f498ebc4cb8cdd
Метки: filemodxразработка
Просмотров: 5752 Автор: Admin Опубликовано: 04.02.2015
13hakta.ru
FileAttach / Работа с фото, видео и файлами / Дополнения MODX / modstore.pro
Версия 1.0.10-pl2
Дата выпуска 10.02.2018
Внимание, этот компонент требует версию PHP 5.3 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Модуль для загрузки файлов к ресурсам в менеджере сайта и frontend.- Поддерживается ограничение доступа к загрузке и скачиванию политиками
- Есть административное управление всеми загруженными файлами на сайте
- Для обзора загруженных файлов есть медиа источник, он доступен при глобальной регистрации пакета во время установки
- Список файлов хранится в таблице
- Возможность учета количества скачиваний, вычисление контрольных сумм SHA1
- Возможность скачивания по частям (HTTP Range)
modstore.pro
[FileAttach] Загрузка файлов на сайт во frontend / modx.pro
Начиная с версии 1.0.6 дополнения FileAttach появилась возможность использовать функционал дополнения на лицевой части сайта. На самом деле, с некоторыми оговорками, компонент и ранее можно было приспособить, но теперь добавилось несколько приспособлений. Для демонстрации возможностей вы можете ознакомиться из примера, скачав по ссылке. Распакуйте архив на сайте, задайте права группе пользователя и авторизуйтесь на сайте.Обращение к функциях дополнения производится через соединитель (connector), которому в аргументах задается параметр, указывающий на нужную функцию (processor). Результат работы возвращается в формате JSON, потому для удобства обработки результатов вам потребуется реализовать обвязку на Javascript.
Предполагается, что во frontend пользователь будет в основном выполнять выгрузку файлов на сервер, при этом для управления используя три функции:
- выгрузка файлов на сервер
- скачивание файлов с сервера
- получение списка присоединенных файлов к заданному ресурсу
- удаление присоединенных файлов у заданного ресурса
Пример вызова получения списка присоединенных файлов: Через метод GET обращаемся по адресу: mysite.ru/assets/components/fileattach/connector.php?action=web/getlist&ctx=web&docid=100
Здесь параметры означают:
- action = вызов процессора web/getlist
- ctx = выполнение в контексте web
- docid = у ресурса с идентификатором 100
Необходимый набор разрешений: Во-первых нужно предоставить доступ для медиа-источника с разрешением на «create». Затем надо включить разрешение на «file_upload» из шаблона AdminTemplate. Соответствующие политики назначьте группе пользователя для контекста web или того, который используется на лицевой части сайта.
Скачивание файлов Выполняется запросом к процессору web/download. Параметрами надо указать ctx, fid (строковой идентификатор записи файла).
Необходимый набор разрешений: Для скачивания надо разрешить «fileattach.download». Есть две политики, которыми можно разрешить скачивание, первая это «File Attach Download» предназначенная только для скачивания, и «File Attach Frontend» для разрешения работы во frontend. Назначьте одну из них для группы пользователя в контексте web.
Список файлов Выполняется запросом к процессору web/getlist. Параметрами надо указать ctx, docid. Процессор ответит в формате JSON, сообщив о результате и списке файлов: {«success»:true,«total»:«1»,«results»:[{«id»:38,«name»:«servicing.xlsx»,«fid»:«pPSVL79cTgCSkU5yoArcPBkNPfbsCLq1»,«hash»:«a24c27a4edd12c9809a7f948c0322d8aa14f68c8»}]}
Удаление файлов Выполняется запросом к процессору web/remove. Параметрами надо указать ctx, docid, список идентификаторов файлов ids в формате JSON.
Необходимый набор разрешений: Для доступа к удалению надо разрешить «fileattach.remove». При этом допускается удаление своих файлов, соответствующих указанному ресурсу. Чтобы позволить удалять не только свои файлы надо включить так же и «fileattach.totallist».
modx.pro