[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. Вкратце вся информация. Будут вопросы — задавайте.
Компонент доступен в репозитории на платной основе.
Особенности:
— добавление файлов к любому виду ресурса
— добавление файлов к пользователю
— интеграция с [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. Вкратце вся информация. Будут вопросы — задавайте.
Компонент доступен в репозитории на платной основе.
Комментарии: 79
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Спасибо, СУПЕР! Давно ждал такой возможности — даже и не ожидал, что она будет такой удобной!!!
Пожалуйста!
Пока не продумывал этот функционал, возможно стоит сделать просто настройку кому на данном ресурсе возможно загружать файлы…
Но намой взгляд самое большое преимущество это предоставлять возможность доступа для редактирования/создания/чтения файлов.
У вас есть в голове какое то свое представление о чем либо, и вы считаете всем это понятно?
каких блин папок? каких комментариев?
Пишите доступным языком, с подробностями, с зарисовками… хз с чем еще… Но чтоб можно было понять о чем вы говорите.
Спасибо!
Возможно сделать как аналог Dropbox, только для личного пользования, т.е. для зарегистрированных пользователей
Подскажите почему выскакивает сообщение , хотя он указан
То есть вы хотите подгрузить файлы на пользователя с id 211. Он у вас существует? Думаю нет, оттого вам и выводится предупреждение…
Подскажите появиться ли:
— Вывод даты загруженного файла,
— Появиться ли возможность замены файла при совпадении (с возможностью выбора).
вывести дату можно через [[+createdon]]
возможность замены при совпадении пока не думаю что актуально…
Можно установить и попробовать…
ps. попробовал по статье Василия — работает. Посмотреть тут — s1686.h3.modhost.pro/index.php?id=1
Я попробовал прикрутить его «в лоб», просто воткнул вызов
внутрь разметки формы, но у меня ничего хорошего не вышло.
Индикатор загрузки показывает, время от времени, что файл грузится, но имя его не появляется и во вкладке UserFiles родительского ресурса он не появляется.
Появляется красное окошечко с ошибкой «UF_ERR_FORM_KEY»
Если все же представить что они авторизовываются то зачем втыкать форму загрузки в форму отправки письма? Судя по тому что выдает ошибку вы ее вызываете через AjaxForm он и убирает регуляркой ключ формы загрузки файлов.
Постарайтесь пожалуйста точнее выразить что вам необходимо получить в итоге… и тогда я смогу вам точнее подсказать.
Спасибо!
Что хотелось бы получить в идеале:
Есть система сбора заказов на услуги. Потенциальный клиент получает ссылку на анкету и заполняет её, прикрепляя необходимые документы. В принципе, пользователя пока ещё не существует, он формируется только после обработки заявки.
Если без регистрации нельзя, то в принципе, это тоже решаемо, можно цеплять на менеджера, а потом создавать клиентов и перекидывать файлы на них. /тогда попутный вопрос, как лучше сделать переброску?/ Я так понимаю, что основная привязка тут должна быть через имя списка.
Форма заявки сейчас обрабатывается FormIt`ом, но загрузки файлов пока нет, файлы хотелось бы подгрузить через UserFiles.
Попутно встает вопрос передачи списка загруженных файлов в текст письма и самих файлов во вложения (не обязательно, но желательно).
Потом, по ходу обработки заказа, заказчики могут подгружать ещё документы уже на свой оформленный заказ, но уже в других формах и с регистрацией.
Спасибо.
Анкета — это и есть заявка, она сохраняется в базу, копия — клиенту мылом.
Как сцепить UserFiles с Formit`ом? Чтобы обе формы работали.
Остается вопрос передачи данных в анкету, чтобы formit всё вместе закинул в базу.
Мне кажется, было бы удобно иметь массив плейсхолдеров, типа:
[[+сколько_файлов_загружено]],
[[+имя_файла_до_загрузки_1]], [[+имя_файла_после_загрузки_1]]
…
[[+имя_файла_до_загрузки_N]], [[+имя_файла_после_загрузки_N]]
Тогда это можно использовать дальше, как вздумается, в том числе закинуть в нужные поля базы данных.
А версия UserFiles не обновилась, что-то он у меня обновляться не хочет?
а класс- это classFile? либо modResource либо modUser?
если в режиме modResource:
то parent — ID ресурса
если в режиме modUser:
то parent — ID юзера?
там же есть поле еще createby — оно вроде хорошо заполняется ID юзера, загрузившего имэйдж
Немного непонятно) документации нет, и свойствах сниппета UF.form тоже все не тривиально описано (в параметрах сниппета, хоть и по русски)))
parent — соответственно id вышеупомянутого объекта
да.
именно пускай там и будет ID юзера, загрузившего имэйдж.
спрашивайте что непонятно, конечно отвечу…
можно вызвать несколько сниппетов UF.form на страничке, только ради того чтобы указать разные имена списков list? или как это лучше реализовать?
ну вообще с наскоку этот вариант не сработал )
а есть необходимость в таком? Просто тут хотел немного подрихтовать данный пакет, возможно и такую штуку доработаю.
У меня есть страничка для загрузки картинок пользователем к себе на страницу. У него на странице картинки отображаются в виде галереи. Допустим что таких пользователей много, у каждого свои картинки.
Есть отдельный ресурс, где я вывожу все картинки пользователей в куче — общая галерея.
Но это если ресурс у галереи один, например «Фотографии». А если ресурсов несколько? «Фотографии природы», «Фотографии детей». Есть шанс как то раскидывать фотографии пользователей по нужным ресурсам? или как то давать им этот выбор?
Ну и для вывода тоже указываешь, какой list тебе нужен
и чтобы была возможность выбрать на какой ресурс отправить изображение? или какой то иной способ есть
Это был хороший день, столько вопросов разрешил, прям как ребенок спать буду!
Очень сильное чувство, что дело в phpThumb, но там тоже не нашел где выставить размеры: (
Действительно, все там и там надо было начинать решать проблему…
&list_max_count=`` не работает
И вообще где хоть какое-то подобие инструкции?
Купил, чтобы ускорить работу, а все только затормозилось… неприятно и мне вылилось в другие в том числе финансовые издержки.
var UserFilesForm = {
config: {
dropzone: {
…
maxFiles: 1,
…
за загрузку файлов отвечает dropzone, принимает параметры в виде json строки
Notice: Undefined index: mgr in .../public_html/core/components/userfiles/model/userfiles/systems/userfilesplugin.class.php on line 29
Подскажите пожалуйста куда копать, при открытии ресурса notice (в админке только наблюдается)
Посмотрите вот тут примеры выборки с помощью pdoResources
modx.pro/components/8021-userfiles-user-files/
$res = $modx->runSnippet('pdoResources', array(
'class'=>`UserFile`,
'loadModels'=>`UserFiles`,
'tpl'=>'@INLINE [[+url]]',
'where=>array('UserFile.parent' => $modx->user->get('id')),
);
пробовал несколько подобных схем, ни одна не заработала.
$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()
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
Как только сносишь компонент — все работает как надо. Как быстро поправить?
понять не могу в какой момент это случилось. В итоге при выводе фото ресурса с записью UserFile берется фотка следующего ресурса.
Механизм такой, сначала на одной странице пользователь забивает поля и при нажатии на сабмит создается ресурс, затем на следующей странице пользователь заливает фото код вывода формы ниже:
на первой странице в формите выставил &store=`1`