SS7. Генерация эскизов. Не принято

2

Программно создаю товар, названия файлов изображений у которого состоят из кириллицы (напр самое_лучшее_фото.jpg). Там же, в процессе создания успешно генерирую эскизы строкой

shopImage::generateThumbs($img, $this->config->getImageSizes())

Однако штатный механизм генерации эскизов (магазин - настройки - изображения - Удалить и заново создать эскизы изображений всех товаров) а так же обращение к изображению по прямому URL при включенной опции Разрешить создание эскизов произвольных размеров по требованию, не генерируют никаких эскизов.

7 комментариев

  • +1
    Михаил Ушенин Михаил Ушенин Webasyst 1 февраля 2018 10:12 #

    Проверьте это в работе магазина, а не вашего кода. Если магазин всё делает правильно, значит, проблема в вашем коде.

    • +2
      Павел Трофимов Павел Трофимов 1 февраля 2018 10:18 #

      Нет, Михаил, я наверное неудачно выразился... Ситуация с точностью до наоборот: в моем коде с исползованием вышеприведенной строки кода все работает и генерирует, а вот магазин с этой задачей справиться не может.

      Т.е., к примеру, если запустить перегенерацию эскизов, то старые (созданный мной программно) удалятся. а новые не создадутся.

      • +1
        Михаил Ушенин Михаил Ушенин Webasyst 1 февраля 2018 10:33 #

        Возможно, разработчики магазина не рассчитывали на обработку эскизов, сформированных так, как это делаете вы. А рассчитывали только на сформированные пользователями через интерфейс магазина.

        Расскажите подробнее, что у вас за способ и почему ваш способ должны учесть разработчики магазина.

        • +2
          Павел Трофимов Павел Трофимов 1 февраля 2018 10:41 #

          Что-то у меня сегодня способность излагать мысли поломалась, видимо... )))

          Суть в чем: если название файла изображения состоит из кириллицы, штатные интерфейсные средства магазина (перегенерация эскизов) не генерируют эскизы. Так же эскизы не формируются при включенной опции Разрешить создание эскизов произвольных размеров по требованию.

          То что у меня они сгенерировались с использованием штатного метода shopImage::generateThumbs , говорит лишь о том, что ошибка возникает где-то чуть раньше.

          • +1
            Михаил Ушенин Михаил Ушенин Webasyst 1 февраля 2018 11:02 #
            если название файла изображения состоит из кириллицы, штатные интерфейсные средства магазина (перегенерация эскизов) не генерируют эскизы. Так же эскизы не формируются при включенной опции Разрешить создание эскизов произвольных размеров по требованию.

            У меня всё это происходит. Правда, при использовании настройки "Использовать исходные имена файлов" имена эскизов формируются с использованием транслита. Может, как-то с этим связано. Приведите пример оригинального имени вашего файла изображения — проверю у себя.


            • +2
              Павел Трофимов Павел Трофимов 1 февраля 2018 11:09 #

              Да, совершенно верно. Поэтому изначально и писал, что товары создаю программно. Т.е. там оригинальное наименование не транслитерируется а остается как есть. Например вытяжные_клапана.jpg

              • +1
                Владислав Горлов Владислав Горлов Webasyst 1 февраля 2018 13:30 #

                Использовать символы за пределами цифр и латинских символов некорректно, если учитывать особенности файловых систем хостингов, компьютеров разработчиков и эпизодической необходимости переноса данных (если быть точным, то кодировки файловых систем различаются и это в лучшем случае требует настройки и доставляет неудобства).

                Если задача использования кириллицы обусловлена SEO, то уж лучше перейти к транслитерации.

                И ошибка генерации возникает за счет того, что запрашиваемое имя файла проходит кодирование в urlencoded строки, а файла с таким именем уже нет в файловой системе, помочь может костыль с явным urldecode и, возможно, изменениями кодировки строки в файле thumb.php (и необходимыми проверками, чтобы запрашиваемый файл не оказался за пределами разрешенных директорий)

                Добавить комментарий

                Чтобы добавить комментарий, зарегистрируйтесь или войдите