Эта проблема в файле system\library\template\Twig\Loader\Filesystem.php
Там идет проверка на шаблон на путь, но в каталоге system/storage/modification пути до шаблона админки и до шаблона темы отличаются. По сути проверяет путь до шаблона админки
Вот найдите функцию findTemplate
В ней есть код
foreach ($this->paths[$namespace] as $path) {
if (is_file($path.'/'.$shortname)) {
if (false !== $realpath = realpath($path.'/'.$shortname)) {
return $this->cache[$name] = $realpath;
}
return $this->cache[$name] = $path.'/'.$shortname;
}
}
Вставте посте foreach
echo $path.'/'.$shortname;
И увидите что это путь до шаблона админки. А вот нам нужно чтобы когда мы на фроненде проверка была по пути фронта
У админки путь storage/modification/admin/view/template
У фроненда должен быть путь storage/modification/catalog/view/theme/default/template
А проверяет чисто путь админки. Что нам для того нужно? Все просто
Открываем index.php в папке admin и в самом верху прописываем после
// Version
define('VERSION', '3.0.2.0');
Вот это
define('MY_FRONT', 0);
Далее заходим в index.php нашего фронта, он в корне сайта и так же прописываем после VERSION
define('MY_FRONT', 1);
В итоге мы теперь знаем где находимся
Далее открываем файл system\library\template\Twig\Loader\Filesystem.php
Ищем функцию findTemplate и перед кодом
foreach ($this->paths[$namespace] as $path) {
if (is_file($path.'/'.$shortname)) {
if (false !== $realpath = realpath($path.'/'.$shortname)) {
return $this->cache[$name] = $realpath;
}
return $this->cache[$name] = $path.'/'.$shortname;
}
}
Прописываем проверку
//////////////////////////////////////////////////////////////////
//Делаем проверку админка или фронт
if( MY_FRONT != 1 ) {
$shortname = $shortname;
} else {
$shortname = 'default/template/'.$shortname;
}
В итоге должно получится вот так, вся функция с внесенными изменениями
protected function findTemplate($name)
{
$throw = func_num_args() > 1 ? func_get_arg(1) : true;
$name = $this->normalizeName($name);
if (isset($this->cache[$name])) {
return $this->cache[$name];
}
if (isset($this->errorCache[$name])) {
if (!$throw) {
return false;
}
throw new Twig_Error_Loader($this->errorCache[$name]);
}
$this->validateName($name);
list($namespace, $shortname) = $this->parseName($name);
if (!isset($this->paths[$namespace])) {
$this->errorCache[$name] = sprintf('There are no registered paths for namespace "%s".', $namespace);
if (!$throw) {
return false;
}
throw new Twig_Error_Loader($this->errorCache[$name]);
}
//////////////////////////////////////////////////////////////////
//Делаем проверку админка или фронт
if( MY_FRONT != 1 ) {
$shortname = $shortname;
} else {
$shortname = 'default/template/'.$shortname;
}
foreach ($this->paths[$namespace] as $path) {
if (is_file($path.'/'.$shortname)) {
if (false !== $realpath = realpath($path.'/'.$shortname)) {
return $this->cache[$name] = $realpath;
}
return $this->cache[$name] = $path.'/'.$shortname;
}
}
$this->errorCache[$name] = sprintf('Unable to find template "%s" (looked into: %s).', $name, implode(', ', $this->paths[$namespace]));
if (!$throw) {
return false;
}
throw new Twig_Error_Loader($this->errorCache[$name]);
}
Теперь ошибок таких вылазить не будет.
Нюанс, если у вас тема не default то пропишите название своей темы