Автор Тема: Ошибка в классе ImageManager.php  (Прочитано 267 раз)

31 Октябрь 2020, 19:59:35
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
С целью уменьшения количества места, занимаемого изображениями, решил усеньшить количество разных разрешений: настроил одинаковые разрешения в cart_default и small_default, а также в medium_default и home_default. После этого сайт не загружается.
В логах ошибка PHP Fatal error:  Maximum execution time of 30 seconds exceeded в классе ImageManager.php
Строки 4 разные.
В основном ошибка возникает в строке:  imagecopyresampled($dstImage, $srcImage, $dstX, $dstY, $srcX, $srcY, $dstW, $dstH, $srcW, $srcH);
Также иногда возникает ошибка в следующих строках:
imagecreatefromjpeg($filename);

$success = imagejpeg($resource, $filename, (int) $quality);

imagefilledrectangle($destImage, 0, 0, $destinationWidth, $destinationHeight, $white);

Может ли быть ошибка из-за того, что я настроил одинаковые разрешения для разных изображений. Если да, нужно возвращать те же, что и были или выставить любые другие, главное, чтобы не были одинаковыми

PS 1.7.6.7
01 Ноябрь 2020, 13:08:31
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Показ ошибок в prestashop включите. В логе ошибок посмотрите. Нужно понять от чего превышение времени.
Можно попробывать увеличить max_execution_time до 300 или 600.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
05 Ноябрь 2020, 10:14:59
Ответ #2
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Показ ошибок в prestashop включите. В логе ошибок посмотрите. Нужно понять от чего превышение времени.
Можно попробывать увеличить max_execution_time до 300 или 600.
Спасибо за подсказку. Дело было в том, что после изменения разрешения изображений произошла ошибка при перегенерации изображений из-за их большого количества. То-есть, насколько я понял функция обращалась к несуществующему обьекту (я в этом мало понимаю, можете поправить, если что-то не так сказал). Теперь возник вопрос: можно ли как-то в настройках или с помощью модуля сделать, так, чтобы при перегенерации изображений они разбивались на пакеты (как при импорте товаров), а не весь массив изображений сразу?
05 Ноябрь 2020, 12:14:30
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Есть модули генерации миниатюр с ajax без перезрузки.
Модуль lgimagesregenerator.
15 Ноябрь 2020, 15:58:40
Ответ #4
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Есть модули генерации миниатюр с ajax без перезрузки.
Модуль lgimagesregenerator.
Спасибо. Посмотрю