publicMode = true; } } public function Init() { if($this->bInit) return; $this->bInit = true; $module_list = CModule::GetList(); while($module = $module_list->Fetch()) $this->aModules[] = $module["ID"]; } public function ShowTitle() { global $APPLICATION; $APPLICATION->AddBufferContent(array(&$this, "GetTitle")); } public function ShowJsTitle() { global $APPLICATION; $APPLICATION->AddBufferContent(array(&$this, "GetJsTitle")); } function GetTitle() { global $APPLICATION; return htmlspecialcharsex($APPLICATION->GetTitle(false, true)); } public function isHideTitle() { return $this->isHideTitle; } public function hideTitle() { $this->isHideTitle = true; } function GetJsTitle() { global $APPLICATION; return CUtil::JSEscape($APPLICATION->GetTitle(false, true)); } public function ShowPopupCSS() { if ($this->publicMode) { return ''; } /** @global CMain $APPLICATION */ global $APPLICATION; $this->Init(); $arCSS = array_merge( $this->GetModulesCSS($_REQUEST['from_module']), $APPLICATION->GetCSSArray() ); $s = ''; return $s; } public function ShowCSS() { if ($this->publicMode) { return ''; } /** @global CMain $APPLICATION */ global $APPLICATION; $this->Init(); $arCSS = array_merge(array( ADMIN_THEMES_PATH.'/'.ADMIN_THEME_ID.'/compatible.css', //ADMIN_THEMES_PATH.'/'.ADMIN_THEME_ID.'/adminstyles.css', '/bitrix/panel/main/adminstyles_fixed.css', '/bitrix/panel/main/admin.css', ), $this->GetModulesCSS(), $APPLICATION->GetCSSArray() ); $s = ''; foreach($arCSS as $css) { $bExternalLink = (strncmp($css, 'http://', 7) == 0 || strncmp($css, 'https://', 8) == 0); if($bExternalLink || file_exists($_SERVER['DOCUMENT_ROOT'].$css)) $s .= ''."\n"; } return $s; } public function GetModulesCSS($module_id='') { global $CACHE_MANAGER; $rel_theme_path = ADMIN_THEMES_PATH."/".ADMIN_THEME_ID."/"; $abs_theme_path = $_SERVER["DOCUMENT_ROOT"].$rel_theme_path; if($module_id <> '' && $this->aModules[$module_id] <> '') { if(file_exists($abs_theme_path.$module_id.".css")) return array($rel_theme_path.$module_id.'.css'); } if($CACHE_MANAGER->Read(36000000, ADMIN_THEME_ID, "modules_css")) $time_cached = $CACHE_MANAGER->Get(ADMIN_THEME_ID); else $time_cached = ''; //check modification time $time_fact = ''; foreach($this->aModules as $module) { $fname = $abs_theme_path.$module.".css"; if(file_exists($fname)) $time_fact .= filemtime($fname); } $css_file = $abs_theme_path."modules.css"; if($time_fact !== $time_cached) { //parse css files to create summary modules css $sCss = ''; foreach($this->aModules as $module) { $fname = $abs_theme_path.$module.".css"; if(file_exists($fname)) $sCss .= file_get_contents($fname)."\n"; } //create summary modules css file_put_contents($css_file, $sCss); if($time_cached !== '') { $CACHE_MANAGER->Clean(ADMIN_THEME_ID, "modules_css"); $CACHE_MANAGER->Read(36000000, ADMIN_THEME_ID, "modules_css"); } $CACHE_MANAGER->Set(ADMIN_THEME_ID, $time_fact); } if(file_exists($css_file)) return array($rel_theme_path.'modules.css'); else return array(); } public function ShowScript() { /** @global CMain $APPLICATION */ global $APPLICATION; $APPLICATION->AddHeadScript('/bitrix/js/main/utils.js'); $APPLICATION->AddHeadScript('/bitrix/js/main/hot_keys.js'); $APPLICATION->SetAdditionalCSS('/bitrix/panel/main/hot_keys.css'); if ($this->publicMode) { return ''; } //PHP-depended variables $aUserOpt = CUserOptions::GetOption("global", "settings"); $s = " "; $APPLICATION->AddHeadScript('/bitrix/js/main/admin_tools.js'); $APPLICATION->AddHeadScript('/bitrix/js/main/popup_menu.js'); $APPLICATION->AddHeadScript('/bitrix/js/main/admin_search.js'); return $s; } public function ShowSectionIndex($menu_id, $module_id=false) { /** @global CMain $APPLICATION */ global $APPLICATION; echo '
'; $sTableID = "module_index_table"; $page = $APPLICATION->GetCurPage(); $param = DeleteParam(array("show_mode", "mode")); echo ' '; if($module_id === false) $this->Init(); /** @global CAdminMenu() $adminMenu */ global $adminMenu; $adminMenu->Init(($module_id !== false? array($module_id) : $this->aModules)); $adminMenu->ShowSubmenu($menu_id, "table"); echo '
'; } function ShowSound() { /** @global CMain $APPLICATION */ global $USER, $APPLICATION; $res = ''; if($USER->IsAuthorized() && !isset($_COOKIE[COption::GetOptionString("main", "cookie_name", "BITRIX_SM").'_SOUND_LOGIN_PLAYED'])) { $aUserOptGlobal = CUserOptions::GetOption("global", "settings"); if($aUserOptGlobal["sound"] == 'Y') { if($aUserOptGlobal["sound_login"] == '') $aUserOptGlobal["sound_login"] = "/bitrix/sounds/main/bitrix_tune.mp3"; ob_start(); $APPLICATION->IncludeComponent("bitrix:player", "audio", Array( "PATH" => htmlspecialcharsbx($aUserOptGlobal["sound_login"]), "WIDTH" => "1", "HEIGHT" => "1", "CONTROLBAR" => "none", "AUTOSTART" => "Y", "REPEAT" => "N", "VOLUME" => "90", "MUTE" => "N", "HIGH_QUALITY" => "Y", "BUFFER_LENGTH" => "2", "PROVIDER"=>"sound", ), null, array("HIDE_ICONS"=>"Y") ); $res = ob_get_contents(); ob_end_clean(); $res = '
'.$res.'
'; } } return $res; } public function getSSOSwitcherButton() { global $CACHE_MANAGER, $USER; if($CACHE_MANAGER->Read(86400, "sso_portal_list_".$USER->GetID())) { $queryResult = $CACHE_MANAGER->Get("sso_portal_list_".$USER->GetID()); } else { $queryResult = false; if(\Bitrix\Main\Loader::includeModule('socialservices')) { if(class_exists('CBitrix24NetTransport')) { $query = \CBitrix24NetTransport::init(); if ($query) { $queryResult = $query->call('admin.profile.list', array()); } $CACHE_MANAGER->Set("sso_portal_list_".$USER->GetID(), $queryResult); } } } if(is_array($queryResult)) { $ssoMenu = array(); if(isset($queryResult['error'])) { if( $queryResult['error'] == 'insufficient_scope' && \Bitrix\Main\Loader::includeModule('socialservices') && class_exists("Bitrix\\Socialservices\\Network") && method_exists("Bitrix\\Socialservices\\Network", "getAuthUrl") ) { $n = new \Bitrix\Socialservices\Network(); $ssoMenu[] = array( "TEXT" => \Bitrix\Main\Localization\Loc::getMessage("admin_lib_sso_auth"), "TITLE" => \Bitrix\Main\Localization\Loc::getMessage("admin_lib_sso_auth_title"), "ONCLICK"=>"BX.util.popup('".CUtil::JSEscape($n->getAuthUrl("popup", array("admin")))."', 800, 600);", ); } } elseif(isset($queryResult['result'])) { $currentHost = \Bitrix\Main\Context::getCurrent()->getRequest()->getHttpHost(); foreach($queryResult['result']['admin'] as $site) { if($site["TITLE"] != $currentHost) { $ssoMenu[] = array( "TEXT" => $site["TITLE"], "TITLE"=> "Go to ". $site["TITLE"], "LINK"=>$site["URL"]."bitrix/admin/", ); } } if( count($ssoMenu) > 0 && count($queryResult['result']["portal"]) > 0 ) { $ssoMenu[] = array("SEPARATOR" => true); } foreach($queryResult['result']['portal'] as $site) { $ssoMenu[] = array( "TEXT" => $site["TITLE"], "TITLE"=> "Go to ". $site["TITLE"], "LINK"=>$site["URL"], ); } } return $ssoMenu; } return false; } public function getSelfFolderUrl() { return (defined("SELF_FOLDER_URL") ? SELF_FOLDER_URL : "/bitrix/admin/"); } } use Bitrix\Main\HttpResponse; use Bitrix\Main\Application; use Bitrix\Main\Web\Json; class CAdminAjaxHelper { /** @var \Bitrix\Main\Context */ protected $context; /** @var \Bitrix\Main\HttpResponse */ protected $httpResponse; /** @var \Bitrix\Main\HttpRequest */ protected $request; protected $skipResponse = false; public function __construct() { $this->context = Application::getInstance()->getContext(); $this->request = $this->context->getRequest(); $this->httpResponse = new HttpResponse(); } /** * Sends JSON response with status "success". * @throws \Bitrix\Main\ArgumentException * @throws \Bitrix\Main\ArgumentNullException * @throws \Bitrix\Main\ArgumentOutOfRangeException */ public function sendJsonSuccessResponse() { $this->sendJsonResponse(array("status" => "success")); } /** * Sends JSON response with status "error" and with errors. * @param string $message Error message. * @throws \Bitrix\Main\ArgumentException * @throws \Bitrix\Main\ArgumentNullException * @throws \Bitrix\Main\ArgumentOutOfRangeException */ public function sendJsonErrorResponse($message) { $this->sendJsonResponse(array("status" => "error", "message" => $message)); } /** * Sends JSON response. * @param array $params Data structure. * @throws \Bitrix\Main\ArgumentException * @throws \Bitrix\Main\ArgumentNullException * @throws \Bitrix\Main\ArgumentOutOfRangeException */ public function sendJsonResponse($params = array()) { if ($this->isAjaxRequest() && !$this->skipResponse) { $this->httpResponse->addHeader("Content-Type", "application/json"); $this->httpResponse->flush(Json::encode($params)); $this->end(); } } public function decodeUriComponent(Bitrix\Main\HttpRequest $request = null) { if ($this->isAjaxRequest()) { if ($request) { $request->addFilter(new \Bitrix\Main\Web\PostDecodeFilter()); } CUtil::decodeURIComponent($_GET); CUtil::decodeURIComponent($_POST); CUtil::decodeURIComponent($_REQUEST); $listKeys = array_keys($_REQUEST); foreach ($listKeys as $key) CUtil::decodeURIComponent($GLOBALS[$key]); } } /** * Returns whether this is an AJAX (XMLHttpRequest) request. * @return boolean */ public function isAjaxRequest() { return $this->request->isAjaxRequest(); } protected function end() { define("ADMIN_AJAX_MODE", true); require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_admin_after.php"); die(); } } class CAdminSidePanelHelper extends CAdminAjaxHelper { public function setSkipResponse($skip) { $this->skipResponse = $skip; } public function sendSuccessResponse($responseType = "", $dataToForm = array()) { $post = $this->request->getPostList()->toArray(); $listActions = array(); switch ($responseType) { case "base": if ($post["save"] != "") $listActions[] = "destroy"; if ($post["save_and_add"] != "") $listActions[] = "closeAndOpen"; break; case "apply": if ($post["save"] != "") $listActions[] = "close"; if ($post["apply"] != "") $listActions[] = "reload"; break; case "close": $listActions[] = "close"; break; case "destroy": $listActions[] = "destroy"; break; default: $listActions[] = "close"; } if (!empty($dataToForm["reloadUrl"])) { if ($this->isPublicSidePanel()) { if (mb_strpos("publicSidePanel",$dataToForm["reloadUrl"]) === false) { $dataToForm["reloadUrl"] = CHTTP::urlAddParams( $dataToForm["reloadUrl"], array("publicSidePanel" => "Y")); } } } $this->sendJsonResponse( array( "status" => "success", "listActions" => $listActions, "formParams" => $dataToForm ) ); } public function reloadPage($redirectUrl, $type) { if ($this->isSidePanelRequest()) { $redirectUrl = CHTTP::urlAddParams($redirectUrl, array( "IFRAME" => "Y", "IFRAME_TYPE" => "SIDE_SLIDER", "sidePanelAction" => $type) ); if ($this->isPublicSidePanel()) { $redirectUrl = CHTTP::urlAddParams($redirectUrl, array("publicSidePanel" => "Y")); } LocalRedirect($redirectUrl); } } /** * Returns whether this is an AJAX (XMLHttpRequest) request and SipePanel request. * @return boolean */ public function isSidePanelRequest() { return ($_REQUEST["IFRAME"] == "Y") && ($_REQUEST["IFRAME_TYPE"] == "SIDE_SLIDER"); } public function isSidePanel() { return (isset($_REQUEST["IFRAME"]) && $_REQUEST["IFRAME"] === "Y"); } public function isPublicSidePanel() { return ($this->isSidePanel() && ($_REQUEST["publicSidePanel"] === "Y" || $_REQUEST["IFRAME_TYPE"] == "PUBLIC_FRAME")); } public function isSidePanelFrame() { return ($_REQUEST["IFRAME"] == "Y") && ($_REQUEST["IFRAME_TYPE"] == "SIDE_SLIDER"); } public function isPublicFrame() { return ($_REQUEST["IFRAME"] == "Y") && ($_REQUEST["IFRAME_TYPE"] == "PUBLIC_FRAME"); } public function setDefaultQueryParams($url) { if ($this->isSidePanel()) { $frameType = "SIDE_SLIDER"; if ($this->isPublicFrame()) { $frameType = "PUBLIC_FRAME"; } $params = array("IFRAME" => "Y", "IFRAME_TYPE" => $frameType); if ($this->isPublicSidePanel()) { $params["publicSidePanel"] = "Y"; } return \CHTTP::urlAddParams($url, $params); } else { return $url; } } public function editUrlToPublicPage($url) { if ($this->isPublicSidePanel() || (defined("PUBLIC_MODE") && PUBLIC_MODE == 1)) { $url = str_replace(".php", "/", $url); } return $url; } public function localRedirect($url) { if ($this->isPublicFrame()) { echo ""; exit; } } } /* Left tree-view menu */ class CAdminMenu { var $aGlobalMenu, $aActiveSections=array(), $aOpenedSections=array(); var $bInit = false; public function __construct() { } function Init($modules) { /** @noinspection PhpUnusedLocalVariableInspection */ global $APPLICATION, $USER, $DB, $MESS; if($this->bInit) return; $this->bInit = true; $aOptMenu = CUserOptions::GetOption("admin_menu", "pos", array()); $this->AddOpenedSections($aOptMenu["sections"]); $aModuleMenu = array(); if(is_array($modules)) { foreach($modules as $module) { $module = _normalizePath($module); //trying to include file menu.php in the /admin/ folder of the current module $fname = getLocalPath("modules/".$module."/admin/menu.php"); if($fname !== false) { $menu = CAdminMenu::_IncludeMenu($_SERVER["DOCUMENT_ROOT"].$fname); if(is_array($menu) && !empty($menu)) { if(isset($menu["parent_menu"]) && $menu["parent_menu"] <> "") { //one section $aModuleMenu[] = $menu; } else { //multiple sections foreach($menu as $submenu) { if(is_array($submenu) && !empty($submenu)) { $aModuleMenu[] = $submenu; } } } } } } } //additional user menu $aMenuLinks = array(); if(file_exists($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/admin/.left.menu.php")) include($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/admin/.left.menu.php"); if(!empty($aMenuLinks)) { $bWasSeparator = false; $menu = array(); foreach($aMenuLinks as $module_menu) { if($module_menu[3]["SEPARATOR"] == "Y") { //first level if(!empty($menu)) $aModuleMenu[] = $menu; $menu = array( "parent_menu" => "global_menu_services", "icon" => "default_menu_icon", "page_icon" => "default_page_icon", "items_id"=>$module_menu[3]["SECTION_ID"], "items"=>array(), "sort"=>$module_menu[3]["SORT"], "text" => $module_menu[0], ); $bWasSeparator = true; } elseif($bWasSeparator && $module_menu[3]["SECTION_ID"] == "") { //section items $menu["items"][] = array( "text" => $module_menu[0], "title"=>$module_menu[3]["ALT"], "url" => $module_menu[1], "more_url"=>$module_menu[2], ); } elseif($module_menu[3]["SECTION_ID"] == "" || $module_menu[3]["SECTION_ID"] == "statistic" || $module_menu[3]["SECTION_ID"] == "sale") { //item in root $aModuleMenu[] = array( "parent_menu" => ($module_menu[3]["SECTION_ID"] == "statistic"? "global_menu_statistics" : ($module_menu[3]["SECTION_ID"] == "sale"? "global_menu_store":"global_menu_services")), "icon" => "default_menu_icon", "page_icon" => "default_page_icon", "sort"=>$module_menu[3]["SORT"], "text" => $module_menu[0], "title"=>$module_menu[3]["ALT"], "url" => $module_menu[1], "more_url"=>$module_menu[2], ); } else { //item in section foreach($aModuleMenu as $i=>$section) { if($section["section"] == $module_menu[3]["SECTION_ID"]) { if(!is_array($aModuleMenu[$i]["items"])) $aModuleMenu[$i]["items"] = array(); $aModuleMenu[$i]["items"][] = array( "text" => $module_menu[0], "title"=>$module_menu[3]["ALT"], "url" => $module_menu[1], "more_url"=>$module_menu[2], ); break; } } } } if(!empty($menu)) $aModuleMenu[] = $menu; } $this->aGlobalMenu = array( "global_menu_desktop" => array( "menu_id" => "desktop", "text" => GetMessage('admin_lib_desktop'), "title" => GetMessage('admin_lib_desktop_title'), "url" => "index.php?lang=".LANGUAGE_ID, "sort" => 50, "items_id" => "global_menu_desktop", "help_section" => "desktop", "items" => array() ), "global_menu_content" => array( "menu_id" => "content", "text" => GetMessage("admin_lib_menu_content"), "title" => GetMessage("admin_lib_menu_content_title"), "sort" => 100, "items_id" => "global_menu_content", "help_section" => "content", "items" => array() ), "global_menu_landing" => array( "menu_id" => "landing", "text" => GetMessage("admin_lib_menu_landing"), "sort" => 130, "items_id" => "global_menu_landing", "help_section" => "landing", "items" => array() ), "global_menu_marketing" => array( "menu_id" => "marketing", "text" => GetMessage("admin_lib_menu_marketing"), "sort" => 150, "items_id" => "global_menu_marketing", "help_section" => "marketing", "items" => array() ), "global_menu_store" => array( "menu_id" => "store", "text" => GetMessage("admin_lib_menu_store"), "title" => GetMessage("admin_lib_menu_store_title"), "sort" => 200, "items_id" => "global_menu_store", "help_section" => "store", "items" => array() ), "global_menu_services" => array( "menu_id" => "services", "text" => GetMessage("admin_lib_menu_services"), "title" => GetMessage("admin_lib_menu_service_title"), "sort" => 300, "items_id" => "global_menu_services", "help_section" => "service", "items" => array() ), "global_menu_statistics" => array( "menu_id" => "analytics", "text" => GetMessage("admin_lib_menu_stat"), "title" => GetMessage("admin_lib_menu_stat_title"), "sort" => 400, "items_id" => "global_menu_statistics", "help_section" => "statistic", "items" => array() ), "global_menu_marketplace" => array( "menu_id" => "marketPlace", "text" => GetMessage("admin_lib_menu_marketplace"), "title" => GetMessage("admin_lib_menu_marketplace_title"), "url" => "update_system_market.php?lang=".LANGUAGE_ID, "sort" => 450, "items_id" => "global_menu_marketplace", "help_section" => "marketplace", "items" => array() ), "global_menu_settings" => array( "menu_id" => "settings", "text" => GetMessage("admin_lib_menu_settings"), "title" => GetMessage("admin_lib_menu_settings_title"), "sort" => 500, "items_id" => "global_menu_settings", "help_section" => "settings", "items" => array() ), ); //User defined global sections $bSort = false; foreach(GetModuleEvents("main", "OnBuildGlobalMenu", true) as $arEvent) { $bSort = true; $arRes = ExecuteModuleEventEx($arEvent, array(&$this->aGlobalMenu, &$aModuleMenu)); if(is_array($arRes)) $this->aGlobalMenu = array_merge($this->aGlobalMenu, $arRes); } if($bSort) uasort($this->aGlobalMenu, array($this, '_sort')); foreach($aModuleMenu as $menu) $this->aGlobalMenu[$menu["parent_menu"]]["items"][] = $menu; $sort_func = array($this, '_sort'); foreach($this->aGlobalMenu as $key => $menu) { if(empty($menu["items"]) && $key != "global_menu_desktop") { unset($this->aGlobalMenu[$key]); } elseif(is_array($this->aGlobalMenu[$key]["items"])) { usort($this->aGlobalMenu[$key]["items"], $sort_func); } } foreach($this->aGlobalMenu as $key=>$menu) if($this->_SetActiveItems($this->aGlobalMenu[$key])) break; } function _sort($a, $b) { if($a["sort"] == $b["sort"]) return 0; return ($a["sort"] < $b["sort"]? -1 : 1); } function _IncludeMenu($fname) { /** @noinspection PhpUnusedLocalVariableInspection */ global $APPLICATION, $USER, $DB, $MESS; $aModuleMenuLinks = array(); $menu = include($fname); if(is_array($menu) && !empty($menu)) return $menu; if(!empty($aModuleMenuLinks)) { $menu = array(); $n = 0; foreach($aModuleMenuLinks as $module_menu) { if($n == 0) { //first level $menu = array( "parent_menu" => "global_menu_services", "icon" => "default_menu_icon", "page_icon" => "default_page_icon", "items_id"=>"sect_".md5($fname), "items"=>array(), "sort"=>$module_menu[3]["SORT"], "text" => $module_menu[0], "url" => $module_menu[1], ); } else { //section items $menu["items"][] = array( "text" => $module_menu[0], "title"=>$module_menu[3]["ALT"], "url" => $module_menu[1], "more_url"=>$module_menu[2], ); } $n++; } return $menu; } return false; } function _SetActiveItems(&$aMenu, $aSections=array()) { /** @global CMain $APPLICATION */ global $APPLICATION; $bSubmenu = (isset($aMenu["items"]) && is_array($aMenu["items"]) && !empty($aMenu["items"])); if($bSubmenu) $aSections[$aMenu["items_id"]] = array( "menu_id" => $aMenu["menu_id"], "items_id"=>$aMenu["items_id"], "page_icon"=>isset($aMenu["page_icon"])? $aMenu["page_icon"]: null, "text"=>$aMenu["text"], "url"=>$aMenu["url"], "skip_chain"=>isset($aMenu["skip_chain"])? $aMenu["skip_chain"]: null, "help_section"=>isset($aMenu["help_section"])? $aMenu["help_section"]: null, ); $bSelected = false; $bMoreUrl = (isset($aMenu["more_url"]) && is_array($aMenu["more_url"]) && !empty($aMenu["more_url"])); if($aMenu["url"] <> "" || $bMoreUrl) { $cur_page = $APPLICATION->GetCurPage(); $all_links = array(); if($aMenu["url"] <> "") $all_links[] = $aMenu["url"]; if($bMoreUrl) $all_links = array_merge($all_links, $aMenu["more_url"]); $n = count($all_links); for($j = 0; $j < $n; $j++) { //"/admin/" //"/admin/index.php" //"/admin/index.php?module=mail" if(empty($all_links[$j])) continue; if(mb_strpos($all_links[$j],"/bitrix/admin/") !== 0) $tested_link = "/bitrix/admin/".$all_links[$j]; else $tested_link = $all_links[$j]; if($tested_link <> '' && mb_strpos($cur_page,$tested_link) === 0) { $bSelected = true; break; } if(($pos = mb_strpos($tested_link,"?"))!==false) { if(mb_substr($tested_link,0,$pos)==$cur_page) { $right = mb_substr($tested_link,$pos+1); $params = explode("&", $right); $bOK = true; foreach ($params as $paramKeyAndValue) { $eqpos = mb_strpos($paramKeyAndValue,"="); $varvalue = ""; if($eqpos === false) { $varname = $paramKeyAndValue; } elseif($eqpos == 0) { continue; } else { $varname = mb_substr($paramKeyAndValue,0,$eqpos); $varvalue = urldecode(mb_substr($paramKeyAndValue,$eqpos+1)); } $globvarvalue = isset($_REQUEST[$varname]) ? $_REQUEST[$varname] : ""; if($globvarvalue != $varvalue) { $bOK = false; break; } } //foreach ($params as $paramKeyAndValue) if($bOK) { $bSelected = true; break; } }//if(substr($tested_link, 0, $pos)==$cur_page) } //if(($pos = strpos($tested_link, "?"))!==false) } //for($j = 0; $j < $n; $j++) } $bSelectedInside = false; if($bSubmenu) { foreach($aMenu["items"] as $key=>$submenu) if($this->_SetActiveItems($aMenu["items"][$key], $aSections)) { $bSelectedInside = true; break; } } if($bSelected && !$bSelectedInside) { if(!$bSubmenu) { $aSections["_active"] = array( "menu_id"=>$aMenu["menu_id"], "page_icon"=>$aMenu["page_icon"], "text"=>$aMenu["text"], "url"=>$aMenu["url"], "skip_chain"=>$aMenu["skip_chain"], "help_section"=>$aMenu["help_section"], ); } $aMenu["_active"] = true; $this->aActiveSections = $aSections; } return $bSelected || $bSelectedInside; } private function _get_menu_item_width($level) { static $START_MAGIC_NUMBER = 30, $STEP_MAGIC_NUMBER = 21; return $START_MAGIC_NUMBER + $level*$STEP_MAGIC_NUMBER; } private function _get_menu_item_padding($level) { static $ADDED_MAGIC_NUMBER = 8; return $this->_get_menu_item_width($level) + $ADDED_MAGIC_NUMBER; } function Show($aMenu, $level=0) { $scripts = ''; $bSubmenu = (isset($aMenu["items"]) && is_array($aMenu["items"]) && !empty($aMenu["items"])) || isset($aMenu["dynamic"]) && $aMenu["dynamic"] == true; $bSectionActive = isset($aMenu["items_id"]) && (in_array($aMenu["items_id"], array_keys($this->aActiveSections)) || $this->IsSectionActive($aMenu["items_id"])); $icon = isset($aMenu["icon"]) && $aMenu["icon"] <> "" ? '' // : ($level < 1 ? '' : ''); : ''; $id = 'menu_item_'.RandString(10); ?>
_get_menu_item_width($level).", this.parentNode.parentNode, '".htmlspecialcharsbx(CUtil::JSEscape($aMenu["module_id"]))."', '".urlencode(htmlspecialcharsbx(CUtil::JSEscape($aMenu["items_id"])))."', '".($level+1)."')"; } elseif(!$aMenu["dynamic"] || !$bSectionActive || $aMenu['dynamic'] && $bSectionActive && isset($aMenu["items"]) && count($aMenu["items"]) > 0) { $onclick = "BX.adminMenu.toggleSection(this.parentNode.parentNode, '".htmlspecialcharsbx(CUtil::JSEscape($aMenu["items_id"]))."', '".($level+1)."')"; } //endif; } ?> Warning: Undefined variable $level in D:\ktt\ttepla.com\public_html\bitrix\updates\update_m1657865531\main\interface\admin_lib.php on line 1132

Warning: Undefined variable $onclick in D:\ktt\ttepla.com\public_html\bitrix\updates\update_m1657865531\main\interface\admin_lib.php on line 1132
>
""): $menuUrl = htmlspecialcharsbx($aMenu["url"], ENT_COMPAT, false); ?> Warning: Undefined variable $level in D:\ktt\ttepla.com\public_html\bitrix\updates\update_m1657865531\main\interface\admin_lib.php on line 1137
href="
Warning: Undefined variable $menuUrl in D:\ktt\ttepla.com\public_html\bitrix\updates\update_m1657865531\main\interface\admin_lib.php on line 1137
">
Warning: Undefined variable $icon in D:\ktt\ttepla.com\public_html\bitrix\updates\update_m1657865531\main\interface\admin_lib.php on line 1137

Warning: Undefined variable $menuText in D:\ktt\ttepla.com\public_html\bitrix\updates\update_m1657865531\main\interface\admin_lib.php on line 1137
Warning: Undefined variable $level in D:\ktt\ttepla.com\public_html\bitrix\updates\update_m1657865531\main\interface\admin_lib.php on line 1140
href="javascript:void(0)" onclick="BX.adminMenu.toggleDynSection(
Fatal error: Uncaught Error: Using $this when not in object context in D:\ktt\ttepla.com\public_html\bitrix\updates\update_m1657865531\main\interface\admin_lib.php:1140 Stack trace: #0 {main} thrown in D:\ktt\ttepla.com\public_html\bitrix\updates\update_m1657865531\main\interface\admin_lib.php on line 1140