Вход

Если у вас возникли проблемы, пожалуйста, дайте мне знать, отправив электронное письмо на evgeniy@y-ea.ru. Спасибо!

Забыли пароль или не зарегестрированны?

Пару фиксов для opencart 3 (версия 3.0.3.6)

Evgeniy / 04 августа 2020 / Опубликовано в Блог
Пару фиксов для opencart 3 (версия 3.0.3.6)

С новой версией Opencart 3 подъехали "замечательные" урезания.

Например в файле system/library/template/twig.php оставили только Twig_Loader_Array (загрузка шаблонов из php), убрали Twig_Loader_Filesystem (загрузка шаблонов из файловой системы), тоесть в не которые плагины перестают работать (например SEO Backpack). Для того что бы избежать этого делаем фикс  в файле: system\library\template\twig.php.

Заменяем или коментируем строк 

$loader = new \Twig\Loader\ArrayLoader(array($filename . '.twig' => $code));

На следующий код:

 $loader1 = new \Twig_Loader_Array(array($filename . '.twig' => $code));
 $loader2 = new \Twig_Loader_Filesystem(array(DIR_TEMPLATE)); 
 $loader = new \Twig_Loader_Chain(array($loader1, $loader2));

Пример ошибки связаной с include:

Fatal error: Uncaught Twig\Error\LoaderError: Template "extension/module/isenselabs_seo/tab_urls_linking.twig" is not defined in "extension/module/isenselabs_seo/isenselabs_seo.twig" at line 99. in /public_html/storage/vendor/twig/twig/src/Loader/ArrayLoader.php:70 Stack trace: #0 /public_html/storage/vendor/twig/twig/src/Environment.php(299): Twig\Loader\ArrayLoader->getCacheKey('extension/modul...') #1 /public_html/storage/vendor/twig/twig/src/Environment.php(381): Twig\Environment->getTemplateClass('extension/modul...') #2 /public_html/storage/vendor/twig/twig/src/Environment.php(513): Twig\Environment->loadTemplate('extension/modul...') #3 /public_html/storage/vendor/twig/twig/src/Extension/CoreExtension.php(1216): Twig\Environment->resolveTemplate(Array) #4 /public_html/storage/cache/template/27/274f519e05324e289d0bd6ecd3e4f041745367db41c84ca75dbdd1bc6 in /public_html/storage/vendor/twig/twig/src/Loader/ArrayLoader.php on line 70

Включение функции dump() тоже немного изменилось по сравнению с версией 3.0.3.2(3).

Все в том же файле system\library\template\twig.php добавляем:

$twig->addExtension(new \Twig\Extension\DebugExtension());

после

$twig = new \Twig\Environment($loader, $config);

Готово теперь можно пользоваться функцией {{ dump() }}

Надеюсь кому нибудь поможет данная статья. smiley

UPD: В Версии Opencart 3.0.3.8 поменялись пути

$loader1 = new \Twig\Loader\ArrayLoader(array($filename . '.twig' => $code));
$loader2 = new \Twig\Loader\FilesystemLoader(array(DIR_TEMPLATE)); 
$loader = new \Twig\Loader\ChainLoader(array($loader1, $loader2));

И не забудьте почистить кэш шаблона 


Теги: , ,

Комментарии

Ответ к комментарию #1
24.01.2023 22:44

2. Evgeniy пишет

Пожалуйста  ;-)

ответить
17.10.2022 18:28
Аватар

1. Сергей пишет

Спасибо за Ваш труд!

ответить

Новый комментарий

Имя:
:
Для редактирования комментария осталось 10 минут
TOP

Оставить заявку