OC v3.х Если не работает {% include %} в шаблонах opencart 3 (версия 3.0.3.6 - 3.0.3.7)

decole

Созидатель (II)
Сообщения
3
Симпатии
1
Баллы
35
При установке модуля OCFilter отвалился сайт. По логам вижу такие ошибки:

Код:
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

На github есть пост https://github.com/opencart/opencart/issues/8134

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

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

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

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

вставляем ниже следующий код:

PHP:
 $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));


Включение функции dump() тоже немного изменилось по сравнению с версией 3.0.3.2(3).
Все в том же файле system\library\template\twig.php добавляем:

после
PHP:
$twig = new \Twig\Environment($loader, $config);

добавляем

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

Готово теперь можно пользоваться функцией {{ dump() }}
 
установил тему Простор ( https://ucrack.com/threads/3922/page-3 ), сверху поставил OCFilter, и такая же ошибка, ваш рецепт не помог :(
Есть еще варианты пофиксить? Вот полный код:

Fatal error: Uncaught Twig\Error\LoaderError: Template "default/template/extension/module/ocfilter/selected_filter.twig" is not defined in "default/template/extension/module/ocfilter/module.twig" at line 15. in /var/www/123/www/storage/vendor/twig/twig/src/Loader/ArrayLoader.php:70 Stack trace: #0 /var/www/123/www/storage/vendor/twig/twig/src/Environment.php(299): Twig\Loader\ArrayLoader->getCacheKey('default/templat...') #1 /var/www/123/www/storage/vendor/twig/twig/src/Environment.php(381): Twig\Environment->getTemplateClass('default/templat...') #2 /var/www/123/www/storage/vendor/twig/twig/src/Template.php(333): Twig\Environment->loadTemplate('default/templat...', NULL) #3 /var/www/123/www/storage/cache/template/51/510e604402f0bc559f26910fca15592bcc7c5ef4b4a763346419b6a5729a24f1.php(57): Twig\Template->loadTemplate('default/templat...', 'default/templat...', 15) #4 /var/www/123/www/storage/vendor/twig/twig/src/Template.php(405): __TwigTemplate_3e52139c792a734ca1004907e5f1d136916 in /var/www/123/www/storage/vendor/twig/twig/src/Loader/ArrayLoader.php on line 70
 
Назад
Верх