изменение загрузки в Gallery (Multi-Upload)

Доброго времени суток!

Понадобилась возможность выводить фотографии из Gallery с водяным знаком.

Как вариант, есть возможность использовать «phpthumbof=`fltr=wmi», но проблема в том, что размеры фотографий в Gallery могут быть разными и поэтому нужно менять размер изображение водяного знака в зависимости от размера выводимой фотографии, чтобы водяной знак не получился маленьким. Также, нужно располагать знака посередине 1/3 фото.

Как решение, подумал, что можно дописать загрузку фотографий (Multi-Upload) компонента Gallery, т.е. после того как фото загружено, исполнять скрипт, который смотрит размеры фото, меняет размер водяного знака в зависимости от размера фото, накладывает знак на фото и сохраняет.

Подскажите, пожалуйста, можно ли решить данную проблему без допиливания (Multi-Upload) компонента Gallery, либо где можно дописать загрузку фото в Gallery?
Ilya Z.
08 июля 2015, 12:49
modx.pro
2 037
0

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

Ilya Z.
09 июля 2015, 08:24
0
нет каких-нибудь мыслей по данному поводу? :)
    Воеводский Михаил
    09 июля 2015, 08:49
    0
    Плагином по событию OnHandleRequest просматривать весь массив $_FILES для поиска изображений. Если найдены, то сразу обрабатывать нужными алгоритмами. Тогда, с очень большой вероятностью, родной обработчик получит уже измененные файлы.
      Ilya Z.
      09 июля 2015, 09:53
      0
      спасибо) а как понять в событии OnHandleRequest, что мы фото загружаем именно через Gallery?
        Воеводский Михаил
        09 июля 2015, 10:18
        0
        Смотреть глазами, какие запросы отправляются при работе с Gallery, затем в плагине сравнивать их с тем, что получено. Первая простейшая проверка — контекст только mgr.
          Ilya Z.
          09 июля 2015, 10:52
          0
          сейчас попробовал сделать простейшее событие OnHandleRequest:

          if($modx->event->name=='OnHandleRequest'){
              $file = 'file.txt';
              $text= "qwe";
              file_put_contents($file, $text, FILE_APPEND | LOCK_EX);
          }
          так вот файл нигде не был создан, если я заливаю фото с помощью «Multi-Upload».

          Далее создал событие OnFileManagerUpload с таким же содержимым и если использовать «Multi-Upload», то файл тоже нигде не создается, а если использовать одиночную загрузку фото в Gallery («Загрузить элемент»), то файл создается в «assets/components/gallery».

          В моем случае нужно отловить именно загрузку фото по «Multi-Upload». Может есть какие-нибудь примеры?

            Воеводский Михаил
            09 июля 2015, 10:59
            0
            Нужно смотреть, каким образом происходит Multi-Upload. Я предложил лишь общий вариант, не зная тонкостей Gallery — не приходится с ней сталкиваться.
            Скиньте доступ к сайту на mail # compaero.ru, посмотрю в течение дня.
              Ilya Z.
              09 июля 2015, 11:47
              0
              нашел, где можно изменять фото при Multi-Upload- в файле core/components/gallery/model/gallery/galalbum.class.php в методе uploadItem.
                Воеводский Михаил
                09 июля 2015, 11:51
                0
                До первого обновления Gallery…
                  Ilya Z.
                  09 июля 2015, 11:58
                  0
                  да, не спорю, но данный момент все устраивает и обновления можно и не выполнять :)
                    Воеводский Михаил
                    09 июля 2015, 12:00
                    0
                    Не забудьте где-то отдельно записать, какие изменения внесены — вдруг придется обновить? ))
                      Ilya Z.
                      09 июля 2015, 12:07
                      0
                      обязательно :)
                        Руслан Сафин
                        09 июля 2015, 12:11
                        0
                        И в сообщество выложите =) Вдруг кому то пригодится, или кто то в плагин преобразует
    Дмитрий Середюк
    10 июля 2015, 23:18
    0
    Как то давно искал готовое решение про водяные знаки, вот ссылка
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      13