mvtDocs: удобное хранение документов

Бесплатный компонент для удобного хранения файлов документов (инструкций, сертификатов и т.д.), а также внешних ссылок (например на ролики youtube) для ресурсов / товаров MS2.
Описание / загрузить в modstore.pro

Описание функционала:

Для любого ресурса можно прицеплять множество файлов и ссылок на внешние файлы.
Особенностью является то, что компонент может автоматически добавлять связи приложенных документов для всех связанных товаров MS2. Например, у вас есть товар и у него 5 аналогов, связанных штатным механизмом связей MS2, уставите системную настройку «Создавать связи автоматически» = «Да» и при загрузке файла он автоматически будет связан с аналогами данного товара. Важно: во избежание путаницы, автосвязи строятся только в том случае, если данный товар является master'ом по отношению к аналогам.

Можно ограничить список доступных ресурсов каким-то каталогом.
Можно транслитерировать имена файлов в соответствии с установками дружественных урлов (translit = russian).
Работа с файлами идёт через указанный в настройках источник файлов, поэтому вы можете хранить файлы не на сервере, а в облаке (Swift нам в помощь!). Профит очевиден, т.к. документации бывает очень много…

В комплекте есть один чанк и один сниппет. И то и другое рассчитано на pdoTools + fenom. Кому не нужно — скопируйте сниппет и раскомментируйте кусочек кода отдающий чанк вместо массива.

Настройка и использование чрезвычайно просты, поэтому выложу картинками:
Настройки:


Работа:


Результат:


Обновление до версии 1.0.4-beta.
Добавлен выбор идентификаторов связи MS2 при для формировании связей файл-товары. Например, у вас есть 2 связи: 1 — аналоги, 2 — аксессуары. Поставим опцию «Использовать только указанные связи» = 1 и получим связи только для аналогов.
Алексей Шумаев
26 февраля 2019, 13:26
modx.pro
4
2 933
+18
Поблагодарить автора Отправить деньги

Комментарии: 45

Это сообщение было удалено
    Это сообщение было удалено
    brioni
    26 февраля 2019, 14:13
    0
    А при загрузке файлов через mvtDocs на сервере будут создаваться отдельные папки для каждого ресурса? Как это делает Tickets или MsGallery
    Валерий
    24 марта 2019, 15:55
    0
    Подскажите, пожалуйста, как через msProducts вывести только те товары, в которых загружен хоть один файл
      Алексей Шумаев
      24 марта 2019, 16:21
      0
      Вот так, например:
      {set $list = 'msProducts' | snippet :[
          'parents' => 0,
          'limit' => 1,
          'loadModels' => 'mvtdocs',
          'innerJoin' => '{
              "ds": {
                "class": "mvtDocsResources",
                "on": "ds.resource_id = msProduct.id"
              }
            }',
          'select' => '{
              "msProduct": "msProduct.id",
              "ds": "ds.file_id"
            }',
          'setTotal'=>1,
       ]}
       
      {$list}
      
      Всего с документами: {'total' | placeholder}
      Дмитрий
      26 июня 2019, 15:40
      0
      Хороший плагин, а есть возможность сделать вкладку в ресурсе с документами? Вот это однозначно было бы круто с настройкой для каких ресурсов эту вкладку отображать или наоборот какие исключить…
        Алексей Шумаев
        26 июня 2019, 15:57
        +1
        Можно. Основная идея была именно в том, чтобы не лазить по документам, а делать всё в одном месте — в форме компонента. Но как дополнительная возможность, да, не помешает.
        Просьба: напишите мне в личку, попробую в течении месяца добавить, как время будет.
          Дмитрий Танцирев
          21 сентября 2020, 06:45
          0
          Алексей, вы случаем не реализовали данную фичу? =)
            Алексей Шумаев
            21 сентября 2020, 08:14
            0
            Увы. Времени пока не нашлось и в обозримом будущем скорее всего не будет.
            На странице компонента указан git, можно забрать и добавить нужный функционал.
        Дмитрий
        27 июня 2019, 14:34
        0
        Как реализовать сортировку при выводе?
          Алексей Шумаев
          27 июня 2019, 14:39
          0
          Можно так:
          {'mvtDocs' | snippet : ['sortby' => 'Resource.type', 'sortbir' => 'DESC', 'limit' => 0]}
          Посмотрите в модели какие есть поля — по ним можно сортировать.
            Дмитрий
            27 июня 2019, 14:46
            0
            хорошо бы, если был ранг в интерфейсе и по нему можно было сортировать…
              Алексей Шумаев
              27 июня 2019, 14:48
              0
              Дмитрий, отписался на почту. Настроим на твоём кейсе и внесу правки в компонент при необходимости.
                Владимир
                30 марта 2020, 20:04
                +1
                а мелкий вопрос попутно, в чанке можно отловить это файл или внешняя ссылка будет выведен?
                (например для подстановки в анкор «скачать», если это файл или «перейти», если это внешняя ссылка)
                _
                Вопрос снят, нашел
                {$file.itemtype}
              Владимир
              18 июля 2020, 10:28
              0
              Доброго дня
              по Files.added не сортирует? Вновь добавленные, что бы выводились первыми
                Алексей Шумаев
                18 июля 2020, 15:57
                0
                Доброго!
                Должен сортировать по всем полям модели mvtDocsFiles.
                Можно, как вариант, по и id / DESC сортировать — тот же результат с т.з. времени добавления будет.
                  Владимир
                  18 июля 2020, 16:01
                  0
                  да, понимаю что должен, может в чем-то у меня косяк, проверю, но пока не сортирует, пусто вместо вывода если параметр отличается от Resource.type
                    Владимир
                    16 ноября 2020, 17:57
                    0
                    Доброго дня
                    Проблема с сортировкой по added актуальна. Собственно, кроме как по name сортировка не работает. И все новые добавленные файлы в итоге в конце списка.
            Владимир
            30 марта 2020, 17:16
            0
            Доброго дня
            Очень удобное хранение документов!
            Вот только если залит не тот документ, то загрузить новый файл под тем же описанием нельзя- жаль. Удаление и новая загрузка перемещают файл в конец списка. Кстати, сортировку бы тоже было бы круто иметь возможность менять.
            Спасибо, закинул на кошелёк)
              Алексей Шумаев
              30 марта 2020, 17:29
              +1
              Доброго!
              Спасибо, постараюсь добавить.
                Владимир
                18 апреля 2020, 10:28
                0
                Мысль: вместо прямой ссылки на хранящийся файл иногда хорошо бы иметь возможность заменить псевдонимом, который бы не менялся в случае замены файла (сейчас замена файла так же не предусмотрена, редактируется только описание)
                  Алексей Шумаев
                  26 апреля 2020, 01:32
                  0
                  Принято. Не знаю, только когда руки дойдут (
                  Возможно на майские, если погода совсем плохая будет.
              Никита
              25 июня 2020, 18:58
              0
              добрый день,
              можно ли как-то совместить с simpleSearch?
              Благодарю
                Алексей Шумаев
                25 июня 2020, 21:33
                0
                В плане поиска поиска по названию файлов?
                simpleSearch практически не пользовался — сразу не скажу.
                Посмотрите, как устроен его алгоритм, возможно можно расширить классы и добавить индексацию/поиск с и по модели mvtDocsFiles.
                  Никита
                  25 июня 2020, 23:33
                  0
                  Дело в то, что не совсем еще разбираюсь. А поиск очень нужен((
                    Алексей Шумаев
                    26 июня 2020, 00:04
                    0
                    Напишите в личку доступ к сайту с simpleSearch и mvtDocs, попробую на выходных посмотреть.
                Сергей Карпович
                21 июля 2021, 10:48
                0
                Всем привет, хочу в ресурсе вывести список прикрепленных файлов.
                вставляю в шаблон код:
                [[!pdoResources? &resources=`[[*id]]` &tpl=`tpl.mvtDocsList` ]]
                А в результате ничего не выводит. Файлы добавлены.
                С пустым tpl тоже ничего не выводит
                Подскажите куда копать?
                Сергей Карпович
                28 сентября 2022, 17:02
                0
                Подскажите, как ограничить вывод по определенному типу или виду и как ограничить количество выводимых документов?
                  Алексей Шумаев
                  29 сентября 2022, 13:42
                  0
                  Используйте параметры where и limit сниппета mvtDocs.
                  Либо, если выводите через pdoResources — есть пример выше.
                    Сергей Карпович
                    29 сентября 2022, 13:51
                    0
                    Подскажи, а как называется этот параметр «вид файла».
                    Вывожу через mvtDocs
                      Алексей Шумаев
                      29 сентября 2022, 13:53
                      0
                      type или kind
                      Посмотрите в модели или просто в phpMyAdmin
                        Сергей Карпович
                        29 сентября 2022, 14:01
                        0
                        Не поддается:
                        {$_modx->runSnippet('mvtDocs', [
                        'tpl' => 'tpl-mvtDocsList'
                        'limit' => '1'
                        'where' => '{«kind»:«Спецификация»}'
                        ])}
                        выводит пустоту
                          Алексей Шумаев
                          29 сентября 2022, 14:07
                          0
                          Как минимум исправьте «». Настройка where стандартно.
                          Подробнее не подскажу сейчас нет возможности.
                            Сергей Карпович
                            29 сентября 2022, 14:10
                            0
                            кавычки — это тут автозаменились.
                            такое ощущение чтьо сниппет сам не понимает kind
                            Если в чанке вывести {$kind} — то он ничего не выводит, хотя в модели он есть
                              Алексей Шумаев
                              29 сентября 2022, 14:12
                              0
                              Реально нет сейчас возможности помочь :-(
                              Посмотрите сам сниппет, там всё очень просто.
                                Сергей Карпович
                                29 сентября 2022, 14:17
                                0
                                Пробую посмотреть =)
                                обманул чуть, если в чанке вывести {$kind} — то он выводит значение типа файла
                  Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                  45