[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

  1. Главная
  2. Блог
  3. 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 Description
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.

Name Description Default value
&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:

Name Description Arguments
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

Name Description Default value
calchash
 Calculate file hash at upload
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

Name Description
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:

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:

Title Description
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? &amp;privateUrl=`1`]]

Custom sorting:

[[FileAttach? &amp;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

  1. Главная
  2. Блог
  3. 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

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

Для удаления файлов во frontend разрешено удалять свои файлы, прикрепленные к соответствующему ресурсу. Для возможности удаления не только своих файлов надо включить разрешение "fileattach.totallist".

Для скачивания надо разрешить «fileattach.download».Есть две политики, которыми можно разрешить скачивание, первая это «File Attach Download» предназначенная только для скачивания, и «File Attach Frontend» для разрешения работы во frontend.Назначьте одну из них для группы пользователя в контексте web.

При установке модуля создается набор политик:

Название Описание
File Attach Полный доступ
File Attach Download Только скачивание
File Attach Frontend Разрешает использовать процессоры для управления файлами во frontend

Обратите внимание на то, что в модуле нет возможности ограничивать доступ к файлам отдельных ресурсов, отдельным файлам. В модуле реализован способ сокрытия прямого пути к файлу, ограничение на скачивание через политику задается для всех файлов.

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

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

[[FileAttach]]

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

[[FileAttach? &amp;privateUrl=`1`]]

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

[[FileAttach? &amp;sortBy=`rank`]]

Ограничение на доступ к списку только пользователям из группы Editors:

[[FileAttach? &amp;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. Пример как загружать во frontend: 13hakta.ru/assets/components/fileattach/connector.php?action=web/download&ctx=web&fid=pPSVL79cTgCSkU5yoArcPBkNPfbsCLq1

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

Здесь параметры означают:

Выгрузка файлов Выполняется запросом методом POST к процессору mgr/upload с типом кодирования формы multipart/form-data. Параметрами надо указать ctx, docid, file. Процессор ответит в формате JSON, сообщив о результате и списке принятых файлов: {«success»:true,«total»:«1»,«results»:[{«id»:37,«fid»:«pPSVL79cTgCSkU5yoArcPBkNPfbsCLq1»,«name»:«price.xls»}]}

Необходимый набор разрешений: Во-первых нужно предоставить доступ для медиа-источника с разрешением на «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


Prostoy-Site | Все права защищены © 2018 | Карта сайта