TypeError
Bitrix\Main\Loader::registerHandler(): Argument #1 ($handler) must be of type callable, array given, called in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/iblock/autoload.php on line 168 TypeError thrown with message "Bitrix\Main\Loader::registerHandler(): Argument #1 ($handler) must be of type callable, array given, called in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/iblock/autoload.php on line 168" Stacktrace: #22 TypeError in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/main/lib/loader.php:333 #21 Bitrix\Main\Loader:registerHandler in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/iblock/autoload.php:168 #20 require_once in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/iblock/iblock.php:11 #19 include_once in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/iblock/include.php:3 #18 include_once in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/main/lib/loader.php:190 #17 Bitrix\Main\Loader:includeModuleInternal in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/main/lib/loader.php:146 #16 Bitrix\Main\Loader:includeModule in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/main/classes/general/module.php:142 #15 CModule:IncludeModule in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/aspro.max/classes/general/CMaxCache.php:779 #14 CMaxCache:_InitCacheParams in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/aspro.max/classes/general/CMaxCache.php:8 #13 CMaxCache:CIBlock_GetList in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/aspro.max/classes/general/CMaxCache.php:1002 #12 require_once in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/main/lib/loader.php:372 #11 Bitrix\Main\Loader:autoLoad in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/aspro.max/classes/general/CMaxRegionality.php:58 #10 CMaxRegionality:getRegionIBlockID in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/aspro.max/classes/general/CMaxRegionality.php:118 #9 CMaxRegionality:getRegions in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/aspro.max/classes/general/CMaxRegionality.php:439 #8 CMaxRegionality:getCurrentRegion in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/aspro.max/classes/general/CMaxEvents.php:1743 #7 CMaxEvents:OnPageStartHandler in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/main/tools.php:4741 #6 ExecuteModuleEventEx in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/main/include.php:173 #5 require_once in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/main/include/prolog_before.php:19 #4 require_once in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/main/include/prolog.php:10 #3 require_once in /var/www/www-root/data/www/vannstudio.ru/bitrix/header.php:1 #2 require in /var/www/www-root/data/www/vannstudio.ru/catalog/index.php:1 #1 include_once in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/main/include/urlrewrite.php:184 #0 include_once in /var/www/www-root/data/www/vannstudio.ru/bitrix/urlrewrite.php:2
Stack frames (23)
22
TypeError
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
main
/
lib
/
loader.php
333
21
Bitrix
\
Main
\
Loader
registerHandler
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
iblock
/
autoload.php
168
20
require_once
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
iblock
/
iblock.php
11
19
include_once
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
iblock
/
include.php
3
18
include_once
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
main
/
lib
/
loader.php
190
17
Bitrix
\
Main
\
Loader
includeModuleInternal
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
main
/
lib
/
loader.php
146
16
Bitrix
\
Main
\
Loader
includeModule
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
main
/
classes
/
general
/
module.php
142
15
CModule
IncludeModule
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
aspro.max
/
classes
/
general
/
CMaxCache.php
779
14
CMaxCache
_InitCacheParams
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
aspro.max
/
classes
/
general
/
CMaxCache.php
8
13
CMaxCache
CIBlock_GetList
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
aspro.max
/
classes
/
general
/
CMaxCache.php
1002
12
require_once
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
main
/
lib
/
loader.php
372
11
Bitrix
\
Main
\
Loader
autoLoad
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
aspro.max
/
classes
/
general
/
CMaxRegionality.php
58
10
CMaxRegionality
getRegionIBlockID
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
aspro.max
/
classes
/
general
/
CMaxRegionality.php
118
9
CMaxRegionality
getRegions
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
aspro.max
/
classes
/
general
/
CMaxRegionality.php
439
8
CMaxRegionality
getCurrentRegion
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
aspro.max
/
classes
/
general
/
CMaxEvents.php
1743
7
CMaxEvents
OnPageStartHandler
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
main
/
tools.php
4741
6
ExecuteModuleEventEx
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
main
/
include.php
173
5
require_once
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
main
/
include
/
prolog_before.php
19
4
require_once
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
main
/
include
/
prolog.php
10
3
require_once
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
header.php
1
2
require
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
catalog
/
index.php
1
1
include_once
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
main
/
include
/
urlrewrite.php
184
0
include_once
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
urlrewrite.php
2
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
main
/
lib
/
loader.php
        ];
    }
 
    /**
     * Unregisters a namespace.
     * @param string $namespace
     */
    public static function unregisterNamespace($namespace)
    {
        $namespace = trim($namespace, "\\")."\\";
        $namespace = strtolower($namespace);
 
        unset(self::$namespaces[$namespace]);
    }
 
    /**
     * Registers an additional autoload handler.
     * @param callable $handler
     */
    public static function registerHandler(callable $handler)
    {
        \spl_autoload_register($handler);
    }
 
    /**
     * PSR-4 compatible autoloader.
     * https://www.php-fig.org/psr/psr-4/
     *
     * @param string $className
     */
    public static function autoLoad($className)
    {
        // fix web env
        $className = ltrim($className, "\\");
 
        $classLower = strtolower($className);
 
        static $documentRoot = null;
        if ($documentRoot === null)
        {
Arguments
  1. "Bitrix\Main\Loader::registerHandler(): Argument #1 ($handler) must be of type callable, array given, called in /var/www/www-root/data/www/vannstudio.ru/bitrix/modules/iblock/autoload.php on line 168"
    
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
iblock
/
autoload.php
    '\Bitrix\Iblock\Template\Functions\FunctionContrast' => "lib/template/functions/fabric.php",
    '\Bitrix\Iblock\Template\Functions\FunctionMin' => "lib/template/functions/fabric.php",
    '\Bitrix\Iblock\Template\Functions\FunctionMax' => "lib/template/functions/fabric.php",
    '\Bitrix\Iblock\Template\Functions\FunctionDistinct' => "lib/template/functions/fabric.php",
    '\Bitrix\Iblock\Update\AdminFilterOption' => 'lib/update/adminfilteroption.php',
    '\Bitrix\Iblock\Update\AdminGridOption' => 'lib/update/admingridoption.php',
    '\Bitrix\Iblock\Url\AdminPage\BaseBuilder' => 'lib/url/adminpage/basebuilder.php',
    '\Bitrix\Iblock\Url\AdminPage\BuilderManager' => 'lib/url/adminpage/buildermanager.php',
    '\Bitrix\Iblock\Url\AdminPage\IblockBuilder' => 'lib/url/adminpage/iblockbuilder.php',
    '\Bitrix\Iblock\SenderEventHandler' => "lib/senderconnector.php",
    '\Bitrix\Iblock\SenderConnectorIblock' => "lib/senderconnector.php",
);
//if (\Bitrix\Main\ModuleManager::isModuleInstalled('bizproc'))
if (Loader::includeModule('bizproc'))
    $arClasses["CIBlockDocument"] = "classes/general/iblockdocument.php";
 
Loader::registerAutoLoadClasses("iblock", $arClasses);
 
// orm autoloader
Loader::registerHandler([\Bitrix\Iblock\ORM\Loader::class, 'autoLoad']);
Arguments
  1. array:2 [
      0 => "Bitrix\Iblock\ORM\Loader"
      1 => "autoLoad"
    ]
    
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
iblock
/
iblock.php
<?php
 
IncludeModuleLangFile(__FILE__);
 
if(!defined("CACHED_b_iblock_type")) define("CACHED_b_iblock_type", 36000);
if(!defined("CACHED_b_iblock")) define("CACHED_b_iblock", 36000);
if(!defined("CACHED_b_iblock_bucket_size")) define("CACHED_b_iblock_bucket_size", 20);
if(!defined("CACHED_b_iblock_property_enum")) define("CACHED_b_iblock_property_enum", 36000);
if(!defined("CACHED_b_iblock_property_enum_bucket_size")) define("CACHED_b_iblock_property_enum_bucket_size", 100);
 
require_once __DIR__.'/autoload.php';
 
/**
 * Returns list of the information blocks of specified $type linked to the current site
 * including ELEMENT_CNT column which presents currently active elements.
 *
 * @param string $type Information blocks type to get blocks from.
 * @param array|string|int $arTypesInc Information block ID or CODE or array of IDs or CODEs to get.
 * @param array|string|int $arTypesExc Information block ID or CODE or array of IDs or CODEs to exclude.
 * @param array $arOrder Order in which blocks will be returned.
 * @param int $cnt Maximum count of iblocks to be returned.
 *
 * @return CIBlockResult
 * @deprecated No longer used by internal code and not recommended.
 */
function GetIBlockListWithCnt($type, $arTypesInc = array(), $arTypesExc = array(), $arOrder = array("sort" => "asc"), $cnt = 0)
{
    return GetIBlockListLang(SITE_ID, $type, $arTypesInc, $arTypesExc, $arOrder, $cnt, true);
}
/**
 * Returns list of the information blocks of specified $type linked to the current site
 *
 * @param string $type Information blocks type to get blocks from.
 * @param array|string|int $arTypesInc Information block ID or CODE or array of IDs or CODEs to get.
 * @param array|string|int $arTypesExc Information block ID or CODE or array of IDs or CODEs to exclude.
 * @param array $arOrder Order in which blocks will be returned.
 * @param int $cnt Maximum count of iblocks to be returned.
 *
 * @return CIBlockResult
 * @deprecated No longer used by internal code and not recommended.
Arguments
  1. "/var/www/www-root/data/www/vannstudio.ru/bitrix/modules/iblock/autoload.php"
    
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
iblock
/
include.php
<?php
/*patchlimitationmutatormark1*/
include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/iblock/iblock.php");
/*patchlimitationmutatormark2*/
?>
Arguments
  1. "/var/www/www-root/data/www/vannstudio.ru/bitrix/modules/iblock/iblock.php"
    
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
main
/
lib
/
loader.php
     * @return bool
     * @throws LoaderException
     */
    public static function requireModule($moduleName)
    {
        $included = self::includeModule($moduleName);
 
        if (!$included && self::$requireThrowException)
        {
            throw new LoaderException("Required module `{$moduleName}` was not found");
        }
 
        return $included;
    }
 
    private static function includeModuleInternal($path)
    {
        /** @noinspection PhpUnusedLocalVariableInspection */
        global $DB, $MESS;
        return include_once($path);
    }
 
    /**
     * Includes shareware module by its name.
     * Module must initialize constant <module name>_DEMO = Y in include.php to define demo mode.
     * include.php must return false to define trial period expiration.
     * Constants are used because it is easy to obfuscate them.
     *
     * @param string $moduleName Name of the included module
     * @return int One of the following constant: Loader::MODULE_NOT_FOUND, Loader::MODULE_INSTALLED, Loader::MODULE_DEMO, Loader::MODULE_DEMO_EXPIRED
     */
    public static function includeSharewareModule($moduleName)
    {
        if (isset(self::$sharewareModules[$moduleName]))
        {
            return self::$sharewareModules[$moduleName];
        }
 
        $module = str_replace(".", "_", $moduleName);
 
Arguments
  1. "/var/www/www-root/data/www/vannstudio.ru/bitrix/modules/iblock/include.php"
    
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
main
/
lib
/
loader.php
        {
            //bitrix's module
            $baseName = "Bitrix\\".ucfirst($moduleName);
        }
        self::registerNamespace($baseName, $documentRoot."/".$moduleHolder."/modules/".$moduleName."/lib");
 
        self::$modulesHolders[$moduleName] = $moduleHolder;
 
        if (class_exists('\Dev\Main\Migrator\ModuleUpdater'))
        {
            \Dev\Main\Migrator\ModuleUpdater::checkUpdates($moduleName, $pathToInclude);
        }
 
        $res = true;
        if (file_exists($pathToInclude."/include.php"))
        {
            //recursion control
            self::$semiloadedModules[$moduleName] = true;
 
            $res = self::includeModuleInternal($pathToInclude."/include.php");
 
            unset(self::$semiloadedModules[$moduleName]);
        }
 
        self::$loadedModules[$moduleName] = ($res !== false);
 
        if (!self::$loadedModules[$moduleName])
        {
            //unregister the namespace if "include" fails
            self::unregisterNamespace($baseName);
        }
        else
        {
            ServiceLocator::getInstance()->registerByModuleSettings($moduleName);
        }
 
        return self::$loadedModules[$moduleName];
    }
 
    /**
Arguments
  1. "/var/www/www-root/data/www/vannstudio.ru/bitrix/modules/iblock/include.php"
    
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
main
/
classes
/
general
/
module.php
    {
        \Bitrix\Main\ModuleManager::add($this->MODULE_ID);
    }
 
    public static function GetList()
    {
        $result = new CDBResult;
        $result->InitFromArray(CModule::_GetCache());
        return $result;
    }
 
    /**
     * Makes module classes and function available. Returns true on success.
     *
     * @param string $module_name
     * @return bool
     */
    public static function IncludeModule($module_name)
    {
        return \Bitrix\Main\Loader::includeModule($module_name);
    }
 
    public static function IncludeModuleEx($module_name)
    {
        return \Bitrix\Main\Loader::includeSharewareModule($module_name);
    }
 
    public static function GetDropDownList($strSqlOrder="ORDER BY ID")
    {
        global $DB;
 
        $strSql = "
            SELECT
                ID as REFERENCE_ID,
                ID as REFERENCE
            FROM
                b_module
            $strSqlOrder
            ";
        $res = $DB->Query($strSql);
Arguments
  1. "iblock"
    
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
aspro.max
/
classes
/
general
/
CMaxCache.php
                if($resultIDsCount){
                    if($resultIDsCount > 1){
                        foreach($arParams["RESULT"] as $ID){
                            $val[$ID] = $arItem[$ID];
                        }
                    }
                    else{
                        $val = $arItem[current($arParams["RESULT"])];
                    }
                }
                else{
                    $val = $arItem;
                }
                static::_MakeResultTreeArray($arParams, $arItem, $val, $arRes);
            }
            return $arRes;
        }
 
        private static function _InitCacheParams($moduleName, $functionName, $arCache){
            CModule::IncludeModule($moduleName);
 
            $cacheTag = isset($arCache["TAG"]) && strlen($arCache["TAG"]) ? $arCache["TAG"] : '_notag';
            $cachePath = isset($arCache["PATH"]) && strlen($arCache["PATH"]) ? $arCache["PATH"] : '/'.__CLASS__.'/'.$moduleName.'/'.$functionName.'/'.$cacheTag.'/';
            $cacheTime = ((isset($arCache["TIME"]) && $arCache["TIME"] > 0) ? $arCache["TIME"] : 36000000);
            
            return array($cacheTag, $cachePath, $cacheTime);
        }
 
        private static function _GetElementSectionsArray($ID){
            $arSections = array();
            $resGroups = CIBlockElement::GetElementGroups($ID, true, array("ID"));
            while($arGroup = $resGroups->Fetch()){
                $arSections[] = $arGroup["ID"];
            }
            return (!$arSections ? false : (count($arSections) == 1 ? current($arSections) : $arSections));
        }
 
        private static function _GetFieldsAndProps($dbRes, $arSelectFields, $bIsIblockElement = false, $bCanMultiSection = true){
            $arRes = $arResultIDsIndexes = array();
            if($arSelectFields && (in_array("DETAIL_PAGE_URL", $arSelectFields) === false && in_array("SECTION_PAGE_URL", $arSelectFields) === false)){
Arguments
  1. "iblock"
    
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
aspro.max
/
classes
/
general
/
CMaxCache.php
<?
if (!class_exists('CMaxCache')) {
    class CMaxCache {
        static public $arIBlocks = NULL;
        static public $arIBlocksInfo = NULL;
 
        public static function CIBlock_GetList($arOrder = array("SORT" => "ASC", "CACHE" => array("MULTI" => "Y", "GROUP" => array(), "RESULT" => array(), "TAG" => "", "PATH" => "", "TIME" => 36000000)), $arFilter = array(), $bIncCnt = false){
            list($cacheTag, $cachePath, $cacheTime) = static::_InitCacheParams("iblock", __FUNCTION__, $arOrder["CACHE"]);
            $obCache = new CPHPCache();
            $cacheID = __FUNCTION__."_".$cacheTag.md5(serialize(array_merge((array)$arOrder, (array)$arFilter, (array)$bIncCnt)));
            if($obCache->InitCache($cacheTime, $cacheID, $cachePath)){
                $res = $obCache->GetVars();
                $arRes = $res["arRes"];
            }
            else{
                $arRes = array();
                $arResultGroupBy = array(
                    "GROUP" => $arOrder["CACHE"]["GROUP"] ?? [],
                    "MULTI" => $arOrder["CACHE"]["MULTI"] ?? [],
                    "RESULT" => $arOrder["CACHE"]["RESULT"] ?? [],
                );
                unset($arOrder["CACHE"]);
                $dbRes = CIBlock::GetList($arOrder, $arFilter, $bIncCnt);
                while($item = $dbRes->Fetch()){
                    if($item['ID']){
                        $item['LID'] = array();
                        $dbIBlockSites = CIBlock::GetSite($item['ID']);
                        while($arIBlockSite = $dbIBlockSites->Fetch()){
                            $item['LID'][] = $arIBlockSite['SITE_ID'];
                        }
                    }
                    $arRes[] = $item;
                }
 
                if($arResultGroupBy["MULTI"] || $arResultGroupBy["GROUP"] || $arResultGroupBy["RESULT"]){
                    $arRes = static::GroupArrayBy($arRes, $arResultGroupBy);
                }
 
                static::_SaveDataCache($obCache, $arRes, $cacheTag, $cachePath, $cacheTime, $cacheID);
            }
Arguments
  1. "iblock"
    
  2. "CIBlock_GetList"
    
  3. array:1 [
      "TAG" => "iblocks"
    ]
    
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
aspro.max
/
classes
/
general
/
CMaxCache.php
        public static function ClearTagIBlockProperty($arFields){
            global $CACHE_MANAGER;
            if($arFields["ID"]){
                $CACHE_MANAGER->ClearByTag("PROP_".$arFields["ID"]);
            }
        }
 
        public static function ClearTagIBlockSectionBeforeDelete($ID){
            global $CACHE_MANAGER;
            if($ID > 0){
                if($IBLOCK_ID = static::CIBlockSection_GetList(array("CACHE" => array("MULTI" => "N", "RESULT" => array("IBLOCK_ID"))), array("ID" => $ID), false, array("IBLOCK_ID"), true)){
                    $CACHE_MANAGER->ClearByTag(static::GetIBlockCacheTag($IBLOCK_ID));
                }
            }
        }
    }
 
    // initialize CMaxCache::$arIBlocks array
    if(CMaxCache::$arIBlocks === NULL){
        $arIBlocksTmp = CMaxCache::CIBlock_GetList(array("CACHE" => array("TAG" => "iblocks")), array("ACTIVE" => "Y", "CHECK_PERMISSIONS" => "N"));
        CMaxCache::$arIBlocks = CMaxCache::GroupArrayBy($arIBlocksTmp, array("GROUP" => array("LID", "IBLOCK_TYPE_ID", "CODE"), "MULTI" => "Y", "RESULT" => array("ID")));
        CMaxCache::$arIBlocksInfo = CMaxCache::GroupArrayBy($arIBlocksTmp, array("GROUP" => array("ID")));
    }
}
?>
Arguments
  1. array:1 [
      "CACHE" => array:1 [
        "TAG" => "iblocks"
      ]
    ]
    
  2. array:2 [
      "ACTIVE" => "Y"
      "CHECK_PERMISSIONS" => "N"
    ]
    
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
main
/
lib
/
loader.php
        {
            $documentRoot = self::getDocumentRoot();
        }
 
        //optimization via direct paths
        if (isset(self::$autoLoadClasses[$classLower]))
        {
            $pathInfo = self::$autoLoadClasses[$classLower];
            if ($pathInfo["module"] != "")
            {
                $module = $pathInfo["module"];
                $holder = (self::$modulesHolders[$module] ?? self::BITRIX_HOLDER);
 
                $filePath = (defined('REPOSITORY_ROOT') && $holder === self::BITRIX_HOLDER)
                    ? REPOSITORY_ROOT
                    : "{$documentRoot}/{$holder}/modules";
 
                $filePath .= '/'.$module."/".$pathInfo["file"];
 
                require_once($filePath);
            }
            else
            {
                require_once($documentRoot.$pathInfo["file"]);
            }
            return;
        }
 
        if (preg_match("#[^\\\\/a-zA-Z0-9_]#", $className))
        {
            return;
        }
 
        $tryFiles = [[
            "real" => $className,
            "lower" => $classLower,
        ]];
 
        if (substr($classLower, -5) == "table")
        {
Arguments
  1. "/var/www/www-root/data/www/vannstudio.ru/bitrix/modules/aspro.max/classes/general/CMaxCache.php"
    
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
aspro.max
/
classes
/
general
/
CMaxRegionality.php
 
        static public function setSiteId(string $siteId) {
            static::cleanStaticData();
            static::$siteId = $siteId;
        }
 
        static public function checkUseRegionality() {
            if (Loader::includeModule(ASPRO_MAX_MODULE_ID)) {
                return Solution::GetFrontParametrValue('USE_REGIONALITY', static::getSiteId());
            }
            
            return 'N';
        }
 
        static public function getRegionIBlockID() {
            if (!isset(static::$iblockId)) {
                $siteId = static::getSiteId();
 
                if (
                    isset(Cache::$arIBlocks[$siteId]['aspro_max_regionality']['aspro_max_regions'][0]) &&
                    Cache::$arIBlocks[$siteId]['aspro_max_regionality']['aspro_max_regions'][0]
                ) {
                    static::$iblockId = Cache::$arIBlocks[$siteId]['aspro_max_regionality']['aspro_max_regions'][0];
                }
                else {
                    return;
                }
            }
 
            return static::$iblockId;
        }
 
        static public function addSeoMarks($arMarks = []) {
            static::$arSeoMarks = array_merge(static::$arSeoMarks, $arMarks);
        }
 
        static public function replaceSeoMarks() {
            global $APPLICATION, $arSite, $arRegion;
 
            $page_title = $APPLICATION->GetTitle();
Arguments
  1. "CMaxCache"
    
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
aspro.max
/
classes
/
general
/
CMaxRegionality.php
                {
                    if (!empty($page_seo_title))
                        $APPLICATION->SetPageProperty("title", $page_seo_title);
                    else
                        $APPLICATION->SetPageProperty("title", $arSite['SITE_NAME']);
 
                    if (!empty($page_title))
                        $APPLICATION->SetTitle($page_title);
                    else
                        $APPLICATION->SetTitle($arSite['SITE_NAME']);
                }
            }
            return true;
        }
 
        static public function getRegions() {
            if (!isset(static::$arRegions)) {
                static::$arRegions = [];
 
                $iRegionIBlockID = static::getRegionIBlockID();
 
                if (
                    $iRegionIBlockID &&
                    static::checkUseRegionality() != 'N'
                ) {
                    $cache = new CPHPCache();
                    $cache_time = 86400;
                    $cache_path = __CLASS__.'/'.__FUNCTION__;
                    $cache_id = 'aspro_max_regions'.$iRegionIBlockID.(is_object($GLOBALS['USER']) ? $GLOBALS['USER']->GetGroups() : '');
 
                    if (
                        \Bitrix\Main\Config\Option::get('main', 'component_cache_on', 'Y') == 'Y' &&
                        $cache->InitCache($cache_time, $cache_id, $cache_path)
                    ) {
                        $res = $cache->GetVars();
                        static::$arRegions = $res['arRegions'];
                    }
                    else {
                        // get all items
                        $arFilter = ['ACTIVE' => 'Y', 'IBLOCK_ID' => $iRegionIBlockID];
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
aspro.max
/
classes
/
general
/
CMaxRegionality.php
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
 
                static::$arRealRegion = $arRegion;
            }
 
            return static::$arRealRegion;
        }
 
        static public function getCurrentRegion() {
            if (!isset(static::$arCurrentRegion)) {
                $arRegion = [];
 
                if ($arRegions = static::getRegions()) {
 
                    global $arTheme;
                    if (!$arTheme) {
                        $arTheme = Solution::GetFrontParametrsValues(static::getSiteId());
                    }
 
                    // get region by custom event handler
                    foreach (GetModuleEvents(ASPRO_MAX_MODULE_ID, 'OnAsproRegionalityGetCurrentRegion', true) as $arEvent) {
                        ExecuteModuleEventEx($arEvent, [$arTheme, $arRegions, &$arRegion]);
                    }
 
                    if (!$arRegion) {
                        // search current region
                        if ($arTheme['REGIONALITY_TYPE'] === 'ONE_DOMAIN') {
                            // search by cookie value
                            if (isset($_COOKIE['current_region']) && $_COOKIE['current_region']) {
                                if (isset($arRegions[$_COOKIE['current_region']]) && $arRegions[$_COOKIE['current_region']]) {
                                    $arRegion = $arRegions[$_COOKIE['current_region']];
                                }
                            }
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
aspro.max
/
classes
/
general
/
CMaxEvents.php
            return;
        }
 
        // decode auth request from utf-8 to site charset, the request was sended with xmlhttprequest
        if(
            (!defined('BX_UTF') || BX_UTF !== true) &&
            isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
            strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest' &&
            isset($_REQUEST['AUTH_FORM']) &&
            $_REQUEST['AUTH_FORM'] <> '' &&
            isset($_REQUEST['TYPE']) &&
            $_REQUEST['TYPE'] === 'AUTH'
        ){
            $_REQUEST = \Bitrix\Main\Text\Encoding::convertEncoding($_REQUEST, 'UTF-8', SITE_CHARSET);
        }
 
        // current region
        global $arRegion;
        if(!$arRegion){
            $arRegion = SolutionRegionality::getCurrentRegion();
        }
 
        // check search landing with url condition
        if(
            isset($_REQUEST['ls']) &&
            (
                $_SERVER['SCRIPT_NAME'] === '/bitrix/urlrewrite.php' ||
                (
                    $_SERVER['SCRIPT_NAME'] &&
                    strpos($_SERVER['SCRIPT_FILENAME'], '/bitrix/urlrewrite.php') !== false
                )
            )
        ){
            if($bLandingWithUrlCondition = ($landingID = intval($_REQUEST['ls'])) > 0){
                if($_GET){
                    unset($_GET['q'], $_GET['ls']);
                }
 
                $_REQUEST['q'] = '';
                if($_SESSION && array_key_exists('q_'.$landingID, $_SESSION)){
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
main
/
tools.php
    }
    else
    {
        $args = $arParams;
    }
 
    //TODO: �������� ������� �� EventManager::getInstance()->getLastEvent();
    global $BX_MODULE_EVENT_LAST;
    $BX_MODULE_EVENT_LAST = $arEvent;
 
    if (isset($arEvent["CALLBACK"]))
    {
        $result = call_user_func_array($arEvent["CALLBACK"], $args);
    }
    else
    {
        //php bug: http://bugs.php.net/bug.php?id=47948
        if (class_exists($arEvent["TO_CLASS"]) && is_callable([$arEvent["TO_CLASS"], $arEvent["TO_METHOD"]]))
        {
            $result =  call_user_func_array([$arEvent["TO_CLASS"], $arEvent["TO_METHOD"]], $args);
        }
        else
        {
            $exception = new SystemException("Event handler error: could not invoke {$arEvent["TO_CLASS"]}::{$arEvent["TO_METHOD"]}. Class or method does not exist.");
            $application = Application::getInstance();
            $exceptionHandler = $application->getExceptionHandler();
            $exceptionHandler->writeToLog($exception);
 
            $result = null;
        }
    }
 
    return $result;
}
 
function UnRegisterModuleDependences($FROM_MODULE_ID, $MESSAGE_ID, $TO_MODULE_ID, $TO_CLASS="", $TO_METHOD="", $TO_PATH="", $TO_METHOD_ARG = array())
{
    $eventManager = Main\EventManager::getInstance();
    $eventManager->unRegisterEventHandler($FROM_MODULE_ID, $MESSAGE_ID, $TO_MODULE_ID, $TO_CLASS, $TO_METHOD, $TO_PATH, $TO_METHOD_ARG);
}
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
main
/
include.php
{
    $application->addBackgroundJob(["CAgent", "CheckAgents"], [], \Bitrix\Main\Application::JOB_PRIORITY_LOW);
}
 
//send email events
if (COption::GetOptionString("main", "check_events", "Y") !== "N")
{
    $application->addBackgroundJob(['\Bitrix\Main\Mail\EventManager', 'checkEvents'], [], \Bitrix\Main\Application::JOB_PRIORITY_LOW-1);
}
 
$healerOfEarlySessionStart = new HealerEarlySessionStart();
$healerOfEarlySessionStart->process($application->getKernelSession());
 
$kernelSession = $application->getKernelSession();
$kernelSession->start();
$application->getSessionLocalStorageManager()->setUniqueId($kernelSession->getId());
 
foreach (GetModuleEvents("main", "OnPageStart", true) as $arEvent)
{
    ExecuteModuleEventEx($arEvent);
}
 
//define global user object
$GLOBALS["USER"] = new CUser;
 
//session control from group policy
$arPolicy = $GLOBALS["USER"]->GetSecurityPolicy();
$currTime = time();
if (
    (
        //IP address changed
        $kernelSession['SESS_IP']
        && $arPolicy["SESSION_IP_MASK"] <> ''
        && (
            (ip2long($arPolicy["SESSION_IP_MASK"]) & ip2long($kernelSession['SESS_IP']))
            !=
            (ip2long($arPolicy["SESSION_IP_MASK"]) & ip2long($_SERVER['REMOTE_ADDR']))
        )
    )
    ||
Arguments
  1. array:11 [
      "SORT" => 100
      "TO_MODULE_ID" => "aspro.max"
      "TO_PATH" => ""
      "TO_CLASS" => "CMaxEvents"
      "TO_METHOD" => "OnPageStartHandler"
      "TO_METHOD_ARG" => []
      "VERSION" => "1"
      "TO_NAME" => "CMaxEvents::OnPageStartHandler (aspro.max)"
      "FROM_DB" => true
      "FROM_MODULE_ID" => "main"
      "MESSAGE_ID" => "OnPageStart"
    ]
    
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
main
/
include
/
prolog_before.php
<?php
 
if (!defined('START_EXEC_PROLOG_BEFORE_1'))
{
    define("START_EXEC_PROLOG_BEFORE_1", microtime(true));
}
 
$GLOBALS["BX_STATE"] = "PB";
if(isset($_REQUEST["BX_STATE"])) unset($_REQUEST["BX_STATE"]);
if(isset($_GET["BX_STATE"])) unset($_GET["BX_STATE"]);
if(isset($_POST["BX_STATE"])) unset($_POST["BX_STATE"]);
if(isset($_COOKIE["BX_STATE"])) unset($_COOKIE["BX_STATE"]);
if(isset($_FILES["BX_STATE"])) unset($_FILES["BX_STATE"]);
 
if(!isset($USER)) {global $USER;}
if(!isset($APPLICATION)) {global $APPLICATION;}
if(!isset($DB)) {global $DB;}
 
require_once(__DIR__."/../include.php");
 
CMain::PrologActions();
 
if (!defined('START_EXEC_PROLOG_BEFORE_2'))
{
    define("START_EXEC_PROLOG_BEFORE_2", microtime(true));
}
 
Arguments
  1. "/var/www/www-root/data/www/vannstudio.ru/bitrix/modules/main/include.php"
    
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
main
/
include
/
prolog.php
<?php
require_once(__DIR__ . "/../bx_root.php");
 
if (file_exists($_SERVER["DOCUMENT_ROOT"].BX_PERSONAL_ROOT."/html_pages/.enabled"))
{
    require_once(__DIR__ . "/../lib/composite/responder.php");
    Bitrix\Main\Composite\Responder::respond();
}
 
require_once(__DIR__ . "/prolog_before.php");
require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/prolog_after.php");
 
Arguments
  1. "/var/www/www-root/data/www/vannstudio.ru/bitrix/modules/main/include/prolog_before.php"
    
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
header.php
<?require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog.php");?>
Arguments
  1. "/var/www/www-root/data/www/vannstudio.ru/bitrix/modules/main/include/prolog.php"
    
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
catalog
/
index.php
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Каталог товаров сантехники Vannstudio.ru");
$APPLICATION->IncludeComponent(
    "bitrix:catalog", 
    "main", 
    array(
        "IBLOCK_TYPE" => "aspro_max_catalog",
        "IBLOCK_ID" => "2",
        "HIDE_NOT_AVAILABLE" => "Y",
        "BASKET_URL" => "/basket/",
        "ACTION_VARIABLE" => "action",
        "PRODUCT_ID_VARIABLE" => "id",
        "SECTION_ID_VARIABLE" => "SECTION_ID",
        "PRODUCT_QUANTITY_VARIABLE" => "quantity",
        "PRODUCT_PROPS_VARIABLE" => "prop",
        "SEF_MODE" => "Y",
        "SEF_FOLDER" => "/catalog/",
        "AJAX_MODE" => "N",
        "AJAX_OPTION_JUMP" => "N",
        "AJAX_OPTION_STYLE" => "Y",
        "AJAX_OPTION_HISTORY" => "Y",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600000",
        "CACHE_FILTER" => "Y",
        "CACHE_GROUPS" => "Y",
        "SET_TITLE" => "Y",
        "SET_STATUS_404" => "Y",
        "USE_ELEMENT_COUNTER" => "Y",
        "USE_FILTER" => "Y",
        "FILTER_NAME" => "MAX_SMART_FILTER",
        "FILTER_FIELD_CODE" => array(
            0 => "",
            1 => "",
        ),
        "FILTER_PROPERTY_CODE" => array(
            0 => "",
            1 => "WF_SALE",
            2 => "WF_NOTE",
            3 => "attr_deliveryprice_tk_other",
            4 => "attr_manufacturer_warranty",
Arguments
  1. "/var/www/www-root/data/www/vannstudio.ru/bitrix/header.php"
    
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
modules
/
main
/
include
/
urlrewrite.php
 
            if (($urlTmp7 == "upload/" || ($urlTmp7 == "bitrix/" && mb_substr($urlTmp, 0, 16) != "bitrix/services/" && mb_substr($urlTmp, 0, 18) != "bitrix/groupdavphp")))
                continue;
 
            $ext = strtolower(GetFileExtension($url));
            if ($ext != "php")
                continue;
 
            // D7 response is not available here
            if(stristr(php_sapi_name(), "cgi") !== false && (!defined("BX_HTTP_STATUS") || BX_HTTP_STATUS == false))
            {
                header("Status: 200 OK");
            }
            else
            {
                header($_SERVER["SERVER_PROTOCOL"]." 200 OK");
            }
 
            $_SERVER["REAL_FILE_PATH"] = $url;
            include_once($io->GetPhysicalName($_SERVER['DOCUMENT_ROOT'].$url));
            die();
        }
    }
}
 
//admin section 404
if(mb_strpos($requestUri, "/bitrix/admin/") === 0)
{
    $_SERVER["REAL_FILE_PATH"] = "/bitrix/admin/404.php";
    include($_SERVER["DOCUMENT_ROOT"]."/bitrix/admin/404.php");
    die();
}
 
define("BX_CHECK_SHORT_URI", true);
 
Arguments
  1. "/var/www/www-root/data/www/vannstudio.ru/catalog/index.php"
    
/
var
/
www
/
www-root
/
data
/
www
/
vannstudio.ru
/
bitrix
/
urlrewrite.php
<?
include_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/urlrewrite.php');
if(file_exists($_SERVER['DOCUMENT_ROOT'].'/404.php'))
    include_once($_SERVER['DOCUMENT_ROOT'].'/404.php');
?>
Arguments
  1. "/var/www/www-root/data/www/vannstudio.ru/bitrix/modules/main/include/urlrewrite.php"
    

Environment & details:

empty
empty
empty
empty
empty
Key Value
PHP_INI_SCAN_DIR
"/var/www/www-root/data/php-bin-isp-php81/vannstudio.ru:"
PATH
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
PHPRC
"/var/www/www-root/data/php-bin-isp-php81"
PWD
"/var/www/php-bin-isp-php81/www-root/vannstudio.ru"
CONTENT_LENGTH
"0"
SCRIPT_NAME
"/bitrix/urlrewrite.php"
REQUEST_URI
"/catalog/mebel-dlya-vannoy/tumby-dlya-vannoy/tumba-pod-rakovinu-aquaton-oliviya-70-bezhevyy-dub-vell-1a254301olvg0"
QUERY_STRING
""
REQUEST_METHOD
"GET"
SERVER_PROTOCOL
"HTTP/1.0"
GATEWAY_INTERFACE
"CGI/1.1"
REDIRECT_URL
"/catalog/mebel-dlya-vannoy/tumby-dlya-vannoy/tumba-pod-rakovinu-aquaton-oliviya-70-bezhevyy-dub-vell-1a254301olvg0"
REMOTE_PORT
"38286"
SCRIPT_FILENAME
"/var/www/www-root/data/www/vannstudio.ru/bitrix/urlrewrite.php"
SERVER_ADMIN
"webmaster@vannstudio.ru"
CONTEXT_DOCUMENT_ROOT
"/var/www/www-root/data/www/vannstudio.ru"
CONTEXT_PREFIX
""
REQUEST_SCHEME
"http"
DOCUMENT_ROOT
"/var/www/www-root/data/www/vannstudio.ru"
REMOTE_ADDR
"18.190.219.146"
SERVER_PORT
"80"
SERVER_ADDR
"127.0.0.1"
SERVER_NAME
"vannstudio.ru"
SERVER_SOFTWARE
"Apache/2.4.52 (Ubuntu)"
SERVER_SIGNATURE
"<address>Apache/2.4.52 (Ubuntu) Server at vannstudio.ru Port 80</address>\n"
HTTP_ACCEPT_ENCODING
"gzip, br, zstd, deflate"
HTTP_USER_AGENT
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
HTTP_ACCEPT
"*/*"
HTTP_CONNECTION
"close"
HTTP_X_FORWARDED_PORT
"443"
HTTP_X_FORWARDED_PROTO
"https"
HTTP_HOST
"vannstudio.ru"
REMOTE_USER
""
HTTPS
"on"
REDIRECT_STATUS
"200"
REDIRECT_HTTPS
"on"
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/bitrix/urlrewrite.php"
REQUEST_TIME_FLOAT
1742380873.4325
REQUEST_TIME
1742380873
REAL_FILE_PATH
"/catalog/index.php"
empty
0. Whoops\Handler\PrettyPageHandler