Может кто то сталкивался что после обновления платформы и поднятия php до 7.4 перестает работать капча?
21.04.2020 22:02:05
Добрый день, возникла проблема, после обновления bitrix env и php, возникло несколько проблем.
1. Не переходит по страницам в каталоге, даже не знаю где искать почему он этого не делает. 2. При проверке сайта выводит ошибку проверки БД.
При этом часть я уже перевел в UTF, а вот эти не хотят, те которые переделал, делал через запрос
|
|||||
|
25.05.2019 18:39:25
Я нашел вот пример, но немного не пойму куда нужно скопировать компонент
[URL=https://abraxabra.ru/blog/bitrix-zametki/cnc-components-bitrix-site-root/]https://abraxabra.ru/blog/bitrix-zametki/cnc-components-bitrix-site-root/[/URL] [QUOTE] При переходе по меню разделов каталога у нас все хорошо. А вот при переходе на товар, компонент матерится – не может найти раздел. А ведь должен искать товар по символьному коду вместо раздела. Должен, да не обязан. Ковыряем исходный код /bitrix/components/bitrix/catalog/component.php. В конце файла есть вызов $this->IncludeComponentTemplate($componentPage);где $componentPage – это страница, которую надо подключить, в которой лежит либо деталка каталога, либо список товаров. Соответственно, когда нам нужна деталка, $componentPage = 'element', а когда список - $componentPage = 'section'; Выведя var_dump($componentPage) мы увидим там 'element'. Выходит компонент не понимает что ему отдали в урле – элемент инфоблока или категорию. И он начинает искать категорию, не находит и вываливает ошибку, либо кидает на 404-ю страницу. Значит, нужно его научить искать то что нужно. Для этого копируем в свое пространство имен компонент /bitrix/components/bitrix/catalog. И на 109 стр. ставим небольшую проверочку. if ($componentPage == 'section'){$rowSection = Bitrix\Iblock\SectionTable::getRow([ 'select' => ['CODE'], 'filter' => ['IBLOCK_ID' => $arParams['IBLOCK_ID'], '=CODE' => $arResult['VARIABLES']['SECTION_CODE']], ]); if (is_null($rowSection)){ $arResult['VARIABLES']['ELEMENT_CODE'] = $arResult['VARIABLES']['SECTION_CODE']; unset($arResult['VARIABLES']['SECTION_CODE']); $componentPage = 'element'; } }Которая говорит, что если у нас $componentPage == 'section' т.е. мы запросили категорию, давайте убедимся что это действительно категория и она существует в данном ИБ. И вот ежели ее нет, то значит от компонента пытаются получить деталку товара. И нам нужно переписать $componentPage = 'element'. И грохнуть unset($arResult['VARIABLES']['SECTION_CODE']); [/QUOTE] |
|
|