Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Class CIBlockSection not found

00 голосов
3
При включенном кешировании компонента bitrix:menu отказывается выполняться код result_modifier.php.Вот содержимое:
Код
 
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();

global $APPLICATION;

$component = $this->__component;

if(is_object($component)) {
    foreach($component->arResult as $key => $arItem) {
        preg_match("/[0-9]+/", $arItem["LINK"], $matches); //выдергиваем ID из урла секции
        $dbSection = CIBlockSection::GetByID($matches[0]); //спрашиваем, что за секция у нас
        if($arSection = $dbSection->GetNext()) {
            if(intval($arSection["PICTURE"]) > 0) {
                $dbFile = CFile::GetByID(intval($arSection["PICTURE"]))->GetNext();
                $component->arResult[$key]["PICTURE"] = array(
                    "ID" => $dbFile["ID"],
                    "SRC" => CFile::GetPath($dbFile["ID"]),
                    "HEIGHT" => $dbFile["HEIGHT"],
                    "WIDTH" => $dbFile["WIDTH"],
                    "DESCRIPTION" => $dbFile["DESCRIPTION"],
                );
            }
        }
    }
} 
 
Текст ошибки:
Fatal error: Class 'CIBlockSection' not found in /bitrix/templates/main/components/bitrix/menu/catalog-menu/result_modifier.php on line 17
Строка 17 - это $dbSection = CIBlockSection::GetByID($matches[0]);
Разве не должен result_modifier.php кешироваться вместе с шаблоном вывода компонента? 
спросил 08 Май, 13 от Fmaster (190 баллов)

3 Ответы

00 голосов
 
Лучший ответ
Цитата
Марат Бакиров пишет:
Class 'CIBlockSection' not found
ну вообще-то. такая система может быть, если не сделать 
Код
<? if(CModule::IncludeModule("iblock")) {    //здесь можно использовать функции и классы модуля } ?> 
ответил 08 Май, 13 от Texnik (1,860 баллов)
выбран 31 Янв, 21 от root
00 голосов
Цитата
Julliet пишет:
Цитата
Марат Бакиров пишет:
Class 'CIBlockSection' not found
ну вообще-то. такая система может быть, если не сделать
Код
 <? if(CModule::IncludeModule("iblock")) {    //здесь можно использовать функции и классы модуля } ?>  
Да, спасибо, упустил. Но вот что странно, вывод echo(date("H-i-s")); в этом самом result_modifier.php постоянно обновляет время, в это  же время в news:list не обновляет
ответил 09 Май, 13 от Fmaster (190 баллов)
00 голосов
Значит, у Вас в настройках компонента выключено кеширование.
ответил 12 Июль, 13 от Pomnep (13,960 баллов)

Похожие вопросы

0 голосов
4 ответов
спросил 26 Янв, 14 от Eoling (140 баллов)
0 голосов
3 ответов
спросил 05 Дек, 13 от Lollipopk (660 баллов)
0 голосов
5 ответов
спросил 02 Дек, 13 от Jitage (160 баллов)
0 голосов
3 ответов
спросил 23 Ноя, 13 от Kusuri (180 баллов)
0 голосов
5 ответов