2590
33.64
37.00
за сайт
- Проверено Modstore
- Бесплатные будущие обновления
- Работа на тестовом и публичном домене
- 12 месяцев тех. поддержки

Компонент предназначен для прикрепления файлов к заказу miniShop2, как из бек-энда, так и из фронт-энда.
В бек-энде файлы отображаются на вкладке, встроенной в окошко редактирования заказа miniShop2.
Как известно, после оформления заказа анонимом, на указанный email при заказе создаётся пользователь. Так вот этот пользователь прикрепляется и к файлам, которые были загружены при оформлении заказа.
Вывод формы загрузки файлов
Сниппет лучше всего размещать в чанке tpl.msOrder, чтобы в пустой корзине форма не отображалась.
Параметры сниппета msofForm:
- tpl — Шаблон вызова формы,
- order — ID заказа. По-умолчанию 0,
- user — ID пользователя. По-умолчанию текущий,
- source — Источник файлов. По-умолчанию указывается из настройки msof_source,
- anonym — Позволять ли анонимам пользоваться формой,
- dropzone — Массив параметров Dropzone, можно JSON,
- maxFiles — Максимальное кол-во файлов. По-умолчанию 2,
- maxFilesize — Максимальный размер файла в MB. По-умолчанию 2.
Пример вызова:
{'!msofForm' | snippet : [
'maxFiles' => 20,
'maxFilesize' => 10,
'anonym' => false,
]}Важно
Чтобы пользователь мог загружать файлы из фронт-энда, добавьте его группе политику доступа msOrderFilesPolicy. Тоже касается и анонимов.После этого не забудьте сделать:
— Управление => Перезагрузить права доступа
— Управление => Завершить все сеансы
И сбросить кеш, на всякий случай!
Вывод файлов в письме пользователю/менеджеру
В нужном месте шаблона письма пишем вызов сниппета pdoResources с нашей моделью msOrderFiles:
{'!pdoResources' | snippet : [
'class' => 'msOrderFile',
'loadModels' => 'msOrderFiles',
'where' => [
'order_id' => $order['id'],
'active' => 1,
],
'sortby' => '{"rank":"ASC"}',
'tplWrapper' => '@INLINE <ul>{$output}</ul>',
'tpl' => '@INLINE <li><a href="{("site_url" | option) ~ $url}">{$name}</a></li>',
]}Важно учитывать, что это решение 100% работает для miniShop2 >= 2.4, т.к. проверялось только на нём. Хотя можно попытаться совместить и с более ранними версиями магазина, скорее всего, даже без существенных правок.
Вывод списка файлов заказа
Чтобы вывести список файлов определённого заказа (например, в личном кабинете юзера), нужно воспользоваться сниппетом pdoResources:
{'!pdoResources' | snippet : [
'class' => 'msOrderFile',
'loadModels' => 'msOrderFiles',
'where' => [
'active' => 1,
'order_id' => 10,
],
'sortby' => '{"rank":"ASC"}',
'tplWrapper' => '@INLINE <ul>{$output}</ul>',
'tpl' => '@INLINE
<li><a href="{$url}">{$name}</a></li>
',
]}Плейсхолдеры для параметра tpl
- id — id файла заказа,
- order_id — id заказа в ms2,
- source — id источника файлов,
- name — название файла,
- description — описание файла,
- file — имя файла с расширением,
- url — путь до файла, начиная от корня сайта,
- mime — тип файла, по стандарту MIME,
- ext — расширение файла,
- hash — хеш, который используется для сравнения уникальности загружаемого файла,
- size — размер файла в байтах,
- createdon — дата загрузки файла,
- createdby — id юзера, который загрузил файл,
- rank — номер позиции файла в списке,
- active — является ли файл активным.
Источник файлов msOrderFiles
В источнике файлов, помимо стандартных настроек (basePath, baseUrl), можно указать и такие:
- allowedFileTypes — список расширений файлов, которые разрешается загружать,
- fileNameType — знакома многим из ms2Gallery, означает метод переименования файла,
- positionNewFiles — позиция новых файлов в списке. Другими словами, куда загружать новые файлы: в начало или в конец.
Автор выражает благодарность Михаилу Воеводскому за идею дополнения.
Обсуждение компонента в сообществе MODX.PRO.
1.1.7-beta (26.06.2020)
- Добавлено удаление пустой папки из под файлов
1.1.6-beta (18.06.2020)
- Добавлен сниппет msofList
1.1.5-beta2 (20.09.2018)
- Поправлена передача параметра &timeout в JS
1.1.5-beta (20.09.2018)
- Добавлен параметр &timeout у сниппета msofForm для указания ожидания запроса на загрузку файла, по-умолчанию 90000
1.1.4-beta (15.08.2018)
- Добавлена работа с облаком
- Поправлена ошибка подгрузки файлов при наличии нескольких форм компонента на странице
1.1.3-beta (15.08.2018)
- Исправлен способ инициализации JS класса для копии формы, теперь напрямую в JS передаётся propkey
1.1.2-beta (11.04.2018)
- Добавлен сброс кеша состояния файлов
1.1.1-beta (02.08.2017)
- Поправлен баг на фронте, когда список файлов не очищался после оформления заказа
- Поправлено удаление объектов файлов заказа при удалении связанного объекта msOrder
- Небольшой рефакторинг
1.1.0-beta2 (26.12.2016)
- Поправлен баг на MODX ниже 2.5.2, когда из фронт-энда ключ сортировки не передавался и SQL запрос из-за этого крашился
1.1.0-beta (26.12.2016)
- Добавлена загрузка файлов из фронт-энда
- Рефакторинг кода
- Стилизация внешнего вида в бек-энде
1.0.2-beta2 (23.12.2016)
- Поправлена совместимость с PHP 5.3
1.0.2-beta (20.12.2016)
- Добавлено удаление файлов из базы при удалении связанного заказа
- Подкорректирован внешний вид таблицы файлов заказа в бек-энде
1.0.1-beta3 (29.10.2016)
- Поправлен тип поля rank в базе
1.0.1-beta2 (28.10.2016)
- Поправлена подстановка базового пути в файл при аплоаде
- При обновлении файла через процессор mgr/file/update добавлена возможность заменить файл новой версией
1.0.1-beta (28.10.2016)
- Добавлена возможность добавлять файлы, не загруженные методом HTTP POST, через процессор mgr/file/upload
1.0.0-beta (09.09.2016)
- Start




Последние обсуждения в сообществе MODX.pro