Ошибка базового шаблона интернет-магазина в модуле баннер для php 7
Bitrix 16.5.4
В базовом шаблоне CMS Битрикс интернет магазина при установке на php версии 7 возникает ошибка в компоненте advertising.banner:
1 2 3 4 5 6 7 8 9 10 11 |
[Error] Using $this when not in object context (0) /home/mebel-eli/web/mebel1.wdart.ru/public_html/bitrix/modules/main/classes/general/component_template.php:285 #0: CBitrixComponentTemplate::ApplyCachedData(array) /home/mebel-eli/web/mebel1.wdart.ru/public_html/bitrix/components/bitrix/advertising.banner/class.php:318 #1: AdvertisingBanner->executeComponent() /home/mebel-eli/web/mebel1.wdart.ru/public_html/bitrix/modules/main/classes/general/component.php:585 #2: CBitrixComponent->includeComponent(string, array, boolean) /home/mebel-eli/web/mebel1.wdart.ru/public_html/bitrix/modules/main/classes/general/main.php:1035 #3: CAllMain->IncludeComponent(string, string, array, boolean) /home/mebel-eli/web/mebel1.wdart.ru/public_html/index.php:26 |
Это связано с тем, что идет попытка вызвать статический метод который таким не является.
Код с ошибкой находится в файле /bitrix/components/bitrix/advertising.banner/class.php на 318 строке.
1 |
CBitrixComponentTemplate::ApplyCachedData($this->arVars["templateCachedData"]); |
Такая проблема решается путем правильного вызова функции. Заменим этот код на следующий:
1 2 |
$obTemplateCache = new CBitrixComponentTemplate; $obTemplateCache->ApplyCachedData($this->arVars["templateCachedData"]); |
И помним, что с обновлением движка битрикса эти исправления могут быть затерты.