[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 февраля 2016, 14:25    Володя   G+  
11    2342 +11

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

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

    И зря убрали сниппет для вывода файлов — слишком сложная для простых смертных конструкция джойнов через pdoResources.
    1. Володя 27 февраля 2016, 09:59 # 0
      Спасибо!
      По сниппету не хочу писать чтоб лишь бы было. Функционально продумаю все варианты, посмотрю.
      По тегам не ясно, если есть желание описать как это по твоему должно работать — trello.com/b/MLRzAKLN/userfiles
    2. Павел Гвоздь 26 февраля 2016, 16:19 # 0
      Это реально круто! А у меня в планах было реализовать тип ТВ с этим кроппером, уж очень понравился он мне. Опередил. =)
      1. Андрей Сухомозгий 26 февраля 2016, 16:23 # +1
        круто!!! а будет версия для front'а поддерживать сортировку перетаскиванием?
        1. Володя 27 февраля 2016, 10:00 # 0
          А какая в этом необходимость?
          1. Андрей Сухомозгий 27 февраля 2016, 13:35 # +1
            с помощью твоего компонента тогда можно будет сделать полноценную галерею к ресурсу из фронта. потому что сортировка картинок, как у Василия в ms2Gallery, перетаскиванием например — это важная часть любой галереи…
            может я не прав, но мне было бы очень тяжело пользоваться компонентом, позволяющим грузить картинки или файлы, но не позволяющим их сортировать
            1. Володя 27 февраля 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 февраля 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 февраля 2016, 09:56 # 0
            там в таблице не большая разница, несколько колонок лишних и одной не хватает.
            Добавил фикс, теперь можно деинсталировать старый пакет и установить новый — должно все работать.
            Загружу чуть позже в магазин, сейчас что то не получается…
            1. Сергей Шлоков 27 февраля 2016, 10:23 # 0
              modExtra с некоторых пор умеет добавлять новые поля и удалять ненужные автоматом. И индексы, кстати, тоже.
              1. Володя 27 февраля 2016, 11:24 # 0
                да, спасибо, я в курсе. Как то пробовал, была какая то ругань.
                Я по старинке руками...)
          2. Jenya Filimonov 27 февраля 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 февраля 2016, 18:17 # 0
              Отпиши в ТП или на почту и приложи доступы к админке. Разберусь в чем дело.
              Спасибо!
              1. Jenya Filimonov 29 февраля 2016, 09:32 # +1
                Спасибо большое за помощь, Володя!
                Отличный компонент. Отличная поддержка отнявшая у тебя кучу времени (надеюсь и на пользу компоненту, а не только мне))).
                И кстати компонент стал очень даже симпатичным с последним обновлением, внешне.
                1. Володя 29 февраля 2016, 10:16 # +1
                  Спасибо за положительный отзыв!
                  Конечно все на пользу компоненту )))
            2. Володя 10 марта 2016, 23:17 # +1
              Добавил редактор на фронт.

              Можно протестировать тут location.vgrish.ru/index.php?id=24
              1. Володя 11 марта 2016, 12:19 # 0
                Доступно в репозитории — можно обновляться.
                1. Jenya Filimonov 20 марта 2016, 12:29 # 0
                  не очень понимаю где у нас указывается List в вызове для просмотра загруженных файлов (в части с PdoResources).
                  1. Володя 20 марта 2016, 12:33 # +1
                    в where
                    &where=`{
                            "UserFile.list":"image"
                    }`
                    
                    1. Jenya Filimonov 20 марта 2016, 12:35 # 0
                      Пасибо: )
                      1. Jenya Filimonov 20 марта 2016, 12:50 # 0
                        Еще последний вопрос.
                        Как вот эту часть
                        &tpl=`@INLINE 
                            <div class="item">
                                <a href="[[+url]]" target="_blank">[[+name]] - [[+size]]</a>
                            </div>`
                        Заменить на вывод превьюшек? Текстовым списком картинки выводить не очень хорошо. А у меня получается только превью+картинки вывести.
                        1. Володя 20 марта 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 марта 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 марта 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 марта 2016, 18:18 # +1
                                ага, пока писал вы уже разобрались)
                                1. Jenya Filimonov 20 марта 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 марта 2016, 18:31 # +1
                                    добавьте
                                    &sortby=`parent,rank`
                                    
                                    1. Jenya Filimonov 20 марта 2016, 18:51 # +1
                                      Спасибо! Проблема решена: )
                                2. Володя 20 марта 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 марта 2016, 19:19 # 0
                        Возможно ли автоматически поворачивать изображения загруженные с айфона? (по данным EXIF изображения)
                        Подобно как сделано тут: modx.pro/solutions/7234-tickets-auto-orientation-when-loading/
                        1. Володя 30 марта 2016, 00:08 # 0
                          Доброй ночи. У меня нет айфона.
                          Напишите на почту, приложите снимки с описанием того где какой поворот изображения. Я попробую сделать.
                          Спасибо!
                        2. Юрий 30 марта 2016, 00:04 # 0
                          Как именно это дополнение обрабатывает файл загружаемого изображения при кроппинге. Я выбираю на картинке область обрезки. Что скрипт делает дальше? Сохраняет обрезанную часть или сохраняет исходное изображение, а в БД заносит координаты выбранной области (так делает image+)?
                          1. Володя 30 марта 2016, 00:06 # 0
                            Сохраняет обрезанную часть. Посмотреть можно тут — location.vgrish.ru/index.php?id=24
                          2. Олег 06 апреля 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 апреля 2016, 15:43 # 0
                              Не совсем понял что и куда пропадает. Поясните точнее что вы хотите сделать.
                              Если что то не выходит — можно обратиться в ТП.
                              1. Олег 13 апреля 2016, 14:13 # 0
                                В итоге разобрался перелопатив весь код. В итоге теперь он работает с MIGx, создаёт дубликат картинки с вотермаркой по указанному пути, создает имя файла картинки используя alias ресурса, к которому она прикреплена
                              2. Павел Гвоздь 30 мая 2016, 01:02 # +2
                                Чтобы ufForm не мешал работать нативным модалкам Bootstrap, надо прописать это где-нибудь в шапке:
                                <script>
                                    jQuery.Modal = jQuery.Modal || true;
                                </script>

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

                                          Мне нужно чтобы пользователи загружали фотографии, при этом для каждого пользователя должна создаваться своя папка, с двумя подпапками, без доступа к другим папкам. Так получится штатными методами?
                                          1. Володя 18 августа 2016, 23:26 # 0
                                            Указываете нужный список файлов — получите примерно вот такую структуру
                                      2. Максим Кузнецов 22 августа 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 октября 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 октября 2016, 19:23 # 0
                                            попробуйте дополнить условие
                                            "UserFile.class":"modResource"
                                            
                                            1. eflit 15 октября 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 октября 2016, 21:50 # 0
                                                да, есть косяк, завтра с утра поправлю и отпишу.
                                                1. eflit 15 октября 2016, 21:53 # 0
                                                  Спасибо буду ждать там проблема вся в том что при загрузке фото грузится в article если бы была возможность установить в какой class грузить фото проблема была бы решена
                                                  1. Володя 15 октября 2016, 22:08 # 0
                                                    фото грузится в article
                                                    что за article?
                                                    1. eflit 15 октября 2016, 22:16 # 0
                                                      компонент article и получается когда я к нему подгружаю фото то он создает class в list и загружает тут да фото то есть путь загрузки userfile/priv/article/id а нужно чтобы userfile/priv/modresource/id
                                                      1. Володя 15 октября 2016, 22:19 # 0
                                                        да, там в новой версии class правится на class_key с этим все нормально. А в сниппете у вас modresource. Завтра фикс какой-нибудь сделаю.
                                                        1. eflit 15 октября 2016, 22:24 # 0
                                                          Да все нормально разобрался со всем спасибо тупанул немного )
                                          2. eflit 17 октября 2016, 12:32 # 0
                                            Добрый день скажите есть такая возможность наложения логотипа на фото при выводе?
                                            1. Володя 17 октября 2016, 13:44 # 0
                                              при выводе? Наверно можно с помощью phpthumb.
                                              modx.pro/search?query=phpthumb+вотермарк
                                              1. eflit 17 октября 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 октября 2016, 14:55 # 0
                                                  — используйте тег code для оформления сообщений
                                                  — попробуйте создать обычный чанк а не INLINE
                                            2. eflit 26 октября 2016, 15:22 # 0
                                              подскажите пожалуйста можно как-то реализовать сжатие фото при загрузке? чтобы они принимали размер допустим 800х600.
                                              1. Володя 26 октября 2016, 16:46 # 0
                                                добавьте параметр imageMainThumbnail в источник медиа и задайте ему необходимые параметры
                                                например
                                                {"w":800,"h":800,"q":90,"zc":"1","bg":"fff"}
                                                
                                              2. Азамат 01 ноября 2016, 23:57 # 0
                                                Подскажите, пожалуйста, как из фронтэнда корректно удалить уже загруженное изображение? Возможно ли, чтоб в области загрузки были все файлы для этого ресурса?
                                                1. Володя 02 ноября 2016, 08:35 # 0
                                                  так они и так доступны для удаления в форме загрузки. Или я не понял что вам необходимо.
                                                  1. Азамат 02 ноября 2016, 10:31 # 0
                                                    разобрался! прошу прощения, проигнорировал параметр «list». больше ничего и не надо — отличное дополнение!
                                                2. eflit 08 ноября 2016, 14:21 # 0
                                                  Подскажите возможно как то сделать при выводе фото чтобы формировался и кеш md5 фотографии
                                                  1. Володя 08 ноября 2016, 14:39 # 0
                                                    у файла есть поле hash используйте его.
                                                    Или объясните подробнее что необходимо.
                                                    1. eflit 08 ноября 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 ноября 2016, 15:59 # 0
                                                        Позвольте поинтересоваться, зачем Вам phpthumbon? Разве средствами UserFiles нельзя сделать вывод картинок нужного разрешения?
                                                        1. eflit 08 ноября 2016, 16:12 # 0
                                                          можно но тут момент есть у меня уже много загруженных фото нужно чтобы они выводились так будет ли работать на все фото которые уже загружены я так понимаю размер формируется при загрузке.
                                                        2. Володя 08 ноября 2016, 20:34 # 0
                                                          от чего вам нужно брать md5? и зачем?
                                                    2. Антон 25 ноября 2016, 02:30 # 0
                                                      Есть возможность простой загрузки файлов без редактора? Например, тот же jpg.
                                                      Нужно чтобы к товару добавлялась только ссылка на файл.
                                                      1. Володя 25 ноября 2016, 07:41 # 0
                                                        конечно. Редактор вызывается через меню.
                                                        1. Антон 25 ноября 2016, 21:44 # 0
                                                          А можно настроить без плясок с бубном чтобы файлы сразу на селектел заливались?
                                                          А в товар приходила только ссылка на файл.
                                                          Желательно с размером.
                                                          1. Володя 27 ноября 2016, 10:12 # 0
                                                            настроить медиасорс под селектел и назначить его по умолчанию.
                                                      2. eflit 02 декабря 2016, 03:37 # 0
                                                        md5 нужен для того чтобы при выгрузке через xml выдавался md5 фото и при обновлениях не возникало вопросов с фото. md5 код фото формирую через сниппет код сниппета мб кому пригодится
                                                        return md5_file($scriptProperties['file'])
                                                        1. Володя 02 декабря 2016, 08:43 # 0
                                                          хорошо что разобрались.
                                                        2. eflit 03 декабря 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 декабря 2016, 15:59 # 0
                                                            Вопрос снимаю проблема то что класс нужно было назвать правильно modResource большая R
                                                            1. eflit 04 декабря 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 декабря 2016, 10:15 # 0
                                                                если у class есть поле class_key то оно заменяется его значением. Наверно у вас class_key ресурса — article
                                                                1. eflit 05 декабря 2016, 11:20 # 0
                                                                  а как мне сменить чтобы грузились фото в modresource?
                                                                  1. Володя 05 декабря 2016, 11:33 # 0
                                                                    на данный момент никак, в коде зашито что путь состоит из
                                                                    'list', 'class', 'parent'
                                                                    
                                                              2. eflit 05 декабря 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 декабря 2016, 12:08 # +1
                                                                  Добавил настройку process_class, выставьте ее в нет и класс не будет обрабатываться.
                                                                2. eflit 05 декабря 2016, 12:18 # 0
                                                                  Огромное спасибо теперь все нормально.
                                                                  1. eflit 14 декабря 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 декабря 2016, 12:33 # 0
                                                                      напишите в ТП с указанием доступов к сайту и странице где можно увидеть данную проблему.
                                                                      Спасибо!
                                                                      1. eflit 14 декабря 2016, 12:47 # 0
                                                                        написал
                                                                    2. amotev 26 января 2017, 18:38 # 0
                                                                      Вызов
                                                                      [[!ufForm?
                                                                      &tplForm=`uploadForm`
                                                                      &class=`UserFile`
                                                                      &list=`upload`
                                                                      &anonym=`1`
                                                                      &dropzone=`{«maxFilesize»:3,«maxFiles»:1,«acceptedFiles»:".zip,.rar"}`
                                                                      ]]

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

                                                                        все…
                                                                      2. eflit 30 марта 2017, 12:19 # 0
                                                                        Здравствуйте подскажите попал в такую ситуацию создается ресурс для него загружаю фото и через не которое время удаляю ресурс но фото по прежнему остается как можно удалять фото когда ресурс удален.
                                                                        1. Володя 30 марта 2017, 14:13 # 0
                                                                          Добрый день.
                                                                          Можно плагин на событие OnBeforeEmptyTrash
                                                                          и в нем
                                                                          $q = $modx->newQuery('UserFile');
                                                                          $q->where(array('class' => 'modResource', 'parent:IN' => $ids));
                                                                          if ($UserFiles = $modx->getCollection('UserFile', $q)) {
                                                                              foreach ($UserFiles as $UserFile) {
                                                                                  $UserFile->remove();
                                                                              }
                                                                          }
                                                                          
                                                                          1. eflit 30 марта 2017, 15:26 # 0
                                                                            Так что то не понимаю создал плагин вставил код поставил событие OnBeforeEmptyTrash теперь тестирую создал ресурс залил фото сохранил удаляю ресурс но фото остается мб и за того что у меня стоит в системных настройках не обрабатывать класс?
                                                                            1. Володя 30 марта 2017, 18:58 # 0
                                                                              возможно класс у файлов не modResource.
                                                                              Пишите в ТП разберемся.
                                                                        2. Foton 28 апреля 2017, 16:16 # 0
                                                                          Здравствуйте! Подскажите, пожалуйста, как к вызову mFilter2 присоединить по первому изображению UserFiles из каждого ресурса. Пробую разные варианты, но что-то всё превращается в тыкву.
                                                                          1. Володя 28 апреля 2017, 21:25 # +2
                                                                            Добрый вечер.
                                                                            Пишите пожалуйста в ТП
                                                                            Приложите доступы к админке сайта и ссылку на чанк/ шаблон вызова.
                                                                            Спасибо!
                                                                          2. Женёк 08 мая 2017, 16:15 # 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]]" 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"
                                                                                }`
                                                                            ]]
                                                                            Юзер авторизован в кабинете.
                                                                            На выходе ничего не выводится, ошибок нет. Что я делаю не так?
                                                                            1. Женёк 10 мая 2017, 11:31 # 0
                                                                              Если включить &showLog=`1` — то же пусто все.
                                                                              1. Володя 10 мая 2017, 11:33 # 0
                                                                                Пишите в ТП с указанием доступов к админке сайта и ссылкой на чанк/ шаблон вызова, разберемся…
                                                                                Спасибо!
                                                                            2. Юрий 10 мая 2017, 12:49 # 0
                                                                              Подскажите, как сделать загрузку файлов с одним и тем же именем? есть ли возможность на выходе переименовать файл? Заранее спасибо!
                                                                              1. Володя 10 мая 2017, 13:58 # +1
                                                                                $(document).on('dropzone_init', function(e, dropzone, config) {
                                                                                    myDropzone.options.renameFilename = function (filename) {
                                                                                        return 'myname.' + filename.split('.').pop();
                                                                                    };
                                                                                });
                                                                                
                                                                              2. Юрий 10 мая 2017, 14:06 # 0
                                                                                Спасибо, подталкнули!
                                                                                1. Юрий 11 мая 2017, 13:49 # 0
                                                                                  Неподскажите вообщем изменяю в настройках медиа источник по умолчанию на любой другой кроме userfiles и перестаёт грузить файлы, а при попытке загрузить из админки пишет: Файл больше допустимого размера.?
                                                                                  Заранее спасибо!
                                                                                  1. Володя 11 мая 2017, 14:03 # +1
                                                                                    создайте в источнике настройку maxUploadSize и задайте допустимый размер файла
                                                                                  2. Юрий 11 мая 2017, 15:05 # 0
                                                                                    Спасибо, а как можно отчистить dropzone при обновлении страницы?
                                                                                    1. Виталий 14 мая 2017, 14:39 # 0
                                                                                      Володя, подскажи пожалуйста.
                                                                                      Почему данная конструкция не работает через вызов Fenom?

                                                                                      {var $photo_before_html = "!pdoResources" | snippet: [
                                                                                          'class'=>'UserFile',
                                                                                          'loadModels'=>'UserFiles',
                                                                                          'sortby'=>'rank',
                                                                                          'where'=>'{
                                                                                              "UserFile.list": "photos_before",
                                                                                              "UserFile.parent": '~$_modx->user.id~',
                                                                                              "UserFile.createdby": '~$_modx->user.id~'
                                                                                          }',
                                                                                          'leftJoin'=>'{
                                                                                              "Thumb": {
                                                                                                  "class": "UserFile",
                                                                                                  "on": "Thumb.parent = UserFile.id"
                                                                                              }"
                                                                                          }',
                                                                                          'select'=>'{
                                                                                              "UserFile": "*",
                                                                                              "Thumb": "Thumb.url as thumb"
                                                                                          }',
                                                                                          'tpl'=>'@INLINE 
                                                                                          <div class="item">
                                                                                              <a href="[[+url]]" target="_blank">[[+name]] - [[+size]]</a>
                                                                                          </div>'
                                                                                      ]}
                                                                                      

                                                                                      Если убрать
                                                                                      "Thumb": "Thumb.url as thumb"
                                                                                      то вызов отрабатывает
                                                                                      1. Артём 17 мая 2017, 12:22 # 0
                                                                                        Подскажите, пожалуйста, данный компонент можно как то привязать для добавления фоток и файлов к ресурсам через frontend? Суть в том, что есть сайт, где пользователи сами добавляют статьи и новости (через frontend юзерпанель), и к этим новостям надо привязать возможность добавлять фотки и свой лого. Если имеется такая возможность, подскажите как это реализовать?
                                                                                        1. Юрий 22 мая 2017, 15:23 # 0
                                                                                          Подскажите, как сделать загрузку файлов в папку с id пользователя + дата время?
                                                                                          1. Василий Столейков 28 июля 2017, 10:51 # 0
                                                                                            А для чего служит сниппет ufMs2Gallery, о нём нигде ни слова? Для загрузки в ms2Gallery?
                                                                                            Вызвал его на странице — получил 500 ошибку.
                                                                                            1. Володя 28 июля 2017, 11:28 # 0
                                                                                              для чего служит сниппет ufMs2Gallery
                                                                                              с версии 2.2.5-beta существует возможность подменять стандартную галерею магазина на UserFiles. Так вот ufMs2Gallery аналог сниппета msGallery служит для вывода изображений галереи товара.
                                                                                              о нём нигде ни слова
                                                                                              потому как сам я данный функционал не тестировал и не пользую, мне хватает стандартной галереи, но в ТП просили добавить данный функционал. Как функционал обкатается так и будет анонс и описание.

                                                                                              Вызвал его на странице — получил 500 ошибку.
                                                                                              пишите в ТП — разберемся.
                                                                                              1. Василий Столейков 28 июля 2017, 11:33 # 0
                                                                                                500 ошибка была потому что miniShop2 не был установлен, я думал что сниппет для формы загрузки в ms2Gallery с фронта, а не для галереи минишопа…
                                                                                                В ТП когда куплю, сейчас проверяю функционал, если подойдёт для пользовательской галереи.
                                                                                            2. Василий Столейков 28 июля 2017, 11:09 # 0
                                                                                              А можно загружать в modUser через ufForm больше одного файла? Мне нужно галерею к пользователю привязать, а не только одно фото.

                                                                                              Попробовал на тестовом хостинге — пишет: Вы не можете загрузить больше файлов.

                                                                                              Также при загрузке файлов больше 1мб выводит ошибку независимо от данных в настройке maxUploadSize: Файл слишком большой (1.91MiB). Максимальный размер: 1MiB.
                                                                                              1. Володя 28 июля 2017, 11:30 # 0
                                                                                                А можно загружать в modUser через ufForm больше одного файла? Мне нужно галерею к пользователю привязать, а не только одно фото.
                                                                                                да, можно
                                                                                                1. Василий Столейков 28 июля 2017, 11:37 # 0
                                                                                                  Я тестировал через сниппет ufForm с фронта. Ок, если можно, тогда уже продолжим в ТП если будут вопросы, спасибо!
                                                                                                  1. Володя 28 июля 2017, 11:39 # +1
                                                                                                    возможно все в настройке
                                                                                                    &dropzone=`{"maxFilesize":2,"maxFiles":3,"acceptedFiles":".jpg, .jpeg, .gif, .png","template":"edit"}`
                                                                                                    
                                                                                                    1. Василий Столейков 28 июля 2017, 11:59 # 0
                                                                                                      Понял, спасибо!!!
                                                                                                      1. Василий Столейков 28 июля 2017, 12:02 # 0
                                                                                                        А за что отвечает параметр dropzone «template»:«edit»? Какие у него ещё могут быть значения?
                                                                                                        В статье этот параметр не объясняется.
                                                                                                        1. Володя 28 июля 2017, 12:19 # +1
                                                                                                          А за что отвечает параметр dropzone «template»:«edit»
                                                                                                          шаблон отображения файлов. по умолчанию доступно base и edit, отличаются только наличием ссылки на редактирование изображения.
                                                                                                          Вы можете добавить по аналогии свои шаблоны отображения…
                                                                                                          1. Василий Столейков 28 июля 2017, 12:22 # 0
                                                                                                            Супер! Удобно! Спасибо!
                                                                                                            1. Володя 28 июля 2017, 12:38 # 0
                                                                                                              пожалуйста!
                                                                                                              Аналогично можно задать шаблон и для модалки, например редактировать описание к картинке

                                                                                                              &modal=`{"buttons":"base","template":"edit"}`
                                                                                                              
                                                                                                2. Сергей 06 сентября 2017, 18:24 # 0
                                                                                                  До обновления ( версия 2.3.0 бэта ) была проблема с тем, что при изменении порядка изображений он ( порядок) сохранялся не понятным образом.( речь про список файлов ) Сегодня обновил приложение, думал баг исправится. Теперь перетаскивание вообще не работает…
                                                                                                  1. Володя 06 сентября 2017, 18:27 # 0
                                                                                                    Добрый вечер.
                                                                                                    Пишите в ТП. Приложите доступы к админке и ссылку где наблюдается проблема.
                                                                                                    Спасибо.
                                                                                                    1. Сергей 06 сентября 2017, 18:40 # 0
                                                                                                      Я дико извиняюсь ( с modx работаю недавно) потому сюда и пишу что не нашел где написать ТП. ( может скрин есть или ссылка? )
                                                                                                      1. Володя 06 сентября 2017, 18:55 # 0
                                                                                                      2. Сергей 06 сентября 2017, 20:26 # 0
                                                                                                        К сожалению написать в ТП не могу так как нужно прежде что то купить…
                                                                                                        Но я понял почему не работало перетаскивание — Во время обновления произошло переписывание чанка uf.form — отличается он от предыдущего лишь этой строкой
                                                                                                        data-clickable=".userfiles-form-clickable-[[+propkey]]">
                                                                                                        Раньше было
                                                                                                        data-clickable=".userfiles-form-clickable-[[+propkey]]" data-sorting="1">
                                                                                                        Подставил в новый код data-sorting=«1» и перетаскивание заработало.

                                                                                                        Но Проблема с тем что не устанавливается порядок файлов осталась — то есть он меняется как себе хочет…
                                                                                                        1. Володя 07 сентября 2017, 07:07 # 0
                                                                                                          Но Проблема с тем что не устанавливается порядок файлов осталась — то есть он меняется как себе хочет…
                                                                                                          у меня работает… попробуйте собрать пакет и переустановить.
                                                                                                    2. Павел 06 сентября 2017, 20:46 # 0
                                                                                                      Приветствую. есть документы, к которым прикреплен UserFiles (т. е. такая вкладка после «группа ресурсов»).
                                                                                                      Этот список документов выводится через pdoResources. Делаю фильтрацию для этих документов.
                                                                                                      Подскажите, как через where отфильтровать по наличию/отсутствию файлов?
                                                                                                      Что-нибудь вроде:
                                                                                                      &where=`{"UserFiles:!=":""}`
                                                                                                      Или нет такой возможности?
                                                                                                      1. Володя 07 сентября 2017, 07:17 # +1
                                                                                                        вот так вроде работает
                                                                                                        [[!pdoPage?
                                                                                                        &parents=`0`
                                                                                                        &leftJoin=`{"File": {"class": "UserFile","on": "File.parent = modResource.id"}}`
                                                                                                        &where=`{"File.parent":null}`
                                                                                                        &tpl=`@INLINE [[+id]]`
                                                                                                        ]]
                                                                                                        [[!+page.nav]]
                                                                                                        
                                                                                                        1. Павел 07 сентября 2017, 12:55 # 0
                                                                                                          Так оно выводит те документы, которые не имеют файлов.
                                                                                                          Однако, если вписать
                                                                                                          &where=`{"File.parent:!=":null}`
                                                                                                          то выводит те документы в которых есть файлы, но каждый такой документ выводит столько раз, сколько в нем этих файлов, т. е. не по 1 разу
                                                                                                          1. Володя 07 сентября 2017, 13:22 # 0
                                                                                                            добавьте в таком случае группировку
                                                                                                            &groupby=`modResource.id`
                                                                                                            
                                                                                                            1. Павел 07 сентября 2017, 13:33 # 0
                                                                                                              да, как раз минут 10 назад добавил) Хотел написать тут.
                                                                                                              Благодарю за помощь
                                                                                                              1. Володя 07 сентября 2017, 14:41 # 0
                                                                                                                пожалуйста!
                                                                                                      Вы должны авторизоваться, чтобы оставлять комментарии.