Если у вас возникли проблемы, пожалуйста, дайте мне знать, отправив электронное письмо на evgeniy@y-ea.ru. Спасибо!
День добрый! Меня зовут Евгений. Я IT специалист и web - разработчик.
Email: evgeniy@y-ea.ru
Яловой Евгений
Россия, Краснодар
С новой версией 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() }}
Надеюсь кому нибудь поможет данная статья.
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));
И не забудьте почистить кэш шаблона
Комментарии
2. Evgeniy пишет
Пожалуйста ;-)
1. Сергей пишет
Спасибо за Ваш труд!
Новый комментарий