Поиск по блогу

пятница, 6 октября 2017 г.

Белый экран и ошибка "Function getAssetUriFromLegacyDeprecatedMethod() is deprecated" в Prestashop 1.7

При установке тем на Prestashop 1.7 иногда невозможно запустить фронт сайд - получаем белый экран.



Надо включить отображение ошибок. В файле config/defines.inc.php в двух строках исправляем false на true

Перегружаем страницу и получаем ошибку:

ContextErrorException in Tools.php line 2704: User Warning: Function <b>getAssetUriFromLegacyDeprecatedMethod()</b> is deprecated in <b>... www\classes\controller\FrontController.php</b> on line <b>1085</b>  ... 

Решение оказалось достаточно простым:
Открываем указанный файл classes\controller\FrontController.php и в строке 1085, как отмечено в описании ошибки находим код с использованием этой функции.
Изменяем исходный код:
        foreach ($css_uri as $legacy_uri) {
            if ($uri = $this->getAssetUriFromLegacyDeprecatedMethod($legacy_uri)) {
                $this->registerStylesheet(sha1($uri), $uri, ['media' => $css_media_type, 'priority' => 80]);
            }
        }
на такой код
        foreach ($css_uri as $legacy_uri) {
          //  if ($uri = $this->getAssetUriFromLegacyDeprecatedMethod($legacy_uri)) {
                $this->registerStylesheet(sha1($legacy_uri), $legacy_uri, ['media' => $css_media_type, 'priority' => 80]);
          //  }
        }
Обратите внимание, что мы не просто комментируем IF, еще мы заменяем $uri на $legacy_uri

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

Отправить комментарий

Есть что сказать - скажи