[msOrderFiles] Файлы к заказам miniShop2



Небольшой компонент, предназначенный для прикрепления файлов к заказу miniShop2. Нет ни сниппетов, ни чанков, ни отдельной страницы компонента. Есть только вкладка, встроенная в окошко редактирования заказа miniShop2, и свой Источник файлов.

За идею компонента спасибо Михаилу Воеводскому!

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

Чтобы вывести список файлов определённого заказа (например, в личном кабинете юзера), нужно воспользоваться сниппетом 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 — позиция новых файлов в списке. Другими словами, куда загружать новые файлы: в начало или в конец.

Купить пакет в modStore.pro
09 сентября 2016, 00:16    Павел Гвоздь   
2    1018 +6

Комментарии (23)

  1. Воеводский Михаил 09 сентября 2016, 00:57 # +2
    Павел, для упрощения добавь сниппет-обертку над pdoResources, который добавит свои особые параметры и заменит некоторые стандартные. Сделать его не долго, но снимет огромное количество вопросов по ошибочному вызову pdoResources.
    1. Павел Гвоздь 09 сентября 2016, 10:42 # +1
      Да, ты прав. Пожалуй, вскоре сделаю именно так.
      1. Павел Гвоздь 12 сентября 2016, 08:53 # 0
        Спасибо, Леонид!
      2. ck 12 сентября 2016, 11:32 # 0
        Можно ли с помощью этого компонента автоматически высылать файлы в зависимости от приобретённого товара?
        1. Воеводский Михаил 12 сентября 2016, 11:34 # 0
          Нет. Это дополнение для ручного прикрепления файлов к заказу в целом. Например, скан счета или акта.
          1. ck 12 сентября 2016, 11:36 # 0
            Спасибо. А есть на сторе дополнение, позволяющее отправлять файл после оплаты?
            1. Воеводский Михаил 12 сентября 2016, 12:39 # 0
              Готового дополнения с таким функционалом не видел.
              Можно использовать это modstore.pro/packages/photos-and-files/fileattach и добавить плагин отправки на почту списка ссылок на скачивание файлов, прикрепленных к товарам в заказе, после смены статуса заказа на «Оплачен».
              1. Павел Гвоздь 12 сентября 2016, 15:30 # 0
                Можно пример, что за файл нужно отправлять юзеру после оплаты заказа? Это какой-то конкретный файл, заточенный для определённого юзера или общий файл для каждого?
                1. ck 05 октября 2016, 18:34 # 0
                  Это общий файл. Например mp3-файл (музыка, перевод и т.д.).
                  Ниже ребята об этом и говорят.
            2. but1head 12 сентября 2016, 18:50 # 0
              Как вариант modstore.pro/packages/integration/msdigitaloffers
              код = ссылка на файл
              1. Евгений 12 сентября 2016, 19:00 # 0
                1. Есть возможность автоматической генерации уникальной ссылки с ограничением времени жизни?
                2. Кода будет работать с новым минишопом?
                1. but1head 12 сентября 2016, 19:02 # 0
                  1. Нет, ибо создавался компонент под продажу игровых ключей и тд, т.е. «кодов» того, что уже есть.
                  2. В процессе, по срокам не сориентирую, но скоро.
                  1. Евгений 12 сентября 2016, 19:07 # 0
                    Может сделаете отдельное приложение для покупки файлов?
                    1. but1head 12 сентября 2016, 19:10 # 0
                      Контакты в профиле.
                      Вообще был какой-то компонент, который умел генерировать ссылку на файл и доступ к ней на * кол-во времени, но не могу вспомнить его название.
            3. Stan Ezersky 23 сентября 2016, 13:51 # 0
              Может сделаете отдельное приложение для покупки файлов?
              Тоже интересен аддон с продажей файлов (знаю ещё человек 5, которым это интересно).
              1. Павел Гвоздь 23 сентября 2016, 13:53 # 0
                Опишите подробнее функционал пакета. Думаю, реализую.
                1. Stan Ezersky 23 сентября 2016, 14:01 # 0
                  Думаю, всё просто

                  К товару прикрепляется файл, после покупки файл доступен в истории заказов
                  В идеале, отсылать ссылку на скачивание после оплаты заказа на почту.

                  Хранение

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

                  Безопасность

                  Даже имея ссылку файл скачать нельзя, скачать его может только оплативший покупку.

                  Это с ходу, так можно многое развить
                  1. ck 05 октября 2016, 18:35 # +1
                    Присоединяюсь к Stan Ezersky. Нужен такой копонент.
                2. Андрей 01 февраля 2017, 12:03 # 0
                  Приветствую. Подскажите пожалуйста, как изменить шаблон вывода загруженных файлов в дропзоне. И еще как добавить функцию удаления каждому файлу при выводе уже сохраненных файлов через pdoResources.
                  1. Павел Гвоздь 01 февраля 2017, 12:19 # 0
                  2. Андрей 01 февраля 2017, 12:33 # 0
                    Извините. Отписался уже.
                    1. Юрий 28 марта 2017, 10:35 # 0
                      Подскажите, возможно ли привязать кол-во товара и кол-во загружаемых файлов? Т.Е. необходимо сделать товаром — именно загружаемый файл пользователем!
                      Вы должны авторизоваться, чтобы оставлять комментарии.