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


Компонент реализует функцию загрузки файлов пользователями сайта.

Компонент полностью переработан, изменения:
  • загрузчик dropzone
  • загрузка файлов c админки сайта
  • загрузка файлов c фронта сайта
  • редактор изображений cropper
  • динамический ресайз изображений
  • копирование ссылок файлов
  • ...
пример загрузки с фронта location.vgrish.ru/index.php?id=24

вкладки компонента
Рабочая область компонента доступна в нескольких местах.
— ресурс

Класс файлов — modResource. Доступна сортировка списку файла, типу и источнику медиа.

— пользователь
Класс файлов — modUser. аналогично вышеописанному.

— вкладка компонента


Доступна сортировка по списку файла, типу и источнику медиа, так же по классу и идентификатору.

основныые настройки компонента
  • source_default — дефолтный источник файлов
  • working_templates — Список id шаблонов через запятую, для которых нужно активировать вкладку с файлами
  • chunk_link_file — Чанк ссылки на файл
  • disable_for_user — Чанк ссылки на изображение

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


параметры сниппета
  • tplForm — Чанк формы
  • class — Класс файла
  • parent — Идентификатор родителя
  • list — Имя списка. К нему будет привязан файл
  • active — Показывать только активные файлы.
  • source — Идентификатор источника медиа для загрузки файлов. По умолчанию будет использован источник, указанный в системной настройке «userfiles_source_default».
  • anonym — Разрешить загрузку файлов анонимам
  • sortby — Поле сортировки.
  • sortdir — Направление сортировки.
  • objectName — Имя объекта для инициализации в подключаемом javascript. По умолчанию «UserFilesForm».
  • frontendCss — Файл с css стилями для подключения на фронтенде.
  • frontendJs — Файл с javascript для подключения на фронтенде.
  • jqueryJs — Файл с Jquery для подключения на фронтенде.
  • actionUrl — Коннектор для обработки ajax запросов.
  • toPlaceholder — Если указан этот параметр, то результат будет сохранен в плейсхолдер, вместо прямого вывода на странице.
  • dropzone — Закодированный в JSON массив с параметрами «Dropzone»
  • modal — Закодированный в JSON массив с параметрами «modal»
Теперь формы и инициализация независимы, можно одновременно вызывать неограниченное кол-во.
Для загрузки файлов с фронта пользователю нужно добавить политику UserFilesPolicy.

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

редактор изображений
В админке сайта доступен редактор изображений.

Можно отредактировать изображение и тут же сохранить.

копирование ссылок файлов
Согласно чанкам указанным в настройках компонента для файлов создаются ссылки.

При клике в буфер обмена будет помещена ссылка на файл и ее тут же можно вставить в текстовый редактор. Достаточно удобно для заполнения.

вывод формы
[[!ufForm?
   &tplForm=`uf.form.sort`
   &list=`image`
   &anonym=`1`
   &dropzone=`{"maxFilesize":2,"maxFiles":3,"acceptedFiles":".jpg, .jpeg, .gif, .png","template":"edit"}`
]]

список файлов
Ранее был сниппет для вывода файлов. В данной версии его нет, так как не вижу в нем необходимости.
Вывести список файлов можно с помощью pdoResources
Пример, выводим список файлов для текущего ресурса и при соединяем превью с размером 222x222

[[!pdoResources?
    &limit=`10`
    &showLog=`0`
    &class=`UserFile`
    &loadModels=`UserFiles`
    &sortby=`rank`
    &sortdir=`ASC`
    &tpl=`@INLINE 
    <div class="item">
        <a href="[[+url]]" target="_blank">[[+name]] - [[+size]]</a>
    </div>`
    &where=`{
        "UserFile.parent":[[*id]],
        "UserFile.createdby":[[!+modx.user.id]]
    }`
    &leftJoin=`{
	"Thumb": {
		"class": "UserFile",
		"on": "Thumb.parent = UserFile.id AND Thumb.properties LIKE '%w\":222,\"h\":222%'"
	}
    }`
    &select=`{
	"UserFile": "*",
	"Thumb": "Thumb.url as thumb"
    }`
]]
список файлов пользователя
[[!pdoResources?
    &limit=`10`
    &showLog=`0`
    &class=`UserFile`
    &loadModels=`UserFiles`
    &sortby=`rank`
    &sortdir=`ASC`
    &tpl=`@INLINE 
    <div class="item">
        <a href="[[+url]]" target="_blank"><img src="[[+thumb]]" title="[[+name]]"></a>
    </div>`
    &where=`{
        "UserFile.class":"modUser",
        "UserFile.parent":[[!+modx.user.id]],
        "UserFile.createdby":[[!+modx.user.id]]
    }`
    &leftJoin=`{
	"Thumb": {
		"class": "UserFile",
		"on": "Thumb.parent = UserFile.id AND Thumb.properties LIKE '%w\":120,\"h\":90%'"
	}
    }`
    &select=`{
	"UserFile": "*",
	"Thumb": "Thumb.url as thumb"
    }`
]]
работа с msProducts
выводим товары и присоединяем первую большую картинку и первую миниатюру
[[!pdoPage?
&showLog=`0`
&element=`msProducts`
&tpl=`products.files`

&loadModels=`UserFiles`
&leftJoin=`{
    "File": {
	    "class": "UserFile",
	    "on": "File.parent = msProduct.id AND File.rank = 0"
    },
    "Thumb": {
	    "class": "UserFile",
	    "on": "Thumb.parent = File.id AND Thumb.properties LIKE '%w\":120,\"h\":90%'"
    }
}`
&select=`{
    "File": "File.url as ufile",
    "Thumb": "Thumb.url as uthumb"
}`
    
]]
галерея файлов
Можно вывести файлы в виде галереи.

<link rel="stylesheet" href="https://yandex.st/jquery/fancybox/2.1.4/jquery.fancybox.min.css" type="text/css" media="screen" />
<script src="https://yandex.st/jquery/fancybox/2.1.4/jquery.fancybox.min.js" type="text/javascript" ></script>
<script>
    $(document).ready(function() {
        $('.fancybox').fancybox();
    });
</script>

<div class="row">
    [[!pdoResources?
    &showLog=`0`
    &limit=`10`
    &class=`UserFile`
    &loadModels=`UserFiles`
    &sortby=`parent,rank`
    &sortdir=`ASC`
    &tpl=`@INLINE 
    <a href="[[+url]]" class="fancybox" rel="gallery" target="_blank"><img src="[[+thumb]]" /></a>
    `
    &where=`{
        "UserFile.parent":[[*id]],
        "UserFile.list":"image"
    }`
    &leftJoin=`{
	"Thumb": {
		"class": "UserFile",
		"on": "Thumb.parent = UserFile.id AND Thumb.properties LIKE '%w\":120,\"h\":90%'"
	}
    }`
    &select=`{
        "UserFile": "*",
	    "Thumb": "Thumb.url as thumb"
    }`
    ]]
</div>  
источник файлов
В источник файлов добавлены настройки
  • fileName — маска имени файла
  • thumbnailName — маска имени превью изображения
  • imageThumbnails — массив с указанием превью
{name} — name изображения.
{id} — id изображения.
{class} — class изображения.
{list} — list изображения.
{session} — session изображения.
{createdby} — createdby изображения.
{source} — source изображения.
{context} — context изображения.
{rand} — случайная строка.
{w} — ширина превью.
{h} — высота превью.
{q} — качество превью.
{f} — расширение превью.
Основное вроде все, если что дополню…

параметры dropzone
Указываются в виде json строки, параметр dropzone сниппета ufForm
&dropzone=`{"maxFilesize":2,"maxFiles":3,"acceptedFiles":".jpg, .jpeg, .gif, .png","template":"edit"}`
  • maxFilesize — максимальный размер файла
  • maxFiles — максимальное кол-во файлов
  • acceptedFiles — тип файлов разрешенных к загрузке
вкладка компонента
Для вывода вкладки компонента на странице ресурса нужно указать соответствующий шаблон ресурса в настройке userfiles_working_templates

upd. 11.03.2016
Добавлен редактор на фронт.

ps. Важно! Компонент не совместим со старой версией, только для свежей установки.
В пакет встроена проверка, при попытке установить на старую версию вы получите ошибку.
26 february 2016, 14:25    Володя   G+  
11    1584 +11

Comments (95)

  1. Wassi Wassinen 26 february 2016, 15:25 # 0
    Это отличный инструмент! Если бы еще у изображений были теги — было бы совсем интересно.

    И зря убрали сниппет для вывода файлов — слишком сложная для простых смертных конструкция джойнов через pdoResources.
    1. Володя 27 february 2016, 09:59 # 0
      Спасибо!
      По сниппету не хочу писать чтоб лишь бы было. Функционально продумаю все варианты, посмотрю.
      По тегам не ясно, если есть желание описать как это по твоему должно работать — trello.com/b/MLRzAKLN/userfiles
    2. Павел Гвоздь 26 february 2016, 16:19 # 0
      Это реально круто! А у меня в планах было реализовать тип ТВ с этим кроппером, уж очень понравился он мне. Опередил. =)
      1. Андрей Сухомозгий 26 february 2016, 16:23 # +1
        круто!!! а будет версия для front'а поддерживать сортировку перетаскиванием?
        1. Володя 27 february 2016, 10:00 # 0
          А какая в этом необходимость?
          1. Андрей Сухомозгий 27 february 2016, 13:35 # +1
            с помощью твоего компонента тогда можно будет сделать полноценную галерею к ресурсу из фронта. потому что сортировка картинок, как у Василия в ms2Gallery, перетаскиванием например — это важная часть любой галереи…
            может я не прав, но мне было бы очень тяжело пользоваться компонентом, позволяющим грузить картинки или файлы, но не позволяющим их сортировать
            1. Володя 27 february 2016, 17:27 # +2
              Обновляйся, теперь с сортировкой на фронте.
              Чтобы активировать сортировку нужно добавить форме атрибут data-sorting=1

              <form class="userfiles-form userfiles-dropzone" id="[[+propkey]]" method="post" action=""
                      data-clickable=".userfiles-form-clickable-[[+propkey]]" data-sorting="1">
              
                      <div class="dz-message needsclick">[[%userfiles_msg_needsclick]]</div>
              </form>
              
        2. Jenya Filimonov 27 february 2016, 09:07 # 0
          Обновился.
          Теперь
          [2016-02-27 09:04:33] (ERROR @ /index.php) [pdoTools] Error 42S22: Unknown column 'UserFile.mime' in 'field list'
          :(

          Чукча не читатель. Чукча — писатель: ))) Дочитал заметку до конца.
          1. Володя 27 february 2016, 09:56 # 0
            там в таблице не большая разница, несколько колонок лишних и одной не хватает.
            Добавил фикс, теперь можно деинсталировать старый пакет и установить новый — должно все работать.
            Загружу чуть позже в магазин, сейчас что то не получается…
            1. Сергей Шлоков 27 february 2016, 10:23 # 0
              modExtra с некоторых пор умеет добавлять новые поля и удалять ненужные автоматом. И индексы, кстати, тоже.
              1. Володя 27 february 2016, 11:24 # 0
                да, спасибо, я в курсе. Как то пробовал, была какая то ругань.
                Я по старинке руками...)
          2. Jenya Filimonov 27 february 2016, 17:57 # 0
            [2016-02-27 17:54:36] (ERROR @ /assets/components/userfiles/connector.php) Array
            (
                [0] => 42S22
                [1] => 1054
                [2] => Unknown column 'UserFile.context' in 'field list'
            )
            Любое изображение при загрузке — пишет что слишком большое.
            Пытаюсь через Selectel настроить как было на старой версии.
            И в настройках медиа пропали настройки изображения, размеров превью.
            1. Володя 27 february 2016, 18:17 # 0
              Отпиши в ТП или на почту и приложи доступы к админке. Разберусь в чем дело.
              Спасибо!
              1. Jenya Filimonov 29 february 2016, 09:32 # +1
                Спасибо большое за помощь, Володя!
                Отличный компонент. Отличная поддержка отнявшая у тебя кучу времени (надеюсь и на пользу компоненту, а не только мне))).
                И кстати компонент стал очень даже симпатичным с последним обновлением, внешне.
                1. Володя 29 february 2016, 10:16 # +1
                  Спасибо за положительный отзыв!
                  Конечно все на пользу компоненту )))
            2. Володя 10 march 2016, 23:17 # +1
              Добавил редактор на фронт.

              Можно протестировать тут location.vgrish.ru/index.php?id=24
              1. Володя 11 march 2016, 12:19 # 0
                Доступно в репозитории — можно обновляться.
                1. Jenya Filimonov 20 march 2016, 12:29 # 0
                  не очень понимаю где у нас указывается List в вызове для просмотра загруженных файлов (в части с PdoResources).
                  1. Володя 20 march 2016, 12:33 # +1
                    в where
                    &where=`{
                            "UserFile.list":"image"
                    }`
                    
                    1. Jenya Filimonov 20 march 2016, 12:35 # 0
                      Пасибо: )
                      1. Jenya Filimonov 20 march 2016, 12:50 # 0
                        Еще последний вопрос.
                        Как вот эту часть
                        &tpl=`@INLINE 
                            <div class="item">
                                <a href="[[+url]]" target="_blank">[[+name]] - [[+size]]</a>
                            </div>`
                        Заменить на вывод превьюшек? Текстовым списком картинки выводить не очень хорошо. А у меня получается только превью+картинки вывести.
                        1. Володя 20 march 2016, 13:03 # 0
                          приджойнить необходимые превью и указать в чанке. Например нам необходимы превью размером
                          222x222
                          &leftJoin=`{
                          	"Thumb": {
                          		"class": "UserFile",
                          		"on": "Thumb.parent = UserFile.id AND Thumb.properties LIKE '%w\":222,\"h\":222%'"
                          	}
                              }`
                          &select=`{
                          	"Thumb": "Thumb.url as thumb"
                              }`
                          
                          в чанке указываем как
                          [[+thumb]]
                          1. Jenya Filimonov 20 march 2016, 17:59 # 0
                            [[!pdoResources?
                                &limit=`10`
                                &showLog=`0`
                                &class=`UserFile`
                                &loadModels=`UserFiles`
                                &sortby=`rank`
                                &sortdir=`ASC`
                                &tpl=`@INLINE 
                                <div class="item">
                                    <a href="[[+url]]" target="_blank"><img src="[[+thumb]]" /></a>
                                </div>`
                                &where=`{
                                    "UserFile.list":"gallery"
                                        }`
                                &leftJoin=`{
                            	"Thumb": {
                            		"class": "UserFile",
                            		"on": "Thumb.parent = UserFile.id AND Thumb.properties LIKE '%w\":120,\"h\":90%'"
                            	}
                                }`
                                &select=`{
                            	"Thumb": "Thumb.url as thumb"
                                }`
                            ]]
                            Так выводятся превью. Только клик по ним никуда не ведет: (
                            1. Jenya Filimonov 20 march 2016, 18:16 # 0
                              Сделал. Вот так работает. Руки у меня такие…
                              [[!pdoResources?
                                  &limit=`10`
                                  &showLog=`0`
                                  &class=`UserFile`
                                  &loadModels=`UserFiles`
                                  &sortby=`rank`
                                  &sortdir=`ASC`
                                  &tpl=`@INLINE 
                              <a href="[[+url]]" title="[[+name]]" target="_blank">
                              	<img src="[[+thumb]]" class="userfiles-link-image"/>
                              </a>`
                                  &where=`{
                                      "UserFile.list":"gallery"
                                          }`
                                  &leftJoin=`{
                              	"Thumb": {
                              		"class": "UserFile",
                              		"on": "Thumb.parent = UserFile.id AND Thumb.properties LIKE '%w\":120,\"h\":90%'"
                              	}
                                  }`
                                  &select=`{
                              	"UserFile": "*",
                              	"Thumb": "Thumb.url as thumb"
                                  }`
                              ]]
                              1. Володя 20 march 2016, 18:18 # +1
                                ага, пока писал вы уже разобрались)
                                1. Jenya Filimonov 20 march 2016, 18:22 # 0
                                  Меня только смущает, что во фронте вижу 2 превьюшки свои.
                                  Но если смотреть код сгенерированной странички, то там вместо 2 ссылок, делается 4.
                                  Сначала правильная ссылка а потом сразу вторая с пустым img
                                  <div class="item">
                                          <a href="/assets/userfiles/gallery/modresource/1/e9da1819e6db378f3ecd129116bb9709cc8806ae.skmz.jpg" target="_blank"><img src="/assets/userfiles/gallery/modresource/1/e9da1819e6db378f3ecd129116bb9709cc8806ae.skmz.pfez.120.90.jpg"></a>
                                      </div>
                                  <div class="item">
                                          <a href="/assets/userfiles/gallery/modresource/1/e9da1819e6db378f3ecd129116bb9709cc8806ae.skmz.pfez.120.90.jpg" target="_blank"><img src=""></a>
                                      </div>
                                  Посмотрел, у вас такого не происходит: ( Где то я опять накосячил.
                                  1. Володя 20 march 2016, 18:31 # +1
                                    добавьте
                                    &sortby=`parent,rank`
                                    
                                    1. Jenya Filimonov 20 march 2016, 18:51 # +1
                                      Спасибо! Проблема решена: )
                                2. Володя 20 march 2016, 18:17 # 0
                                  добавьте еще в select
                                  "UserFile": "*",
                                  
                                  будет в итоге так
                                  [[!pdoResources?
                                      &limit=`10`
                                      &showLog=`0`
                                      &class=`UserFile`
                                      &loadModels=`UserFiles`
                                      &sortby=`rank`
                                      &sortdir=`ASC`
                                      &tpl=`@INLINE 
                                      <div class="item">
                                          <a href="[[+url]]" target="_blank"><img src="[[+thumb]]" /></a>
                                      </div>`
                                      &where=`{
                                          "UserFile.list":"gallery"
                                              }`
                                      &leftJoin=`{
                                  	"Thumb": {
                                  		"class": "UserFile",
                                  		"on": "Thumb.parent = UserFile.id AND Thumb.properties LIKE '%w\":120,\"h\":90%'"
                                  	}
                                      }`
                                      &select=`{
                                  	"UserFile": "*",
                                  	"Thumb": "Thumb.url as thumb"
                                      }`
                                  ]]
                                  
                                  можно добавить ссылкам класс
                                  class="fancybox"
                                  
                                  подключить fancybox к примеру
                                  <link rel="stylesheet" href="https://yandex.st/jquery/fancybox/2.1.4/jquery.fancybox.min.css" type="text/css" media="screen" />
                                  <script src="https://yandex.st/jquery/fancybox/2.1.4/jquery.fancybox.min.js" type="text/javascript" ></script>
                                      
                                  <script>
                                      $(document).ready(function() {
                                          $('.fancybox').fancybox();
                                      });
                                  </script>
                                  
                                  и получите работающую галерею, пример тут
                                  location.vgrish.ru/index.php?id=24
                      2. Алексей 24 march 2016, 19:19 # 0
                        Возможно ли автоматически поворачивать изображения загруженные с айфона? (по данным EXIF изображения)
                        Подобно как сделано тут: modx.pro/solutions/7234-tickets-auto-orientation-when-loading/
                        1. Володя 30 march 2016, 00:08 # 0
                          Доброй ночи. У меня нет айфона.
                          Напишите на почту, приложите снимки с описанием того где какой поворот изображения. Я попробую сделать.
                          Спасибо!
                        2. Юрий 30 march 2016, 00:04 # 0
                          Как именно это дополнение обрабатывает файл загружаемого изображения при кроппинге. Я выбираю на картинке область обрезки. Что скрипт делает дальше? Сохраняет обрезанную часть или сохраняет исходное изображение, а в БД заносит координаты выбранной области (так делает image+)?
                          1. Володя 30 march 2016, 00:06 # 0
                            Сохраняет обрезанную часть. Посмотреть можно тут — location.vgrish.ru/index.php?id=24
                          2. Олег 06 april 2016, 14:34 # 0
                            После завершения загрузки изображения, оно пропадает из списка

                            <?=$modx->runSnippet('ufForm', array(
                            	"anonym" => '1' ,
                            	"list" => 'image' ,
                            	"tplForm" => 'uf.form' ,
                            	"source" => 8, //    "assets/images/goods/"
                            	"dropzone" => '{"maxFilesize":10,"maxFiles":3,"acceptedFiles":".jpg, .jpeg, .gif, .png","template":"edit"}' ,
                            ))?>
                            1. Володя 06 april 2016, 15:43 # 0
                              Не совсем понял что и куда пропадает. Поясните точнее что вы хотите сделать.
                              Если что то не выходит — можно обратиться в ТП.
                              1. Олег 13 april 2016, 14:13 # 0
                                В итоге разобрался перелопатив весь код. В итоге теперь он работает с MIGx, создаёт дубликат картинки с вотермаркой по указанному пути, создает имя файла картинки используя alias ресурса, к которому она прикреплена
                              2. Павел Гвоздь 30 may 2016, 01:02 # +2
                                Чтобы ufForm не мешал работать нативным модалкам Bootstrap, надо прописать это где-нибудь в шапке:
                                <script>
                                    jQuery.Modal = jQuery.Modal || true;
                                </script>

                                Надеюсь автор поправит этот неприятный момент в новой версии.
                                1. Володя 30 may 2016, 11:26 # 0
                                  там неправильная проверка была. Поправил, спасибо!
                                2. Павел Гвоздь 30 may 2016, 23:47 # 0
                                  Володя, а возможно при вызове сниппета как-то отключить ручную сортировку файлов?
                                  1. Там параметр есть data-sorting=«1», он по умолчанию отсутствует в чанке формы. Он отвечает за сортировку.
                                    1. Павел Гвоздь 31 may 2016, 00:44 # 0
                                      Отлично, спасибо!
                                  2. Алексей 23 june 2016, 15:04 # 0
                                    возможно ли изменить родителя изображения с фронта? (к примеру выбрать из выпадающего списка ресурсов сайта, из определенной категории)
                                    1. Володя 23 june 2016, 16:06 # 0
                                      теоретически да, возможно, нужно только подправить update процессор, сейчас там родитель перезатирается.
                                      Затем сделать подгрузку класса родителя и списка родителей.
                                      1. Алексей 23 june 2016, 16:17 # 0
                                        а практически это сколько будет стоить?
                                        1. Володя 23 june 2016, 17:01 # 0
                                          6 тр.
                                    2. anton 18 august 2016, 17:18 # 0
                                      Можно ли сделать загрузку файлов не на свой сервер, а на амазон s3?
                                      1. Максим Кузнецов 18 august 2016, 19:35 # 0
                                        Вкупе со swift — да, без проблем.
                                        1. anton 18 august 2016, 23:02 # 0
                                          Спасибо!

                                          Мне нужно чтобы пользователи загружали фотографии, при этом для каждого пользователя должна создаваться своя папка, с двумя подпапками, без доступа к другим папкам. Так получится штатными методами?
                                          1. Володя 18 august 2016, 23:26 # 0
                                            Указываете нужный список файлов — получите примерно вот такую структуру
                                      2. Максим Кузнецов 22 august 2016, 16:56 # 0
                                        Подскажите пожалуйста, можно ли дополнительно классифицировать загруженные изображения, помимо параметра list?

                                        Для чего:

                                        Я использую UserFiles для прикрепления изображений к комментариям Tickets со следующей логикой:
                                        — при первичной загрузки (до публикации комментария), изображения подцепляются к пользователю (modUser) в list вида «comment-(айди ресурса)»
                                        — при публикации комментария плагин переопределяет class изображений на modResource (чтобы при удалении или любых других действий с ресурсом, эффект распространялся и на изображения в комментариях) и заменяю list на «comment-(айди комментария)»
                                        — при вызове TicketComments цепляю изображения по Thumbs.list = TicketComment.id

                                        Все работает хорошо, за исключением того, что в бэкэнде в селекторе выбора list начинает храниться огромное множество вариантов вида «comment-id».
                                        Пока решил проблему, расширив стандартную таблицу UserFiles, но было бы очень здорово, если бы из коробки была возможность теггирования или любых других способов дополнительной персонализации изображения.
                                        1. eflit 15 october 2016, 19:08 # 0
                                          Доброго времени суток есть проблемка при выводе фото определенного ресурса выводится и фото софсем другого ресурса вот код

                                          [[!pdoResources?
                                          &limit=`25`
                                          &showLog=`0`
                                          &class=`UserFile`
                                          &loadModels=`UserFiles`
                                          &sortby=`parent,rank`
                                          &sortdir=`ASC`
                                          &tpl=`@INLINE

                                          `

                                          &where=`{
                                          «UserFile.parent»:[[*id]],
                                          «UserFile.list»:«img»
                                          }`
                                          ]]
                                          может кто знает как помочь
                                          1. Володя 15 october 2016, 19:23 # 0
                                            попробуйте дополнить условие
                                            "UserFile.class":"modResource"
                                            
                                            1. eflit 15 october 2016, 19:48 # 0
                                              Спасибо получилось но вот еще заметил проблему после обновления компонента до последней весии 2.2.8 при загрузке фото к ресурсу фото загружается но после обновления странички из формы пропадает вот код формы как загружаю
                                              [[!ufform?
                                              &dropzone=`{«maxFilesize»:2,«maxFiles»:1,«acceptedFiles»:".jpg, .jpeg, .gif, .png",«template»:«edit»}`
                                              &classFile=`modresource`
                                              &list =`priv`
                                              &parent=`[[+id]]`
                                              &onlyCreatedby=`1`
                                              ]]
                                              и файл загружается в лист priv и в папку article/id а не modresource/id
                                              1. Володя 15 october 2016, 21:50 # 0
                                                да, есть косяк, завтра с утра поправлю и отпишу.
                                                1. eflit 15 october 2016, 21:53 # 0
                                                  Спасибо буду ждать там проблема вся в том что при загрузке фото грузится в article если бы была возможность установить в какой class грузить фото проблема была бы решена
                                                  1. Володя 15 october 2016, 22:08 # 0
                                                    фото грузится в article
                                                    что за article?
                                                    1. eflit 15 october 2016, 22:16 # 0
                                                      компонент article и получается когда я к нему подгружаю фото то он создает class в list и загружает тут да фото то есть путь загрузки userfile/priv/article/id а нужно чтобы userfile/priv/modresource/id
                                                      1. Володя 15 october 2016, 22:19 # 0
                                                        да, там в новой версии class правится на class_key с этим все нормально. А в сниппете у вас modresource. Завтра фикс какой-нибудь сделаю.
                                                        1. eflit 15 october 2016, 22:24 # 0
                                                          Да все нормально разобрался со всем спасибо тупанул немного )
                                          2. eflit 17 october 2016, 12:32 # 0
                                            Добрый день скажите есть такая возможность наложения логотипа на фото при выводе?
                                            1. Володя 17 october 2016, 13:44 # 0
                                              при выводе? Наверно можно с помощью phpthumb.
                                              modx.pro/search?query=phpthumb+вотермарк
                                              1. eflit 17 october 2016, 14:40 # 0
                                                что то не выходит

                                                [[!pdoResources?
                                                &limit=`25`
                                                &showLog=`0`
                                                &class=`UserFile`
                                                &loadModels=`UserFiles`
                                                &sortby=`parent,rank`
                                                &sortdir=`ASC`
                                                &tpl=`@INLINE

                                                alt="[[+name]]" src="[[+url:phpthumbof=`&w=744&h=370&zc=1&q=60&fltr[]=wmi|/path/to/image.png|BR|70|5|5|0`]]" data-image="[[+url]]" data-description="[[+name]]"`

                                                &where=`{
                                                «UserFile.parent»:[[*id]],
                                                «UserFile.list»:«img»,
                                                «UserFile.class»:«modResource»
                                                }`
                                                ]]
                                                1. Володя 17 october 2016, 14:55 # 0
                                                  — используйте тег code для оформления сообщений
                                                  — попробуйте создать обычный чанк а не INLINE
                                            2. eflit 26 october 2016, 15:22 # 0
                                              подскажите пожалуйста можно как-то реализовать сжатие фото при загрузке? чтобы они принимали размер допустим 800х600.
                                              1. Володя 26 october 2016, 16:46 # 0
                                                добавьте параметр imageMainThumbnail в источник медиа и задайте ему необходимые параметры
                                                например
                                                {"w":800,"h":800,"q":90,"zc":"1","bg":"fff"}
                                                
                                              2. Азамат 01 november 2016, 23:57 # 0
                                                Подскажите, пожалуйста, как из фронтэнда корректно удалить уже загруженное изображение? Возможно ли, чтоб в области загрузки были все файлы для этого ресурса?
                                                1. Володя 02 november 2016, 08:35 # 0
                                                  так они и так доступны для удаления в форме загрузки. Или я не понял что вам необходимо.
                                                  1. Азамат 02 november 2016, 10:31 # 0
                                                    разобрался! прошу прощения, проигнорировал параметр «list». больше ничего и не надо — отличное дополнение!
                                                2. eflit 08 november 2016, 14:21 # 0
                                                  Подскажите возможно как то сделать при выводе фото чтобы формировался и кеш md5 фотографии
                                                  1. Володя 08 november 2016, 14:39 # 0
                                                    у файла есть поле hash используйте его.
                                                    Или объясните подробнее что необходимо.
                                                    1. eflit 08 november 2016, 15:04 # 0
                                                      Смотрите я вывожу файлы (фото)
                                                      [[!pdoResources?
                                                          &limit=`25`
                                                          &showLog=`0`
                                                          &class=`UserFile`
                                                          &loadModels=`UserFiles`
                                                          &sortby=`parent,rank`
                                                          &sortdir=`ASC`
                                                          &tpl=`Planthotoirrby`
                                                      
                                                          &where=`{
                                                      "UserFile.parent":[[+id]],
                                                      "UserFile.list":"plan",
                                                      "UserFile.class":"modResource"
                                                          }`
                                                      ]]
                                                      
                                                      код чанки Planthotoirrby
                                                      <foto-remote md5="[[+url:phpthumbon=`w=800&h=600&zc=1&fltr[]=wmi|/assets/wlogo.png|BR|70|5|5|0`:md5]]" url="[[+url:phpthumbon=`w=800`]]"/>
                                                      там где url выводится путь к файлу а где md5 там нужно чтобы выводился md5 кеш файла.

                                                      1. Андрей П 08 november 2016, 15:59 # 0
                                                        Позвольте поинтересоваться, зачем Вам phpthumbon? Разве средствами UserFiles нельзя сделать вывод картинок нужного разрешения?
                                                        1. eflit 08 november 2016, 16:12 # 0
                                                          можно но тут момент есть у меня уже много загруженных фото нужно чтобы они выводились так будет ли работать на все фото которые уже загружены я так понимаю размер формируется при загрузке.
                                                        2. Володя 08 november 2016, 20:34 # 0
                                                          от чего вам нужно брать md5? и зачем?
                                                    2. Антон 25 november 2016, 02:30 # 0
                                                      Есть возможность простой загрузки файлов без редактора? Например, тот же jpg.
                                                      Нужно чтобы к товару добавлялась только ссылка на файл.
                                                      1. Володя 25 november 2016, 07:41 # 0
                                                        конечно. Редактор вызывается через меню.
                                                        1. Антон 25 november 2016, 21:44 # 0
                                                          А можно настроить без плясок с бубном чтобы файлы сразу на селектел заливались?
                                                          А в товар приходила только ссылка на файл.
                                                          Желательно с размером.
                                                          1. Володя 27 november 2016, 10:12 # 0
                                                            настроить медиасорс под селектел и назначить его по умолчанию.
                                                      2. eflit 02 december 2016, 03:37 # 0
                                                        md5 нужен для того чтобы при выгрузке через xml выдавался md5 фото и при обновлениях не возникало вопросов с фото. md5 код фото формирую через сниппет код сниппета мб кому пригодится
                                                        return md5_file($scriptProperties['file'])
                                                        1. Володя 02 december 2016, 08:43 # 0
                                                          хорошо что разобрались.
                                                        2. eflit 03 december 2016, 17:58 # 0
                                                          Подскажите обновил компонент до последней версии и теперь при загрузке фото выдает

                                                          [2016-12-03 17:59:28] (ERROR @ /home/cyzja/www/phpbbfor/core/xpdo/xpdo.class.php: 1318) Could not get table class for class: modresource
                                                          [2016-12-03 17:59:28] (ERROR @ /home/cyzja/www/phpbbfor/core/xpdo/xpdo.class.php: 1287) Could not get table name for class: modresource
                                                          [2016-12-03 17:59:28] (ERROR @ /home/cyzja/www/phpbbfor/core/xpdo/om/xpdoobject.class.php: 240) Error 42000 executing statement:
                                                          Array
                                                          (
                                                          [0] => 42000
                                                          [1] => 1064
                                                          [2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS `modresource` WHERE `modresource`.`id` = 3129' at line 1
                                                          )
                                                          1. eflit 04 december 2016, 15:59 # 0
                                                            Вопрос снимаю проблема то что класс нужно было назвать правильно modResource большая R
                                                            1. eflit 04 december 2016, 17:45 # 0
                                                              еще вопрос код формы
                                                              [[!ufform?
                                                              &class=`modResource`
                                                              &list =`plan`
                                                              &parent=`[[+id]]`
                                                              &onlyCreatedby=`1`
                                                              &dropzone=`{"maxFilesize":4,"maxFiles":5,"acceptedFiles":".jpg, .jpeg, .gif, .png","template":"edit"}` 
                                                              ]]	
                                                              а почему файлы грузятся в article/id
                                                              1. Володя 05 december 2016, 10:15 # 0
                                                                если у class есть поле class_key то оно заменяется его значением. Наверно у вас class_key ресурса — article
                                                                1. eflit 05 december 2016, 11:20 # 0
                                                                  а как мне сменить чтобы грузились фото в modresource?
                                                                  1. Володя 05 december 2016, 11:33 # 0
                                                                    на данный момент никак, в коде зашито что путь состоит из
                                                                    'list', 'class', 'parent'
                                                                    
                                                              2. eflit 05 december 2016, 11:41 # 0
                                                                смотрите а когда вот так

                                                                [[!ufform?
                                                                &class=`modresource`
                                                                &list =`plan`
                                                                &parent=`[[+id]]`
                                                                &onlyCreatedby=`1`
                                                                &dropzone=`{«maxFilesize»:4,«maxFiles»:5,«acceptedFiles»:".jpg, .jpeg, .gif, .png",«template»:«edit»}`
                                                                ]]

                                                                то грузится норм но выдает ошибку

                                                                [2016-12-03 17:59:28] (ERROR @ /home/cyzja/www/phpbbfor/core/xpdo/xpdo.class.php: 1318) Could not get table class for class: modresource
                                                                [2016-12-03 17:59:28] (ERROR @ /home/cyzja/www/phpbbfor/core/xpdo/xpdo.class.php: 1287) Could not get table name for class: modresource
                                                                [2016-12-03 17:59:28] (ERROR @ /home/cyzja/www/phpbbfor/core/xpdo/om/xpdoobject.class.php: 240) Error 42000 executing statement:
                                                                Array
                                                                (
                                                                [0] => 42000
                                                                [1] => 1064
                                                                [2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS `modresource` WHERE `modresource`.`id` = 3129' at line 1
                                                                )

                                                                может ее как-то можно поправить?

                                                                1. Володя 05 december 2016, 12:08 # +1
                                                                  Добавил настройку process_class, выставьте ее в нет и класс не будет обрабатываться.
                                                                2. eflit 05 december 2016, 12:18 # 0
                                                                  Огромное спасибо теперь все нормально.
                                                                  1. eflit 14 december 2016, 12:23 # 0
                                                                    Подскажите добавил сортировку на фронтенде

                                                                    <div class="userfiles-form-wrapper">
                                                                    
                                                                        <form class="userfiles-form userfiles-dropzone" id="[[+propkey]]" method="post" action=""
                                                                              data-clickable=".userfiles-form-clickable-[[+propkey]]" data-sorting="1">
                                                                    
                                                                            <div class="dz-message needsclick">[[%userfiles_msg_needsclick]]</div>
                                                                    
                                                                        </form>
                                                                    
                                                                        <a class="userfiles-form-clickable userfiles-form-clickable-[[+propkey]]">[[%userfiles_msg_select_files]]</a>
                                                                    
                                                                    </div>
                                                                    
                                                                    но сортирует с шагом в одну фото то есть первую фото я не могу поставить 10 и на оборот в чем может быть проблема?
                                                                    1. Володя 14 december 2016, 12:33 # 0
                                                                      напишите в ТП с указанием доступов к сайту и странице где можно увидеть данную проблему.
                                                                      Спасибо!
                                                                      1. eflit 14 december 2016, 12:47 # 0
                                                                        написал
                                                                    2. amotev 26 january 2017, 18:38 # 0
                                                                      Вызов
                                                                      [[!ufForm?
                                                                      &tplForm=`uploadForm`
                                                                      &class=`UserFile`
                                                                      &list=`upload`
                                                                      &anonym=`1`
                                                                      &dropzone=`{«maxFilesize»:3,«maxFiles»:1,«acceptedFiles»:".zip,.rar"}`
                                                                      ]]

                                                                      При открытии страницы с формой выдает ошибку «Доступ запрещен». Уже все перерыл.
                                                                      1. Володя 26 january 2017, 19:22 # 0
                                                                        Во первых убрать class UserFile из вызова сниппета, во вторых для анонимов добавить

                                                                        все…
                                                                      You need to login to create comments.