ошибка Некорректно работающий модуль simple

A

alex_chapman

Шопмейкер
#1
У клиента выскочила ошибка при попытке оформить заказ  - opencart
Заглядываю в справку сэмплы и там предложение первое по списку:
Откройте файл

system/library/template/twig.php
и замените код

$loader = new \Twig_Loader_Array(array($filename . '.twig' => $code));
на такой код

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

после этого обязательно обновите кэш твига на главной странице админки опенкарта!

Внимание! Иногда строка для замены может иметь другой вид, если не нашли у себя строку выше, то найдите такую и замените ее кодом выше

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

Ну ок, лезем на наш файлик, он уже спасибо разработчикам бро поправлен как нужно
PHP:
<?php
namespace Template;
final class Twig {
    private $data = array();
  
    public function set($key, $value) {
        $this->data[$key] = $value;
    }
  
    public function render($filename, $code = '') {
        if (!$code) {
            $file = DIR_TEMPLATE . $filename . '.twig';

            if (is_file($file)) {
                $code = file_get_contents($file);
            } else {
                throw new \Exception('Error: Could not load template ' . $file . '!');
                exit();
            }
        }

        // initialize Twig environment
        $config = [
            'charset'     => 'utf-8',
            'autoescape'  => false,
            'debug'       => false,
            'auto_reload' => true,
            'cache'       => DIR_CACHE . 'template/'
        ];
      
        try {
            $refixed = new \Twig_Loader_Array(array($filename . '.twig' => $code));
                    $template = new \Twig_Loader_Filesystem(array(DIR_TEMPLATE));
                    $loader = new \Twig_Loader_Chain(array($refixed, $template));

            $twig = new \Twig\Environment($loader, $config);
          
            return $twig->render($filename . '.twig', $this->data);
        } catch (Exception $e) {
            trigger_error('Error: Could not load template ' . $filename . '!');
            exit(); 
        } 
    }
}

Но ошибка то откуда то взялась?
И тут ответ разработчика simple:
Файл уже поправлен как нужно
Обновите кэш менеджера дополнений

Ну и плюс вчитайтесь сами в текст ошибки
У вас вроде как твиг шаблон, запрашивается обычный tpl (и это не модуль выбирает, он базируется на том, что выдаёт опенкарт, какой тип шаблонизатор использует)

Поэтому переустановите модуль под свою версию опенкарта и если не поможет, то отменяйте правки в опенкарте
Модуль же тоже не на ровном месте и просто так стал выдавать ошибку...
Ах да, брокарт 3 же дружит и с темами на TPL! Он не мог на TWIG тему так среагировать?
Уважаемые, может у вас есть мысли как побороть эту бяку?
Тема unishop 2
Brocart 3.0.3.6
PHP 7.3
Сайт: цветыминск.бел
Для воспроизведения ошибки достаточно добавить товар в корзину и попробовать оформить заказ
 
Останнє редагування:
OP
A

alex_chapman

Шопмейкер
Thread Starter #3
Все на сайте работает, у меня ошибки не появляются
У меня тоже перестал выскакивать после того, как я отключил замену ссылок Симплы для перехода на стандартное оформление заказа от темы. Checkout темы не включился, остался simpl-овский, но ошибка свалила...
 
Зверху