Получается так, что список темплейт хуков создается общий для всех витрин (и соответственно тем). В результате, если на одной витрине с Темой_1 какой-то модуль применяет хук, то на второй витрине с Темой_2 (если она не является дочерней от Темы_1) появится ошибка об отсутствующем файле.
Нужно кешировать с учетом витрины (либо активной темы).
1 лайк
Проблема актуальна, есть обращения клиентов. При этом Ваша техподдержка всё еще пишет клиентам что это “проблемы сторонних тем, потому что при выборе для всех витрин Responsive проблема исчезает”.
2 лайка
Приносим извинения за задержку с ответом.
Мы сообщили разработчикам об этой проблеме.
Здравствуйте, @ab.developer.inj .
Проблему исправили, исправление войдет в релиз 4.11.5. Для исправления проблемы собственными силами можно использовать патч:
app-Tygh-Providers-StorefrontProvider.php.diff
diff --git a/app/Tygh/Providers/StorefrontProvider.php b/app/Tygh/Providers/StorefrontProvider.php
index 29a9a5cb79..5b8d935ffb 100644
--- a/app/Tygh/Providers/StorefrontProvider.php
+++ b/app/Tygh/Providers/StorefrontProvider.php
@@ -24,6 +24,7 @@ use Tygh\Storefront\RelationsManager;
use Tygh\Storefront\Factory;
use Tygh\Storefront\Normalizer;
use Tygh\Storefront\Repository;
+use Tygh\Tygh;
This file has been truncated. show original
app-Tygh-Registry.php.diff
diff --git a/app/Tygh/Registry.php b/app/Tygh/Registry.php
index 508878db7f..f538076053 100644
--- a/app/Tygh/Registry.php
+++ b/app/Tygh/Registry.php
@@ -15,6 +15,7 @@
namespace Tygh;
use Tygh\Exceptions\DeveloperException;
+use Tygh\Providers\StorefrontProvider;
This file has been truncated. show original
app-Tygh-SmartyEngine-Core.php.diff
diff --git a/app/Tygh/SmartyEngine/Core.php b/app/Tygh/SmartyEngine/Core.php
index 29f7fd24a2..fa3ab63b6b 100644
--- a/app/Tygh/SmartyEngine/Core.php
+++ b/app/Tygh/SmartyEngine/Core.php
@@ -145,17 +145,16 @@ class Core extends \Smarty
$this->theme = Themes::areaFactory($area, $company_id, $storefront_id);
if ($area == 'C') {
- Registry::registerCache('theme_dirs', array(), Registry::cacheLevel('static'));
+ Registry::registerCache('theme_dirs', [], Registry::cacheLevel(['static', 'storefront']));
This file has been truncated. show original
There are more than three files. show original
О том, как применить патч, можно прочитать в нашей документации:
https://www.cs-cart.ru/docs/latest/upgrade/apply_diff_file.html