easyComm 1.11.0. Прикрепление файлов (фотографий)

Привет!

Небольшой анонс новых возможностей easyComm с версии 1.11.0-pl.

Теперь вы можете дать возможность пользователям ваших сайтов прикрепить к отзывам файлы/фото.

Конечно я чуть привираю, вы и раньше могли сделать вот так modx.pro/components/5707 (создать для каждого файла отдельное поле, сделать плагин для сохранения файла, настроить вывод в админке). Но это не очень понятно/удобно и сложно в целом.

Пора чуть поправить ситуацию!

Я не стал в модуль для отзывов запихивать мощную галерею, решил пойти по более простому пути.

Итак, к сниппету ecForm были добавлены параметры:
files (bool) — включить возможность загрузки файлов;
fileTypes (string) — типы разрешенных файлов (по-умолчанию jpg,jpeg,png,gif,webp);
fileSize (int) — ограничение на размер каждого файла (по-умолчанию 0 — не ограничивается!);
filesCount (int) — ограничение на количество файлов (по-умолчанию 0 — не ограничивается!).

Все загруженные файлы сохраняются в свой новый Источник Файлов (media source), файлы можно разбивать по папкам (см. системные настройки компонента ec_files_source, ec_files_path).

Информация о загруженных файлах храниться в поле files у сообщения в формате json… да, пока не увидел смысла заводить отдельную таблицу для этих целей…

Ну и наконец-то добавлено отображение файлов в админке и возможность их удаления:


При обновлении компонента учтите, что обновились чанки tpl.ecForm и tpl.ecMessages.Row. Либо обновляйте их, либо посмотрите изменения соответствующих файлов в /core/components/easycomm/elements/chunks/ и скорректируйте свои чанки.

p.s. Я тестировал только на dev сайте, возможны косяки, пишите о них в поддержку, поправим!
Наумов Алексей
22 апреля 2021, 11:26
modx.pro
311
+12
Поблагодарить автора Отправить деньги

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

Александр
26 апреля 2021, 14:46
0
Странно данные подтянулись)
    Наумов Алексей
    26 апреля 2021, 14:48
    0
    В репозитории есть такая версия для MODX 3, номер версии старше, вот и подтянулось…
    Алексей
    26 апреля 2021, 19:47
    +1
    Добрый день. В последнем обновлении ошибка — при если не указывать параметры fileSize и filesCount, то загрузка не будет осуществляться, (по-умолчанию 0 — не ограничивается!) — не работает
      Наумов Алексей
      27 апреля 2021, 08:59
      0
      Спасибо, проверю, если подтвердится — выпущу исправление!
        Наумов Алексей
        27 апреля 2021, 12:05
        0
        И правда была проблема. Выложил обновление. Хотя, честно говоря, я бы без ограничения на количество файлов и их размер не стал оставлять загрузку файлов у себя на сайте)))
        Денис
        07 мая 2021, 12:29
        0
        Ошибка в JS в версии 1.11.1-pl.
        179 строчка:
        easyComm.notice.error(data.message);
        response.message вместо data
        Дмитрий Танцирев
        11 мая 2021, 17:00
        0
        Приветствую!
        Есть небольшой недочёт при сохранении имени файла.

        /core/components/easycomm/model/easycomm/easycomm.class.php:376

        Вместо:
        $filename = $this->generateRandomName().".".$ext;
        Надо:
        $filename = $this->modx->filterPathSegment($this->generateRandomName()).".".$ext;
        Иначе «$this->mediaSource->uploadObjectsToContainer» сохраняет файл обработав его имя функцией «filterPathSegment», тем самым удаляет из имени файла символы которые указаны в системной настройке «friendly_alias_trim_chars», а в базу сохраняется необработанное имя файла.

        И если например в «friendly_alias_trim_chars» указан символ земли «_», то сам файл сохраняется с дефисом вместо земли, а в базу данных сохраняется имя файла с землёй.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        9