[UserFiles] - Файлы пользователя.


[UserFiles] — Компонент реализует функцию загрузки файлов (загрузчик Plupload) пользователями с фронта сайта.
Особенности:
— добавление файлов к любому виду ресурса
— добавление файлов к пользователю
— интеграция с [UserProfile2]
— поддержка списков файлов


вкладки компонента
Рабочая область компонента доступна в нескольких местах.
— ресурс
Доступна сортировка по пользователю, списку. Поиск по имени, классу, типу файла

— пользователь
Доступна сортировка по ресурсу, списку. Поиск по имени, классу, типу файла

— профиль пользователя
Доступна сортировка по списку. Поиск по имени, классу, типу файла. Вывод файлов с типом modUser.

— вкладка компонента
Доступна сортировка по ресурсу, пользователю, списку. Поиск по имени, классу, типу файла.

основныые настройки компонента
active — включить компонент.
source_default — дефолтный источник файлов
list_default — дефолтный список файлов
disable_for_resources — отключить для ресурсов (да/нет)
disable_for_user — отключить для пользователей (да/нет)
disable_for_userprofile — отключить для профиля пользователя (да/нет)
disable_for_templates — отключить для шаблона (список id через запятую)
disable_for_users — отключить для пользователей (список id через запятую)
list_max_count — максимальное кол-во файлов пользователя в списке

сниппет UF.form
Вывод формы с загрузчиком файлов. Аналог формы загрузки файлов к тикетам.

Для загрузки файлов с фронта пользователю нужно добавить политику UserFilesPolicy.
'userfiles_file_view' — право на просмотр формы загрузки
'userfiles_file_upload' — право на загрузку файлов
'userfiles_file_delete' — право на удаление файлов

Можно указать доступное кол-во файлов к загрузке, источник файлов, форму показа неавторизованному пользователю, пользователю без необходимых прав и многое другое.
сниппет UF.view
В принципе мне пока что нужен был функционал просмотра добавленных файлов внутри админки, поэтому вывод списка файлов сделал на быструю руку. Оформление самое простое.


доступные поля
Доступные поля таблицы user_files:
parent — идентификатор родителя
class — класс родителя
list — ключ списка файлов
source — идентификатор источника файлов
name — имя файла при загрузке
path — путь к файлу
file — имя файла после загрузки
type — тип файла
size — размер файла
createdon — дата время создания
createdby — идентификатор создателя
url — относительный путь к файлу
thumb — относительный путь к превью файла
active — флаг активен
deleted — флаг к удалению

Сниппет на основе [pdoTools] — а значит доступны все базовые параметры. Спасибо Василию!

ps. Вкратце вся информация. Будут вопросы — задавайте.
Компонент доступен в репозитории на платной основе.
16 апреля 2015, 14:52    Володя   G+  
4    2508 +9

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

  1. Alexander V 16 апреля 2015, 15:19 # +1
    Отлично! Давно ждал, когда можно будет упорядочить файлы пользователя.
    1. Василий Столейков 16 апреля 2015, 20:46 # 0
      Можно будет использовать для загрузки фоток в доску объявлений?
      То есть чтобы пользователь мог загружать фотки только к своим объявлениям?
      P.S. Похоже тут сработает простое условие:
      [[!+modx.user.id:is=`[[*createdby]]`:then=`сниппет UF.form`]]
      
      Спасибо, СУПЕР! Давно ждал такой возможности — даже и не ожидал, что она будет такой удобной!!!
      1. Володя 16 апреля 2015, 21:44 # +1
        да, совершенно верно…
        Пожалуйста!
        Пока не продумывал этот функционал, возможно стоит сделать просто настройку кому на данном ресурсе возможно загружать файлы…
      2. Артур Костюнин 20 апреля 2015, 12:47 # 0
        Считаю что было бы про отлично если появиться возможность организации файлов структурой (создание папок возможность добавление комментариев для папок или файлов).

        Но намой взгляд самое большое преимущество это предоставлять возможность доступа для редактирования/создания/чтения файлов.
        1. Володя 20 апреля 2015, 13:27 # 0
          Меня тут конечно щас опять минусовать будут, но я вот реально ниче не понял.
          У вас есть в голове какое то свое представление о чем либо, и вы считаете всем это понятно?
          создание папок возможность добавление комментариев для папок или файлов
          каких блин папок? каких комментариев?
          Пишите доступным языком, с подробностями, с зарисовками… хз с чем еще… Но чтоб можно было понять о чем вы говорите.
          Спасибо!
          1. Артур Костюнин 20 апреля 2015, 13:45 # +1
            Понял, скажу иначе.
            Возможно сделать как аналог Dropbox, только для личного пользования, т.е. для зарегистрированных пользователей
        2. Артур Костюнин 21 апреля 2015, 23:43 # 0
          Привет.
          Подскажите почему выскакивает сообщение
          "Ошибка, не указан обязательный параметр - parent."
          , хотя он указан

          [[!UF.form?
          &allowedFiles=`jpg,jpeg,png,gif,doc,pdf,txt,xlsx,jnt,docx,zip` 
          &source=`15` 
          &listMaxCount=`99999` 
          &classFile=`modUser` 
          &parent=`211` - <i>текущий</i>
          &onlyCreatedby=`1`
          ]]
          1. Володя 22 апреля 2015, 09:08 # +1
            у вас стоит класс — `modUser` и id — `211`.
            То есть вы хотите подгрузить файлы на пользователя с id 211. Он у вас существует? Думаю нет, оттого вам и выводится предупреждение…
            1. Артур Костюнин 22 апреля 2015, 19:52 # 0
              Спасибо.
              Подскажите появиться ли:
              — Вывод даты загруженного файла,
              — Появиться ли возможность замены файла при совпадении (с возможностью выбора).
              1. Володя 22 апреля 2015, 20:10 # 0
                пожалуйста.
                вывести дату можно через [[+createdon]]
                возможность замены при совпадении пока не думаю что актуально…
          2. Ilya Krivenok 26 апреля 2015, 18:19 # 0
            работает ли с источником файлов типа S3 Amazon и какие необходимы js-библиотеки для работы формы с фронта?
            1. Володя 26 апреля 2015, 19:43 # 0
              Компонент есть в тестовом доступе на modhost.pro/
              Можно установить и попробовать…
              ps. попробовал по статье Василия — работает. Посмотреть тут — s1686.h3.modhost.pro/index.php?id=1
            2. Виталий Зиборов 02 октября 2015, 20:48 # 0
              Подскажите, пожалуйста, можно ли этот компонент использовать совместно с FormIt, для закрузки пользовательских файлов при заполнении контактной формы.
              Я попробовал прикрутить его «в лоб», просто воткнул вызов
              [[UF.form? &classFile=`modResource` 
                               &list=`zak2` 
                               &allowedFiles=`jpg,jpeg,png,gif,doc,pdf,txt,xlsx,jnt,docx,rtf,zip` 
                               &parent=`12`]]
              внутрь разметки формы, но у меня ничего хорошего не вышло.

              Индикатор загрузки показывает, время от времени, что файл грузится, но имя его не появляется и во вкладке UserFiles родительского ресурса он не появляется.
              Появляется красное окошечко с ошибкой «UF_ERR_FORM_KEY»
              1. Володя 02 октября 2015, 22:18 # 0
                не совсем понятно что вам нужно в результате. Компонент для загрузки файлов пользвателями, у вас они авторизовываются для отправки письма через форму?
                Если все же представить что они авторизовываются то зачем втыкать форму загрузки в форму отправки письма? Судя по тому что выдает ошибку вы ее вызываете через AjaxForm он и убирает регуляркой ключ формы загрузки файлов.
                Постарайтесь пожалуйста точнее выразить что вам необходимо получить в итоге… и тогда я смогу вам точнее подсказать.
                Спасибо!
                1. Виталий Зиборов 03 октября 2015, 04:53 # 0
                  Владимир, доброе утро, уточняю ситуацию.
                  Что хотелось бы получить в идеале:
                  Есть система сбора заказов на услуги. Потенциальный клиент получает ссылку на анкету и заполняет её, прикрепляя необходимые документы. В принципе, пользователя пока ещё не существует, он формируется только после обработки заявки.
                  Если без регистрации нельзя, то в принципе, это тоже решаемо, можно цеплять на менеджера, а потом создавать клиентов и перекидывать файлы на них. /тогда попутный вопрос, как лучше сделать переброску?/ Я так понимаю, что основная привязка тут должна быть через имя списка.
                  Форма заявки сейчас обрабатывается FormIt`ом, но загрузки файлов пока нет, файлы хотелось бы подгрузить через UserFiles.
                  Попутно встает вопрос передачи списка загруженных файлов в текст письма и самих файлов во вложения (не обязательно, но желательно).
                  Потом, по ходу обработки заказа, заказчики могут подгружать ещё документы уже на свой оформленный заказ, но уже в других формах и с регистрацией.
                  Спасибо.
                  1. Виталий Зиборов 03 октября 2015, 05:09 # 0
                    FormIt использую без AjaxForm.
                    Анкета — это и есть заявка, она сохраняется в базу, копия — клиенту мылом.
                    1. Володя 05 октября 2015, 13:25 # 0
                      попробуйте теперь сделать так modx.pro/components/6673-userfiles-download-available-files-to-anonymous/
                      1. Виталий Зиборов 05 октября 2015, 13:44 # 0
                        Спасибо, попробую. Но а как быть с этим?
                        Судя по тому что выдает ошибку вы ее вызываете через AjaxForm он и убирает регуляркой ключ формы загрузки файлов.
                        Как сцепить UserFiles с Formit`ом? Чтобы обе формы работали.
                        1. Володя 05 октября 2015, 13:47 # 0
                          так вы не суйте одну форму в другую и все… Сделайте их вызов последовательно.
                          1. Виталий Зиборов 05 октября 2015, 14:06 # 0
                            тогда уж параллельно. Сама анкета выводится formit`ом, а ниже вызов userfiles.
                            Остается вопрос передачи данных в анкету, чтобы formit всё вместе закинул в базу.
                            Мне кажется, было бы удобно иметь массив плейсхолдеров, типа:
                            [[+сколько_файлов_загружено]],
                            [[+имя_файла_до_загрузки_1]], [[+имя_файла_после_загрузки_1]]

                            [[+имя_файла_до_загрузки_N]], [[+имя_файла_после_загрузки_N]]
                            Тогда это можно использовать дальше, как вздумается, в том числе закинуть в нужные поля базы данных.
                            1. Володя 05 октября 2015, 15:29 # 0
                              вы можете написать хук в формит в котором по идентификатору получаете список файлов и оформляете это как вам угодно.
                              1. Виталий Зиборов 05 октября 2015, 15:32 # 0
                                Да, я уже об этом подумал.)
                                А версия UserFiles не обновилась, что-то он у меня обновляться не хочет?

                                1. Viktor 13 февраля 2017, 11:18 # 0
                                  Кто-то написал такой хук?)
                2. Jenya Filimonov 20 ноября 2015, 13:51 # 0
                  Помнится, когда то хотелось, чтобы пользователи с фронта могли добавлять картинки в галлерею и чтобы впоследствии эти картинки отображались на странице пользователя и можно было их выводить в общей галлерее (msGallery). При помощи этого компонента, случайно, это возможно?
                  1. Борис И 19 декабря 2015, 14:28 # 0
                    Здравствуйте. Подскажите пожалуйста, для публикации статей с фронта используется Tickets, с его же помощью загружаются картинки. Нужна возможность, в той же форме добавить возможность загружать архивы (zip,rar) и выводить их в ресурсе. Возможно ли реализовать это с помощью данного компонента? Что добавить в чанк tpl.Tickets.form.create и как вывести в статье (ресурсе) загруженные файлы (архивы)?
                    1. Алексей 28 января 2016, 18:48 # 0
                      Какое первоначальное предназначение поля parent у картинки? почему не дает грузить новые изображения без указания parent?
                      1. Володя 28 января 2016, 20:10 # 0
                        parent — идентификатор родителя
                        class — класс родителя
                        1. Алексей 28 января 2016, 20:49 # 0
                          а родитель кто? ресурс? т.е. ИД ресурса — это parent.
                          а класс- это classFile? либо modResource либо modUser?
                          если в режиме modResource:
                          то parent — ID ресурса
                          если в режиме modUser:
                          то parent — ID юзера?
                          там же есть поле еще createby — оно вроде хорошо заполняется ID юзера, загрузившего имэйдж
                          Немного непонятно) документации нет, и свойствах сниппета UF.form тоже все не тривиально описано (в параметрах сниппета, хоть и по русски)))
                          1. Володя 28 января 2016, 20:56 # 0
                            class — либо modResource, либо modUser, либо свой…
                            parent — соответственно id вышеупомянутого объекта

                            если в режиме modResource:
                            то parent — ID ресурса
                            если в режиме modUser:
                            то parent — ID юзера?
                            да.

                            там же есть поле еще createby — оно вроде хорошо заполняется ID юзера, загрузившего имэйдж
                            именно пускай там и будет ID юзера, загрузившего имэйдж.

                            спрашивайте что непонятно, конечно отвечу…
                            1. Алексей 28 января 2016, 21:25 # 0
                              так, а поле list (имя списка) — оно ни к чему не привязывается? само назначается?
                              можно вызвать несколько сниппетов UF.form на страничке, только ради того чтобы указать разные имена списков list? или как это лучше реализовать?
                              1. Володя 28 января 2016, 21:28 # 0
                                да, именно так. Чтобы в админке можно было отсортировать по данным спискам
                                1. Алексей 28 января 2016, 21:57 # 0
                                  а можно сделать несколько «окошечек» для загрузки файлов, каждый из которых имел бы своё имя списка list, и вызвать их на одной страничке? или так лучше не делать) такое возможно реализовать?
                                  1. Володя 28 января 2016, 22:33 # 0
                                    просто заменил id-шники и попробовал инициализировать сразу несколько форм…
                                    ну вообще с наскоку этот вариант не сработал )

                                    а есть необходимость в таком? Просто тут хотел немного подрихтовать данный пакет, возможно и такую штуку доработаю.
                                    1. Алексей 29 января 2016, 19:29 # 0
                                      да есть необходимость) было бы классно иметь возможность создавать несколько «окошечек» для драг-н-дропинга изображений, у каждого окошечка своё имя списка «list», да чего уж там, может и свой «parent» и «classFile»?)) (у меня пока необходимость тлько в разных именах списков «list»)
                      2. Jenya Filimonov 17 февраля 2016, 17:24 # 0
                        Вроде со всем разобрался. Подскажите пожалуйста только одну вещь.
                        У меня есть страничка для загрузки картинок пользователем к себе на страницу. У него на странице картинки отображаются в виде галереи. Допустим что таких пользователей много, у каждого свои картинки.
                        Есть отдельный ресурс, где я вывожу все картинки пользователей в куче — общая галерея.
                        [[!UF.form?
                        	&classFile=`modUser`
                        	&parent=`[[!+modx.user.id]]`
                        	&listMaxCount=`50`
                        	&list=`gallery`
                        	&source=`3`
                        ]]
                        Но это если ресурс у галереи один, например «Фотографии». А если ресурсов несколько? «Фотографии природы», «Фотографии детей». Есть шанс как то раскидывать фотографии пользователей по нужным ресурсам? или как то давать им этот выбор?
                        1. Илья Уткин 17 февраля 2016, 17:28 # +2
                          Для этого параметр list и нужен — просто создаёшь такой же ресурс, как и галерея, только в list пишешь, например, children

                          Ну и для вывода тоже указываешь, какой list тебе нужен
                          1. Jenya Filimonov 17 февраля 2016, 17:42 # 0
                            а на странице user придется два раза дублировать?
                            [[!UF.view? &list=`gallery`]]
                            и
                            [[!UF.view? &list=`children`]]
                            чтобы была возможность выбрать на какой ресурс отправить изображение? или какой то иной способ есть
                            1. Илья Уткин 17 февраля 2016, 17:55 # +1
                              Ну да. Можно их в разных «табах» на одной странице разместить

                              1. Jenya Filimonov 17 февраля 2016, 17:57 # 0
                                Спасибо большое Илья: D Все получилось, вопроса больше не стоит.
                                Это был хороший день, столько вопросов разрешил, прям как ребенок спать буду!
                                1. Володя 17 февраля 2016, 18:50 # 0
                                  Спасибо! )
                                  1. Jenya Filimonov 17 февраля 2016, 18:58 # 0
                                    Да забыл: ) И вам спасибо за дополнение.
                          2. Jenya Filimonov 19 февраля 2016, 18:30 # 0
                            Назрел вопрос по UserFiles. Не могу найти где поменять размер генерируемого превью. Все перерыл уже кажется.
                            Очень сильное чувство, что дело в phpThumb, но там тоже не нашел где выставить размеры: (
                            1. Володя 19 февраля 2016, 20:42 # 0
                              в настройках источника файлов посмотрите.
                              1. Jenya Filimonov 19 февраля 2016, 21:56 # 0
                                Давайте сделаем вид, что этого вопроса не было!!! )))
                                Действительно, все там и там надо было начинать решать проблему…
                            2. Inshou 06 апреля 2016, 18:42 # 0
                              А какой параметр в новой версии отвечает за количество файлов разрешенных к загрузке?
                              &list_max_count=`` не работает
                              1. Inshou 06 апреля 2016, 18:53 # 0
                                Или только js править?
                                И вообще где хоть какое-то подобие инструкции?
                                Купил, чтобы ускорить работу, а все только затормозилось… неприятно и мне вылилось в другие в том числе финансовые издержки.

                                var UserFilesForm = {
                                config: {
                                dropzone: {

                                maxFiles: 1,
                                1. Володя 06 апреля 2016, 21:46 # 0
                                  по вопросам работы платных дополнений можно и нужно обращаться в ТП.
                                  1. Inshou 06 апреля 2016, 22:00 # 0
                                    ну первая и чуть ли не главная ссылка из описания самого дополнения ведет сюда, поэтому не удивляйтесь
                                    1. Володя 06 апреля 2016, 22:14 # 0
                                      сюда ведет ссылка только с отзывов, остальные вроде все правильные и ведут на modx.pro/components/8021-userfiles-user-files/
                                2. Володя 06 апреля 2016, 21:44 # 0
                                  описание новой версии — modx.pro/components/8021-userfiles-user-files/
                                  за загрузку файлов отвечает dropzone, принимает параметры в виде json строки
                                  &dropzone=`{"maxFilesize":2,"maxFiles":3,"acceptedFiles":".jpg, .jpeg, .gif, .png","template":"edit"}`
                                  
                                  1. maxFilesize — максимальный размер файла
                                  2. maxFiles — максимальное кол-во файлов
                                  3. acceptedFiles — тип файлов разрешенных к загрузке
                                  1. Inshou 06 апреля 2016, 21:59 # 0
                                    Спасибо, приятно видеть быстрый ответ
                                    1. Володя 06 апреля 2016, 22:15 # 0
                                      пожалуйста!
                                3. Andrey Frost 07 апреля 2016, 17:38 # 0
                                  Подскажите как вывести вкладку компонента в ресурсе?
                                  1. Володя 07 апреля 2016, 18:08 # 0
                                    Для вывода вкладки компонента на странице ресурса нужно указать соответствующий шаблон ресурса в настройке userfiles_working_templates
                                  2. Andrey Frost 23 апреля 2016, 09:45 # 0
                                    Notice: Undefined property: modX::$UserFiles in .../public_html/core/components/userfiles/model/userfiles/systems/userfilesplugin.class.php on line 16

                                    Notice: Undefined index: mgr in .../public_html/core/components/userfiles/model/userfiles/systems/userfilesplugin.class.php on line 29

                                    Подскажите пожалуйста куда копать, при открытии ресурса notice (в админке только наблюдается)
                                    1. Inshou 22 июня 2016, 10:21 # 0
                                      Как получить объекты UserFiles из кода сниппета? Пробовал разные варианты из опубликованных в сети, ни один не работает ни через getCollection, ни через runSnippet. Может кто-нибудь толково объяснить как правильно сформировать запрос?
                                      1. Володя 22 июня 2016, 12:58 # 0
                                        Добрый день.
                                        Посмотрите вот тут примеры выборки с помощью pdoResources
                                        modx.pro/components/8021-userfiles-user-files/

                                        1. Inshou 22 июня 2016, 15:27 # 0
                                          Этот пример видел, но как правильно тогда составить запрос?:

                                          $res = $modx->runSnippet('pdoResources', array(
                                          'class'=>`UserFile`,
                                          'loadModels'=>`UserFiles`,
                                          'tpl'=>'@INLINE [[+url]]',
                                          'where=>array('UserFile.parent' => $modx->user->get('id')),
                                          );

                                          пробовал несколько подобных схем, ни одна не заработала.
                                          1. Володя 22 июня 2016, 16:40 # 0
                                            оформляйте код соответствующе
                                            <?php
                                            
                                            $output = $modx->runSnippet('pdoResources', array(
                                                'showLog'    => 0,
                                                'class'      => 'UserFile',
                                                'loadModels' => 'UserFiles',
                                                'sortby'     => 'rank',
                                                'tpl'        => '@INLINE [[+url]]',
                                                'where'      => json_encode(array(
                                                    'UserFile.parent' => $modx->user->get('id')
                                                ))
                                            ));
                                            
                                            return $output;
                                            
                                            1. Inshou 22 июня 2016, 17:19 # 0
                                              Все равно ни ошибок ни результата не выдает

                                              $uf = $modx->runSnippet('pdoResources', array(
                                              'showLog' => 0,
                                              'class' => 'UserFile',
                                              'loadModels' => 'UserFiles',
                                              'sortby' => 'rank',
                                              'tpl' => '@INLINE [[+url]]',
                                              'where' => json_encode(array(
                                              'UserFile.parent' => $uid
                                              ))
                                              ));

                                              хотя в любом случае предпочтительнее было бы получить объекты а не результат вывода шаблона, но и через getCollection тоже не знаю уже куда смотреть.

                                              А нет варианта, сделать что-то вроде такого запроса?

                                              $corePath = $modx->getOption('userfiles_core_path', null, $modx->getOption('core_path', null, MODX_CORE_PATH). 'components/userfiles/');
                                              $UserFiles = $modx->getService('UserFiles', 'UserFiles', $corePath. 'model/userfiles/', array('core_path' => $corePath));
                                              $user_id = $modx->user->id; // id Авторизованного пользователя
                                              $files = $modx->getCollection('UserFile', array('parent' => $user_id));
                                              print_r($files);

                                              Также просто пустой array()
                                              1. Inshou 22 июня 2016, 17:43 # 0
                                                Попробовал вместо 'UserFile.parent' => $uid — указать Page ID вместо User ID, вроде что-то зафурчало.
                                      2. max 18 августа 2016, 12:49 # +1
                                        На чистой свежеустановленной modx 2.5.1 установка UserFiles вызывает Fatal Error при попытке зайти на страницу редактирования пользователя в админке

                                        Fatal error: Call to a member function get() on array in /.../.../www/.../manager/controllers/default/security/user/update.class.php on line 108

                                        Проверялось на версиях UserFiles 2.1.16, 2.1.17 и 2.2.0
                                        Как только сносишь компонент — все работает как надо. Как быстро поправить?
                                        1. Володя 18 августа 2016, 14:28 # 0
                                          fix
                                          1. max 18 августа 2016, 14:33 # 0
                                            Отлично! Работает. Спасибо за оперативный ответ!
                                        2. Andrey Frost 13 сентября 2016, 04:19 # 0
                                          А сжатие при загрузке можно как то прикрутить?
                                          1. Володя 13 сентября 2016, 08:15 # 0
                                            а поподробнее можно?
                                            1. Andrey Frost 13 сентября 2016, 18:37 # 0
                                              Вопрос отпал, возник другой: при загрузке изображений через фронтенд почему то в базе создается через раз неверная запись, в поле class сначала UserFile у следующего созданного ресурса уже верно modResource

                                              понять не могу в какой момент это случилось. В итоге при выводе фото ресурса с записью UserFile берется фотка следующего ресурса.

                                              Механизм такой, сначала на одной странице пользователь забивает поля и при нажатии на сабмит создается ресурс, затем на следующей странице пользователь заливает фото код вывода формы ниже:
                                              		[[!FormItRetriever]]
                                              
                                                              [[!ufForm?
                                                                 &tplForm=`uf.form`
                                                                 &list=`image`
                                                                 &parent=`[[!+fi.id]]`
                                                                 &anonym=`0`
                                                                 &dropzone=`{"maxFilesize":4,"maxFiles":10,"acceptedFiles":".jpg, .jpeg, .png","template":"edit"}`
                                                              ]]
                                              
                                              на первой странице в формите выставил &store=`1`
                                              1. Володя 13 сентября 2016, 18:50 # 0
                                                класс UserFile у превью файлов, помему вы что то напутали.
                                                1. uurussian 14 сентября 2016, 11:26 # 0
                                                  такая же проблема, работает через formit, formit отправляет id, userFiles подбирает его, такое ощущение что ufFrom не обрабатывает id и заливает в папку [[!+fi.id]]. В чем может быть дело?
                                          2. Tanya 30 октября 2016, 20:58 # 0
                                            Скажите пожалуйста, т.к. хотелось бы купить данный компонент, но есть потребность именам файлам давать подписи, есть ли такая возможность здесь? Т.е. если менеджер закачал в админке файл(blabla.docx) мог бы он ему дать название/описание понятное, чтобы на сайте вывелось, например «Правила работы с документами», а не blabla.docx? Также и подписи под картинками, можно их делать? а то из описания компонента я так и не поняла есть ли такая возможность.
                                            1. Андрей П 30 октября 2016, 21:08 # +1
                                              Можно. Вы можете изменить имя файла после загрузки на сервер, а также выводить описание к нему. Расширение файла выводится отдельно и его можно не указывать. За вывод отвечают соответствующие поля, все указаны на странице в магазине. Очень удобно и все продумано. Вообще очень хороший продукт и умеет много.
                                              1. Tanya 30 октября 2016, 22:21 # 0
                                                о, спасибо! имя файла мне менять не надо, а вот описание/название для вывода нужно своё! Если такая возможность есть, то это то, что мне нужно. А можно ещё вопрос, порядок файлов для вывода менять можно? сортировать т.е.
                                                1. Андрей П 31 октября 2016, 01:44 # 0
                                                  Порядок файлов, не поверите, регулируется простым перетаскиванием файла кнопкой мыши в панели управления на другое место. Т.е., в какой очередности Вы видите их в панели, в такой они и будут
                                            2. Андрей 08 января 2017, 16:41 # 0
                                              А можно ли данный компонент использовать в связке со своим сниппетом? Мне необходимо реализовать загрузку файлов на сервер, через форму AjaxForm из простого инпута.
                                              1. Володя 08 января 2017, 16:51 # +1
                                                можно, примерно так
                                                $data = array();
                                                $data['parent'] = 1;
                                                $data['class'] = 'Ticket';
                                                $data['ctx'] = 'web';
                                                $data['action'] = 'file/upload';
                                                $data['list'] = 'form';
                                                $data['createdby'] = '1';
                                                $data['source'] = $modx->getOption('userfiles_source_default');
                                                $data['name'] = 'название';
                                                $data['anonym'] = 1;
                                                $data['propkey'] = 1;
                                                
                                                $data['_file_path'] = '/var/www/temp/www/assets/metallodetectory.jpg';
                                                $data['_file_name'] = 'metallodetectory.jpg';
                                                
                                                $data['properties'] = $modx->toJSON($data);
                                                
                                                $response = $modx->runProcessor('file/upload',
                                                    $data,
                                                    array('processors_path' => MODX_CORE_PATH.'components/userfiles/processors/mgr/')
                                                );
                                                if ($response->isError()) {
                                                    $modx->log(modX::LOG_LEVEL_ERROR, "Error: \n". print_r($response->getAllErrors(), 1));
                                                }
                                                else {
                                                    $modx->log(modX::LOG_LEVEL_INFO, "Success \n". print_r($response->getObject(), 1));
                                                }
                                                
                                                1. Андрей 11 января 2017, 22:24 # 0
                                                  Володя, спасибо.
                                              Вы должны авторизоваться, чтобы оставлять комментарии.