/** * Modification view opencart * @param $template * @param array $data * @return string */ public function view($template, $data = array()) { //se o twig for desativado if (!Util::getConfig('enable_twig')) { return $this->viewRaw($template, $data); } \Twig_Autoloader::register(); $paths = []; //pega o nome do template atual $current_theme = Util::getConfig('config_template'); //remove theme paths $view = str_replace(['default/template/', $current_theme . '/template/'], '', $template); //check vqmod view $vqmod_template = Vqmod::modCheck(DIR_TEMPLATE . $current_theme . '/' . $view); if (strpos($vqmod_template, DIR_VQMOD_CACHE) !== false) { $paths[] = DIR_VQMOD_CACHE; $view = str_replace(DIR_VQMOD_CACHE, '', $vqmod_template); } else { if (Util::getConfig('is_admin')) { $paths[] = DIR_TEMPLATE; } else { //load theme view if (is_dir(DIR_TEMPLATE . $current_theme . '/template/')) { $paths[] = DIR_TEMPLATE . $current_theme . '/template/'; } //load theme default if (is_dir(DIR_TEMPLATE . Util::getConfig('theme_default') . '/template/')) { $paths[] = DIR_TEMPLATE . Util::getConfig('theme_default') . '/template/'; } } } //Get all extensions $extensions = Extension::getAll(); if ($extensions) { //load extension view if (Util::getConfig('is_admin')) { foreach (Util::getConfig('admin_extensions_paths') as $path_extension) { $extensions_path = glob(DIR_ROOT . '/' . Util::getConfig('extension_path') . '/*/*/' . $path_extension . '/view/template/', GLOB_ONLYDIR); if ($extensions_path && is_array($extensions_path) && count($extensions_path)) { $paths = array_merge($paths, $extensions_path); } } } else { $extensions_path = glob(DIR_ROOT . '/' . Util::getConfig('extension_path') . '/*/*/' . Util::getConfig('theme_path') . '/template/', GLOB_ONLYDIR); if ($extensions_path && is_array($extensions_path) && count($extensions_path)) { foreach ($extensions_path as $item) { if (file_exists($item . $view)) { $template = $view; $paths = array_merge($paths, $extensions_path); } } } } } $fileSystem = new \Twig_Loader_Filesystem($paths); $cache = false; if (Util::getConfig('twig_cache')) { $cache = DIR_STORAGE . '/' . Util::getConfig('twig_cache'); } $twig = new \Twig_Environment($fileSystem, array('autoescape' => Util::getConfig('twig_autoescape'), 'cache' => $cache, 'debug' => Util::getConfig('twig_debug'))); $twig->addExtension(new \Twig_Extension_Debug()); $twig->addExtension(new Ecommerce(Util::getRegistry())); Util::getRegistry()->set('twig', $twig); extract($data); ob_start(); if ($fileSystem->exists(str_replace('.tpl', '', $view) . '.twig', $data)) { $output = Util::getRegistry()->get('twig')->render(str_replace('.tpl', '', $view) . '.twig', $data); } else { if ($fileSystem->exists($view, $data)) { $output = Util::getRegistry()->get('twig')->render($view, $data); } else { trigger_error('Error: Could not load template ' . $template . '!'); exit; } } eval(' ?>' . $output); $output = ob_get_contents(); ob_end_clean(); return $output; }