FileMan - прикрепление файлов к ресурсам для MODX 3

Привет!

Большинство из вас знакомо с компонентом FileAttach, который позволяет прикреплять файлы к ресурсам. К сожалению, FileAttach для MODX 3 не существует (по состоянию на конец 2023 года).

В своё время мною был сделан компонент на базе FileAttach с некоторыми другими, нужными мне, функциями:
— добавлено поле group, для того, чтобы группировать на фронте файлы (к примеру «Документы» => список файлов, «Каталоги» => список файлов);
— загрузка файлов по ссылке в панели управления;
— что-то ещё, за давностью лет и не помню.



Чтобы не путаться, я свою версию компонента назвал FileMan (от man — manager). И в какой-то момент компонент был адаптирован для MODX 3.

Сейчас я его еще причесал, до состояния, пожалуй, beta. Заинтересованным — велкам на тестирование.

Пакет для установки доступен в репозитории ModStore:
modstore.pro/packages/photos-and-files/fileman

Исходники:
github.com/createit-ru/FileMan

Примечания:
— документации пока нет, надеюсь подготовить в ближайшее время.
— это beta, тестировал только на одном сайте, возможны (и будут) глюки.
— на MODX 2 даже не пытайтесь устанавливать! Только для MODX 3!

Пишите в комментариях ваши замечания, пожелания.

Желающие поблагодарить финансово могут сделать это по ссылке: www.tinkoff.ru/cf/6DnXkpDtHH7
Благодарности ускорят внедрение новых функций, увеличат мою мотивацию, заставят меня внимательно прислушиваться к вашим пожеланиям!!!
Наумов Алексей
17 октября 2023, 17:04
modx.pro
1
753
+14

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

Баха Волков
17 октября 2023, 17:11
+1
Ну и отлично! Если будут вопросы по доке, пиши
    Andrei
    13 ноября 2023, 10:50
    0
    На страницах-символичеких ссылках не работает
      Наумов Алексей
      14 ноября 2023, 10:00
      0
      Хоть по подробнее как-то… если хотите улучшения. Я этот сценарий не использую в своей работе.
        Andrei
        14 ноября 2023, 10:49
        0
        Ок, если создать документ, а к нему — символическую ссылку, обоим ресурсам назначить один и тот же чанк, в чанке вызвать сниппет fmFiles, то в документе сниппет сработает и файлы будут отображаться, а в символической ссылке — нет.
          Наумов Алексей
          14 ноября 2023, 11:05
          0
          А если параметр resource если указать для сниппета fmFiles правильный (соответствующий основному ресурсу)?..
            Andrei
            14 ноября 2023, 11:26
            0
            Понял, вот как-то так получилось сделать, т.к. симлинк отдает в контенте id основной страницы:
            {if $_modx->resource.id | resource:'class_key' == 'MODX\Revolution\modSymLink'}
                    {$_modx->runSnippet('!fmFiles', [
                        'tpl' => 'myTpl',
                        'resource' => $_modx->resource.id | resource:'content'
                    ])}
            {else}
                    {$_modx->runSnippet('!fmFiles', [
                        'tpl' => 'myTpl',
                        'resource' => $id
                    ])}
            {/if}
              Наумов Алексей
              14 ноября 2023, 11:31
              +1
              Да, типа того… в целом можно и внутрь сниппета fmFiles в будущем засунуть проверку… хотя мне кажется случай использования SymLink в целом не самый частый
      Wassi Wassinen
      16 ноября 2023, 20:30
      0
      Приветствую. Спасибо за компонент.
      Есть проблема — при установке fileMan с Collections при создании ресурса в коллекции получаю такую ошибку:



      После удаления fileMan — ошибка исчезает.
        Наумов Алексей
        16 ноября 2023, 20:45
        +1
        Привет! Да, кажется есть ошибка при создании нового ресурса… завтра постараюсь поправить, затестировать, выпустить обновление.

        Временно можно в плагине в начале поставить проверку типа
        case 'OnDocFormPrerender':
            if(empty($resource)) {
              return;
            }
            .. код ниже
          Wassi Wassinen
          16 ноября 2023, 22:51
          0
          Супер, благодарю за оперативность! Будем ждать обновления :)
            Наумов Алексей
            17 ноября 2023, 10:51
            0
            Выпустил обновление, хотя по сути там и есть 3 строчки, которые я выше написал.
              Наумов Алексей
              17 ноября 2023, 10:55
              0
              Кстати, я почему не заметил проблемы.
              В MODX 3 создание ресурса теперь реализовано через отдельное упрощенное окно, похожее быстрое создание ресурса. Ну и для этого окна не возникает события OnDocFormPrerender.

              А при использовании Collection ресурс создается старым способом, с открытием новой страницы (?a=resource/create).

              Я этот момент как-то упустил. В общем сейчас при создании ресурса вкладка Файлы не показывается.
                Wassi Wassinen
                18 ноября 2023, 00:36
                0
                Супер! Алексей, благодарю. Вы молодец :)
                  Wassi Wassinen
                  18 ноября 2023, 00:40
                  0
                  Ещё один момент: при удалении файла из ресурса, если он единственный — не удаляется каталог с номером ресурса в папке «files». Это так и задумано?
                    Наумов Алексей
                    19 ноября 2023, 11:20
                    0
                    Это вообще никак не задумано) можно удалять конечно бы, пустые каталоги раздражают. Такая же история с miniShop2 есть, ну или была, не знаю, тоже часто каталоги остаются.
                      Wassi Wassinen
                      19 ноября 2023, 14:39
                      0
                      Как говорится — на усмотрение автора. :)) Еще раз спасибо, Алексей, за оперативность!
            Andrei
            20 ноября 2023, 22:40
            0
            Загрузил файл и неожиданно получил вот такую ошибку:
            Ошибка сервера не позволяет загрузить содержимое этой таблицы. Обратитесь к консоли вашего браузера, журналу ошибок менеджера и/или сервера для получения дополнительной информации.
            В консоли:
            Warning: Undefined array key «modUser» in /home/site.ru/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDOMap.php on line 48

            Notice: Indirect modification of overloaded element of xPDO\xPDOMap has no effect in /home/site.ru/public_html/core/components/tickets/model/tickets/metadata.mysql.php on line 26
            {«success»:false,«message»:"\u0414\u043e\u0441\u0442\u0443\u043f \u0437\u0430\u043f\u0440\u0435\u0449\u0451\u043d.",«total»:0,«data»:[],«object»:{«code»:401}}"
            В журнале:
            "(ERROR @ /home/site.ru/public_html/core/src/Revolution/modConnectorResponse.php: 174) PHP warning: Cannot modify header information — headers already sent by (output started at /home/site.ru/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDOMap.php:48)"
              Наумов Алексей
              21 ноября 2023, 10:42
              0
              Так это с tickets какая-то засада… он под MODX 3 вообще работает хоть как-то?
              /core/components/tickets/model/tickets/metadata.mysql.php
              Баха Волков
              21 ноября 2023, 17:02
              0
              @Наумов Алексей На modstore.pro забыл указать ссылку на документацию (не в описании, а в отдельном поле можно указать)
              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
              20