public static function InsertMainItems() { if(defined('BX_PUBLIC_MODE') && BX_PUBLIC_MODE == 1) return false; global $USER; if(!$USER->IsAuthorized()) return false; //Updates if($USER->IsAdmin() || $USER->CanDoOperation('install_updates')) { $update_res = UpdateTools::GetUpdateResult(); $updAIParams = array( "TITLE" => GetMessage("top_panel_ai_updates"), "COLOR" => 'gray', "SORT" => 12 ); //update_autocheck == true and we have something to show if ($update_res['result'] === true && $update_res['tooltip']) { $updAIParams["HTML"] = $update_res['tooltip']; $updAIParams["FOOTER"] = '<a href="/bitrix/admin/update_system.php?lang='.LANGUAGE_ID.'">'.GetMessage("top_panel_ai_upd_instl").'</a>'; $updAIParams["ALERT"] = true; } else if ($update_res['error'] <> '') // update error { $updAIParams["TITLE"] .= " - ".GetMessage("top_panel_ai_title_err"); $updAIParams["HTML"] = trim(self::CutErrorId($update_res['error'])); $updAIParams["FOOTER"] = '<a href="/bitrix/admin/update_system.php?refresh=Y&lang='.LANGUAGE_ID.'">'.GetMessage("top_panel_ai_upd_chk").'</a>'; $updAIParams["ALERT"] = true; } else // update_autocheck == false { //last update date time $updateDate = COption::GetOptionString("main", "update_system_update", false); // remove seconds $updateDate = $updateDate ? CDatabase::FormatDate($updateDate, "DD.MM.YYYY HH:MI:SS", "DD.MM.YYYY HH:MI") : false; $updAIParams["HTML"] = '<span class="adm-informer-strong-text">'.GetMessage("top_panel_ai_sys_ver").' '.SM_VERSION."</span><br>"; $updAIParams["HTML"] .= $updateDate ? GetMessage("top_panel_ai_upd_last").'<br>'.$updateDate : GetMessage("top_panel_ai_upd_never"); $updAIParams["FOOTER"] = '<a href="/bitrix/admin/update_system.php?refresh=Y&lang='.LANGUAGE_ID.'">'.GetMessage("top_panel_ai_upd_chk").'</a>'; $updAIParams["ALERT"] = false; } self::AddItem($updAIParams); } //Disk space (quota) $maxQuota = COption::GetOptionInt("main", "disk_space", 0)*1048576; if ($maxQuota > 0) { $quota = new CDiskQuota(); $free = $quota->GetDiskQuota(); $freeMB = CFile::FormatSize($free,1); $free = round($free/($maxQuota)*100); $qAIParams = array( "TITLE" => GetMessage("top_panel_ai_used_space"), "COLOR" => "green", "ALERT" => ($free < 10 ? true : false) ); $qAIParams["HTML"] = ' <div class="adm-informer-item-section"> <span class="adm-informer-item-l"><span class="adm-informer-strong-text">'.GetMessage("top_panel_ai_in_all").'</span> '.CFile::FormatSize($maxQuota,1).'</span> <span class="adm-informer-item-r"><span class="adm-informer-strong-text">'.GetMessage("top_panel_ai_in_aviable").'</span> '.$freeMB.'</span> </div> <div class="adm-informer-status-bar-block" > <div class="adm-informer-status-bar-indicator" style="width:'.(100-$free).'%; "></div> <div class="adm-informer-status-bar-text">'.(100-$free).'%</div> </div> <div class="adm-informer-item-section"><span class="adm-informer-strong-text">'.GetMessage("top_panel_ai_in_recomend").'</span> '.GetMessage("top_panel_ai_in_no").'</div>'; self::AddItem($qAIParams); } if($USER->IsAdmin() && in_array(LANGUAGE_ID, array("ru", "ua"))) { $cModules = COption::GetOptionString("main", "mp_modules_date", ""); $arModules = array(); if(strlen($cModules) > 0) $arModules = unserialize($cModules); $mCnt = count($arModules); if($mCnt > 0) { foreach($arModules as $id => $module) { if(isModuleInstalled($module["ID"])) { if($module["TMS"]+3600*24*14 < time()) { $script = " <script type=\"text/javascript\"> function hideMpAnswer(el, module) { if(el.parentNode.parentNode.parentNode) BX.hide(el.parentNode.parentNode.parentNode); BX.ajax({ 'method': 'POST', 'dataType': 'html', 'url': '/bitrix/admin/partner_modules.php', 'data': 'module='+module+'&".bitrix_sessid_get()."&act=unnotify', 'async': true, 'processData': false }); } </script>"; $arParams = array( 'TITLE' => GetMessage("top_panel_ai_marketplace"), 'COLOR' => 'green', 'FOOTER' => "<a href=\"javascript:void(0)\" onclick=\"hideMpAnswer(this, '".CUtil::JSEscape($module["ID"])."')\" style=\"float: right !important; font-size: 0.8em !important;\">".GetMessage("top_panel_ai_marketplace_hide")."</a><a href=\"http://marketplace.1c-bitrix.".LANGUAGE_ID."/solutions/#ID#/#comments\" target=\"_blank\" onclick=\"hideMpAnswer(this, '".CUtil::JSEscape($module["ID"])."')\">".GetMessage("top_panel_ai_marketplace_add")."</a>", GetMessage("top_panel_ai_marketplace_link", array("#ID#" => $module["ID"], "#ADIT#" => "")), 'ALERT' => true, 'HTML' => GetMessage("top_panel_ai_marketplace_descr", array("#NAME#" => $module["NAME"], "#ID#" => $module["ID"])).$script, ); self::AddItem($arParams); } } else unset($arModules[$id]); } if($mCnt != count($arModules)) { COption::SetOptionString("main", "mp_modules_date", serialize($arModules)); } } } foreach(GetModuleEvents("main", "OnAdminInformerInsertItems", true) as $arHandler) ExecuteModuleEventEx($arHandler); return count(self::$items); }
public static function InsertMainItems() { if (defined('BX_PUBLIC_MODE') && BX_PUBLIC_MODE == 1) { return false; } global $USER; if (!$USER->IsAuthorized()) { return false; } //Updates if ($USER->IsAdmin() || $USER->CanDoOperation('install_updates')) { $update_res = UpdateTools::GetUpdateResult(); $updAIParams = array("TITLE" => GetMessage("top_panel_ai_updates"), "COLOR" => 'gray', "SORT" => 12); //update_autocheck == true and we have something to show if ($update_res['result'] === true && $update_res['tooltip']) { $updAIParams["HTML"] = $update_res['tooltip']; $updAIParams["FOOTER"] = '<a href="/bitrix/admin/update_system.php?lang=' . LANGUAGE_ID . '">' . GetMessage("top_panel_ai_upd_instl") . '</a>'; $updAIParams["ALERT"] = true; } else { if ($update_res['error'] != '') { $updAIParams["TITLE"] .= " - " . GetMessage("top_panel_ai_title_err"); $updAIParams["HTML"] = trim(self::CutErrorId($update_res['error'])); $updAIParams["FOOTER"] = '<a href="/bitrix/admin/update_system.php?refresh=Y&lang=' . LANGUAGE_ID . '">' . GetMessage("top_panel_ai_upd_chk") . '</a>'; $updAIParams["ALERT"] = true; } else { //last update date time $updateDate = COption::GetOptionString("main", "update_system_update", false); // remove seconds $updateDate = $updateDate ? CDatabase::FormatDate($updateDate, "DD.MM.YYYY HH:MI:SS", "DD.MM.YYYY HH:MI") : false; $updAIParams["HTML"] = '<span class="adm-informer-strong-text">' . GetMessage("top_panel_ai_sys_ver") . ' ' . SM_VERSION . "</span><br>"; $updAIParams["HTML"] .= $updateDate ? GetMessage("top_panel_ai_upd_last") . '<br>' . $updateDate : GetMessage("top_panel_ai_upd_never"); $updAIParams["FOOTER"] = '<a href="/bitrix/admin/update_system.php?refresh=Y&lang=' . LANGUAGE_ID . '">' . GetMessage("top_panel_ai_upd_chk") . '</a>'; $updAIParams["ALERT"] = false; } } self::AddItem($updAIParams); } //Disk space (quota) $maxQuota = COption::GetOptionInt("main", "disk_space", 0) * 1048576; if ($maxQuota > 0) { $quota = new CDiskQuota(); $free = $quota->GetDiskQuota(); $freeMB = CFile::FormatSize($free, 1); $free = round($free / $maxQuota * 100); $qAIParams = array("TITLE" => GetMessage("top_panel_ai_used_space"), "COLOR" => "green", "ALERT" => $free < 10 ? true : false); $qAIParams["HTML"] = ' <div class="adm-informer-item-section"> <span class="adm-informer-item-l"><span class="adm-informer-strong-text">' . GetMessage("top_panel_ai_in_all") . '</span> ' . CFile::FormatSize($maxQuota, 1) . '</span> <span class="adm-informer-item-r"><span class="adm-informer-strong-text">' . GetMessage("top_panel_ai_in_aviable") . '</span> ' . $freeMB . '</span> </div> <div class="adm-informer-status-bar-block" > <div class="adm-informer-status-bar-indicator" style="width:' . (100 - $free) . '%; "></div> <div class="adm-informer-status-bar-text">' . (100 - $free) . '%</div> </div> <div class="adm-informer-item-section"><span class="adm-informer-strong-text">' . GetMessage("top_panel_ai_in_recomend") . '</span> ' . GetMessage("top_panel_ai_in_no") . '</div>'; self::AddItem($qAIParams); } $rsHandlers = GetModuleEvents("main", "OnAdminInformerInsertItems"); while ($arHandler = $rsHandlers->Fetch()) { ExecuteModuleEventEx($arHandler); } return count(self::$items); }
function GetPanelHtml() { global $USER, $APPLICATION, $DB; $hkInstance = CHotKeys::getInstance(); if ($APPLICATION->ShowPanel === false || (!$USER->IsAuthorized() && $APPLICATION->ShowPanel !== true)) return ""; CTopPanel::InitPanelIcons(); $arPanelButtons = &$APPLICATION->arPanelButtons; usort($arPanelButtons, array("CTopPanel", "SortButtons")); $bShowPanel = false; foreach($arPanelButtons as $key=>$arValue) { if(trim($arValue["HREF"]) <> "" || is_array($arValue["MENU"]) && !empty($arValue["MENU"])) { //we have at least one button to show $bShowPanel = true; break; } } if($bShowPanel == false) { $arCodes = unserialize(COption::GetOptionString("main", "show_panel_for_users")); if($USER->CanAccess($arCodes)) { //we have settings in the main module options $bShowPanel = true; } } if ($bShowPanel == false && $APPLICATION->ShowPanel !== true) return ""; $APPLICATION->PanelShowed = true; if ($_GET["back_url_admin"] <> "" && strpos($_GET["back_url_admin"], "/") === 0) $_SESSION["BACK_URL_ADMIN"] = $_GET["back_url_admin"]; $aUserOpt = CUserOptions::GetOption("admin_panel", "settings"); $aUserOptGlobal = CUserOptions::GetOption("global", "settings"); $toggleModeSet = false; if (isset($_GET["bitrix_include_areas"]) && $_GET["bitrix_include_areas"] <> "") { $APPLICATION->SetShowIncludeAreas($_GET["bitrix_include_areas"]=="Y"); $toggleModeSet = true; } $showMode = $APPLICATION->GetPublicShowMode(); $params = DeleteParam(array("bitrix_include_areas", "bitrix_show_mode", "back_url_admin")); $href = $APPLICATION->GetCurPage(); $hrefEnc = htmlspecialcharsbx($href); $toggleModeDynamic = $aUserOptGlobal['panel_dynamic_mode'] == 'Y'; $toggleMode = $toggleModeDynamic && !$toggleModeSet ? $aUserOpt['edit'] == 'on' : $APPLICATION->GetShowIncludeAreas() == 'Y'; //Save if changed $old_edit = $aUserOpt['edit']; $aUserOpt['edit'] = $toggleMode ? 'on' : 'off'; if($old_edit !== $aUserOpt['edit']) CUserOptions::SetOption('admin_panel', 'settings', $aUserOpt); $toggleModeLink = $hrefEnc.'?bitrix_include_areas='.($toggleMode ? 'N' : 'Y').($params<>""? "&".htmlspecialcharsbx($params):""); $maxQuotaMB = COption::GetOptionInt("main", "disk_space", 0); $maxQuota = $maxQuotaMB*1048576;//*1024*1024 if($maxQuota > 0) { $quota = new CDiskQuota(); $free = $quota->GetDiskQuota(); $freeMB = intval($free/1048576); } $result = CTopPanel::ShowPanelScripts(true); $result .= ' <!--[if lte IE 7]> <style type="text/css">#bx-panel {display:none !important;}</style> <div id="bx-panel-error">'.GetMessage("top_panel_browser").'</div><![endif]--> <script type="text/javascript">BX.admin.dynamic_mode='.($toggleModeDynamic ? 'true' : 'false').'; BX.admin.dynamic_mode_show_borders = '.($toggleMode ? 'true' : 'false').';</script> <div style="display:none; overflow:hidden;" id="bx-panel-back"></div> <div id="bx-panel"'.($aUserOpt["collapsed"] == "on" ? ' class="bx-panel-folded"':'').'> <div id="bx-panel-top"> <div id="bx-panel-top-gutter"></div> <div id="bx-panel-tabs"> '; $result .= ' <a id="bx-panel-menu" href="" '.CTopPanel::AddAttrHint(GetMessage('top_panel_start_menu_tooltip_title'), GetMessage('top_panel_start_menu_tooltip')).'><span id="bx-panel-menu-icon"></span><span id="bx-panel-menu-text">'.GetMessage("top_panel_menu").'</span></a><a id="bx-panel-view-tab"><span>'.GetMessage("top_panel_site").'</span></a><a id="bx-panel-admin-tab" href="'.( $_SESSION["BACK_URL_ADMIN"] <> "" ? htmlspecialcharsbx($_SESSION["BACK_URL_ADMIN"]).(strpos($_SESSION["BACK_URL_ADMIN"], "?") !== false? "&":"?") : '/bitrix/admin/index.php?lang='.LANGUAGE_ID.'&' ).'back_url_pub='.urlencode($href.($params<>""? "?".$params:"")).'"><span>'.GetMessage("top_panel_admin").'</span></a>'; $back_url = CUtil::JSUrlEscape(CUtil::addslashes($href.($params<>""? "?".$params:""))); $arStartMenuParams = array( 'DIV' => 'bx-panel-menu', 'ACTIVE_CLASS' => 'bx-pressed', 'MENU_URL' => '/bitrix/admin/get_start_menu.php?lang='.LANGUAGE_ID.'&back_url_pub='.urlencode($back_url).'&'.bitrix_sessid_get(), 'MENU_PRELOAD' => ($aUserOptGlobal["start_menu_preload"] == 'Y') ); $result .= '<script type="text/javascript">new BX.COpener('.CUtil::PhpToJsObject($arStartMenuParams).')</script>'; $Execs=$hkInstance->GetCodeByClassName("top_panel_menu",GetMessage("top_panel_menu")); $result .=$hkInstance->PrintJSExecs($Execs); $Execs=$hkInstance->GetCodeByClassName("top_panel_admin",GetMessage("top_panel_admin")); $result .=$hkInstance->PrintJSExecs($Execs); $informerItemsCount = CAdminInformer::InsertMainItems(); if($informerItemsCount>0) $result .= '<a class="adm-header-notif-block" id="adm-header-notif-block" onclick="BX.adminInformer.Toggle(this);"><span class="adm-header-notif-icon"></span><span id="adm-header-notif-counter" class="adm-header-notif-counter">'.CAdminInformer::$alertCounter.'</span></a>'; if ($USER->CanDoOperation("cache_control")) { $result .= '<a id="bx-panel-clear-cache" href="" onclick="BX.clearCache(); return false;"><span id="bx-panel-clear-cache-icon"></span><span id="bx-panel-clear-cache-text">'.GetMessage("top_panel_cache_new_tooltip_title").'</span></a>'; } $result .= ' </div> <div id="bx-panel-userinfo"> '; $bCanProfile = $USER->CanDoOperation('view_own_profile') || $USER->CanDoOperation('edit_own_profile'); $userName = CUser::FormatName( CSite::GetNameFormat(false), array( "NAME" => $USER->GetFirstName(), "LAST_NAME" => $USER->GetLastName(), "SECOND_NAME" => $USER->GetSecondName(), "LOGIN" => $USER->GetLogin() ), $bUseLogin = true, $bHTMLSpec = true ); if ($bCanProfile) { $result .= '<a href="/bitrix/admin/user_edit.php?lang='.LANGUAGE_ID.'&ID='.$USER->GetID().'" id="bx-panel-user" '.CTopPanel::AddAttrHint(GetMessage('top_panel_profile_tooltip')).'><span id="bx-panel-user-icon"></span><span id="bx-panel-user-text">'.$userName.'</span></a>'; } else { $result .= '<a id="bx-panel-user"><span id="bx-panel-user-icon"></span><span id="bx-panel-user-text">'.$userName.'</span></a>'; } $result .= '<a href="'.$hrefEnc.'?logout=yes'.htmlspecialcharsbx(($s=DeleteParam(array("logout"))) == ""? "":"&".$s).'" id="bx-panel-logout" '.CTopPanel::AddAttrHint(GetMessage('top_panel_logout_tooltip').$hkInstance->GetTitle("bx-panel-logout",true)).'>'.GetMessage("top_panel_logout").'</a>'; $toggleCaptionOn = '<span id="bx-panel-toggle-caption-mode-on">'.GetMessage("top_panel_on").'</span>'; $toggleCaptionOff = '<span id="bx-panel-toggle-caption-mode-off">'.GetMessage("top_panel_off").'</span>'; $toggleCaptions = $toggleMode ? $toggleCaptionOn.$toggleCaptionOff : $toggleCaptionOff.$toggleCaptionOn; $toogle = '<a href="'.$toggleModeLink.'" id="bx-panel-toggle" class="bx-panel-toggle'.($toggleMode ? '-on' : '-off').'"'.($toggleModeDynamic ? '' : ' '.CTopPanel::AddAttrHint(GetMessage("top_panel_edit_mode_new_tooltip_title"), GetMessage('top_panel_toggle_tooltip').$hkInstance->GetTitle("bx-panel-small-toggle",true))).'><span id="bx-panel-switcher-gutter-left"></span><span id="bx-panel-toggle-indicator"><span id="bx-panel-toggle-icon"></span><span id="bx-panel-toggle-icon-overlay"></span></span><span class="bx-panel-break"></span><span id="bx-panel-toggle-caption">'.GetMessage("top_panel_edit_mode_new").'</span><span class="bx-panel-break"></span><span id="bx-panel-toggle-caption-mode">'.$toggleCaptions.'</span><span id="bx-panel-switcher-gutter-right"></span></a>'; if ($aUserOpt["collapsed"] == "on") $result .= $toogle; $result .= '<a href="" id="bx-panel-expander" '.CTopPanel::AddAttrHint(GetMessage("top_panel_expand_tooltip_title"), GetMessage("top_panel_expand_tooltip").$hkInstance->GetTitle("bx-panel-expander",true)).'><span id="bx-panel-expander-text">'.GetMessage("top_panel_expand").'</span><span id="bx-panel-expander-arrow"></span></a>'; if($hkInstance->IsActive()) { $result .= '<a id="bx-panel-hotkeys" href="javascript:void(0)" onclick="BXHotKeys.ShowSettings();" '.CTopPanel::AddAttrHint(GetMessage("HK_PANEL_TITLE").$hkInstance->GetTitle("bx-panel-hotkeys",true)).'></a>'; } $result .= '<a href="javascript:void(0)" id="bx-panel-pin"'.($aUserOpt['fix'] == 'on' ? ' class="bx-panel-pin-fixed"' : '').' '.CTopPanel::AddAttrHint(GetMessage('top_panel_pin_tooltip')).'></a>'; $Execs = $hkInstance->GetCodeByClassName("bx-panel-logout",GetMessage('top_panel_logout_tooltip')); $result .= $hkInstance->PrintJSExecs($Execs); $Execs = $hkInstance->GetCodeByClassName("bx-panel-small-toggle",GetMessage("top_panel_edit_mode_new_tooltip_title"),'location.href="'.$toggleModeLink.'";'); $result .= $hkInstance->PrintJSExecs($Execs); $Execs = $hkInstance->GetCodeByClassName("bx-panel-expander",GetMessage("top_panel_expand_tooltip_title")."/".GetMessage("top_panel_collapse_tooltip_title")); $result .= $hkInstance->PrintJSExecs($Execs); $result .= ' </div> </div> '; /* BUTTONS */ $result .= '<div id="bx-panel-site-toolbar"><div id="bx-panel-buttons-gutter"></div><div id="bx-panel-switcher">'; if ($aUserOpt["collapsed"] != "on") $result .= $toogle; $result .= '<a href="" id="bx-panel-hider" '.CTopPanel::AddAttrHint(GetMessage("top_panel_collapse_tooltip_title"), GetMessage("top_panel_collapse_tooltip").$hkInstance->GetTitle("bx-panel-expander",true)).'>'.GetMessage("top_panel_collapse").'<span id="bx-panel-hider-arrow"></span></a>'; $result .= '</div><div id="bx-panel-buttons"><div id="bx-panel-buttons-inner">'; $main_sort = ""; $last_btn_type = ''; $last_btn_small_cnt = 0; $result .= '<span class="bx-panel-button-group">'; foreach($arPanelButtons as $key=>$arButton) { $result.= $hkInstance->PrintTPButton($arButton); if($main_sort != $arButton["MAIN_SORT"] && $main_sort<>"") { $result .= '</span><span class="bx-panel-button-separator"></span><span class="bx-panel-button-group">'; $last_btn_small_cnt = 0; } $arButton['TYPE'] = $arButton['TYPE'] == 'BIG' ? 'BIG' : 'SMALL'; //very old behaviour if(is_set($arButton, "SRC_0")) $arButton["SRC"] = $arButton["SRC_0"]; $arButton['HREF'] = trim($arButton['HREF']); $bHasAction = $arButton['HREF'] != ''; if (array_key_exists("RESORT_MENU", $arButton) && $arButton["RESORT_MENU"] === true && is_array($arButton['MENU']) && !empty($arButton['MENU'])) usort($arButton['MENU'], array("CTopPanel", "SortButtonMenu")); $bHasMenu = is_array($arButton['MENU']) && count($arButton['MENU']) > 0; if ($bHasMenu && !$bHasAction) { foreach ($arButton['MENU'] as $arItem) { if ($arItem['DEFAULT']) { $arButton['HREF'] = $arItem['HREF']; $bHasAction = true; } } } if ($last_btn_type != '' && $arButton['TYPE'] != $last_btn_type && $main_sort == $arButton["MAIN_SORT"]) { $result .= '</span><span class="bx-panel-button-group">'; $last_btn_small_cnt = 0; } if ($bHasAction && substr(strtolower($arButton['HREF']), 0, 11) == 'javascript:') { $arButton['ONCLICK'] = substr($arButton['HREF'], 11); $arButton['HREF'] = 'javascript:void(0)'; } if ($arButton['HINT']) { if ($arButton['HINT']['ID']) { $hintOptions = CUtil::GetPopupOptions($arButton['HINT']['ID']); if($hintOptions['display'] == 'off') { unset($arButton['HINT']); } } if ($arButton['HINT']) unset($arButton['ALT']); if ($bHasMenu && !$arButton['HINT_MENU']) $arButton['HINT']['TARGET'] = 'parent'; } $hkInstance = CHotKeys::getInstance(); switch ($arButton['TYPE']) { case 'SMALL': if ($last_btn_small_cnt >= 3 && $main_sort == $arButton["MAIN_SORT"]) { $result .= '</span><span class="bx-panel-button-group">'; $last_btn_small_cnt = 0; } elseif ($last_btn_small_cnt > 0) { $result .= '<span class="bx-panel-break"></span>'; } $result .= '<span class="bx-panel-small-button"><span class="bx-panel-small-button-inner">'; $button_icon = '<span class="bx-panel-small-button-icon'.($arButton['ICON'] ? ' '.$arButton['ICON'] : '').'"'.($arButton['SRC'] ? ' style="background: scroll transparent url('.htmlspecialcharsbx($arButton['SRC']).') no-repeat center center !important;"' : '').'></span>'; $button_text = '<span class="bx-panel-small-button-text">'.htmlspecialcharsbx($arButton['TEXT']).'</span>'; if ($bHasAction) { $result .= '<a href="'.htmlspecialcharsbx($arButton['HREF']).'" onclick="'.htmlspecialcharsbx($arButton['ONCLICK']).';BX.removeClass(this.parentNode.parentNode, \'bx-panel-small-button'.($bHasMenu ? '-text' : '').'-active\')" id="bx_topmenu_btn_'.$key.'"'.($arButton['ALT'] ? ' title="'.htmlspecialcharsbx($arButton['ALT']).$hkInstance->GetTitle("bx_topmenu_btn_".$key).'"' : '"'.$hkInstance->GetTitle("bx_topmenu_btn_".$key).'"').'>'.$button_icon.$button_text.'</a>'; $result .= '<script type="text/javascript">BX.admin.panel.RegisterButton({ID: \'bx_topmenu_btn_'.$key.'\', TYPE: \'SMALL\', ACTIVE_CSS: \'bx-panel-small-button'.($bHasMenu ? '-text' : '').'-active\', HOVER_CSS: \'bx-panel-small-button'.($bHasMenu ? '-text' : '').'-hover\''.($arButton['HINT'] ? ', HINT: '.CUtil::PhpToJsObject($arButton['HINT']) : '').'})</script>'; if ($bHasMenu) { $result .= '<a href="javascript:void(0)" class="bx-panel-small-button-arrow" id="bx_topmenu_btn_'.$key.'_menu"><span class="bx-panel-small-button-arrow"></span></a>'; $result .= '<script type="text/javascript">BX.admin.panel.RegisterButton({ID: \'bx_topmenu_btn_'.$key.'_menu\', TYPE: \'SMALL\', MENU: '.CUtil::PhpToJsObject($arButton['MENU']).', ACTIVE_CSS: \'bx-panel-small-button-arrow-active\', HOVER_CSS: \'bx-panel-small-button-arrow-hover\''.($arButton['HINT_MENU'] ? ', HINT: '.CUtil::PhpToJsObject($arButton['HINT_MENU']) : '').'})</script>'; } } elseif ($bHasMenu) { $result .= '<a href="javascript:void(0)" id="bx_topmenu_btn_'.$key.'"'.($arButton['ALT'] ? ' title="'.htmlspecialcharsbx($arButton['ALT']).'"' : '').'>'.$button_icon.$button_text.'<span class="bx-panel-small-single-button-arrow"></span></a>'; $result .= '<script type="text/javascript">BX.admin.panel.RegisterButton({ID: \'bx_topmenu_btn_'.$key.'\', TYPE: \'SMALL\', MENU: '.CUtil::PhpToJsObject($arButton['MENU']).', ACTIVE_CSS: \'bx-panel-small-button-active\', HOVER_CSS: \'bx-panel-small-button-hover\''.($arButton['HINT'] ? ', HINT: '.CUtil::PhpToJsObject($arButton['HINT']) : '').'})</script>'; } $result .= '</span></span>'; $last_btn_small_cnt++; break; case 'BIG': $last_btn_small_cnt = 0; $result .= '<span class="bx-panel-button"><span class="bx-panel-button-inner">'; $button_icon = '<span class="bx-panel-button-icon'.($arButton['ICON'] ? ' '.$arButton['ICON'] : '').'"'.($arButton['SRC'] ? ' style="background: scroll transparent url('.htmlspecialcharsbx($arButton['SRC']).') no-repeat center center !important;"' : '').'></span>'; if ($bHasAction && $bHasMenu) { $button_text = '<span class="bx-panel-button-text">'.str_replace('#BR#', '<span class="bx-panel-break"></span>', $arButton['TEXT']).' <span class="bx-panel-button-arrow"></span></span>'; $result .= '<a href="'.htmlspecialcharsbx($arButton['HREF']).'" onclick="'.htmlspecialcharsbx($arButton['ONCLICK']).';BX.removeClass(this.parentNode.parentNode, \'bx-panel-button-icon-active\');" id="bx_topmenu_btn_'.$key.'"'.($arButton['ALT'] ? ' title="'.htmlspecialcharsbx($arButton['ALT']).'"' : '').'>'.$button_icon.'</a><a id="bx_topmenu_btn_'.$key.'_menu" href="javascript:void(0)">'.$button_text.'</a>'; $result .= '<script type="text/javascript"> BX.admin.panel.RegisterButton({ID: \'bx_topmenu_btn_'.$key.'\', TYPE: \'BIG\', ACTIVE_CSS: \'bx-panel-button-icon-active\', HOVER_CSS: \'bx-panel-button-icon-hover\''.($arButton['HINT'] ? ', HINT: '.CUtil::PhpToJsObject($arButton['HINT']) : '').'}); BX.admin.panel.RegisterButton({ID: \'bx_topmenu_btn_'.$key.'_menu\', TYPE: \'BIG\', MENU: '.CUtil::PhpToJsObject($arButton['MENU']).', ACTIVE_CSS: \'bx-panel-button-text-active\', HOVER_CSS: \'bx-panel-button-text-hover\''.($arButton['HINT_MENU'] ? ', HINT: '.CUtil::PhpToJsObject($arButton['HINT_MENU']) : '').'}) </script>'; } else if ($bHasAction) { $button_text = '<span class="bx-panel-button-text">'.str_replace('#BR#', '<span class="bx-panel-break"></span>', $arButton['TEXT']).'</span>'; $result .= '<a href="'.htmlspecialcharsbx($arButton['HREF']).'" onclick="'.htmlspecialcharsbx($arButton['ONCLICK']).';BX.removeClass(this.parentNode.parentNode, \'bx-panel-button-active\');" id="bx_topmenu_btn_'.$key.'"'.($arButton['ALT'] ? ' title="'.htmlspecialcharsbx($arButton['ALT']).'"' : '').'>'.$button_icon.$button_text.'</a>'; $result .= '<script type="text/javascript">BX.admin.panel.RegisterButton({ID: \'bx_topmenu_btn_'.$key.'\', TYPE: \'BIG\', ACTIVE_CSS: \'bx-panel-button-active\', HOVER_CSS: \'bx-panel-button-hover\''.($arButton['HINT'] ? ', HINT: '.CUtil::PhpToJsObject($arButton['HINT']) : '').'});</script>'; } else // if $bHasMenu { $button_text = '<span class="bx-panel-button-text">'.str_replace('#BR#', '<span class="bx-panel-break"></span>', $arButton['TEXT']).' <span class="bx-panel-button-arrow"></span></span>'; $result .= '<a href="javascript:void(0)" id="bx_topmenu_btn_'.$key.'_menu">'.$button_icon.$button_text.'</a>'; $result .= '<script type="text/javascript">BX.admin.panel.RegisterButton({ID: \'bx_topmenu_btn_'.$key.'_menu\', TYPE: \'BIG\', MENU: '.CUtil::PhpToJsObject($arButton['MENU']).', ACTIVE_CSS: \'bx-panel-button-active\', HOVER_CSS: \'bx-panel-button-hover\''.($arButton['HINT'] ? ', HINT: '.CUtil::PhpToJsObject($arButton['HINT']) : '').'});</script>'; } $result .= '</span></span>'; break; } $main_sort = $arButton["MAIN_SORT"]; $last_btn_type = $arButton['TYPE']; } $result .= '</span>'; $result .= '</div> </div> </div>'; if ($USER->IsAdmin()) $result .= CAdminNotify::GetHtml(); $result .= ' </div> '; $result .= '<script type="text/javascript"> BX.admin.panel.state = { fixed: '.($aUserOpt["fix"] == "on" ? 'true' : 'false').', collapsed: '.($aUserOpt["collapsed"] == "on" ? 'true' : 'false').' } </script>'; //start menu preload // if($aUserOptGlobal["start_menu_preload"] == 'Y') // $result .= '<script type="text/javascript">BX.ready(function(){jsStartMenu.PreloadMenu(\''.CUtil::JSEscape($href.($params<>""? "?".$params:"")).'\');});</script>'; //show script to play sound $result .= $GLOBALS["adminPage"]->ShowSound(); return $result; }
private function getDiskSpace() { /** @noinspection PhpDynamicAsStaticMethodCallInspection */ $freeSpace = CDiskQuota::GetDiskQuota(); return array($freeSpace === false ? 0 : $freeSpace, (double) COption::GetOptionInt('main', 'disk_space', 0) * 1024 * 1024); }
public function executeComponent() { if (!CModule::IncludeModule('webdav')) { return false; } $isVisual = isset($this->arParams['VISUAL']) ? (bool) $this->arParams['VISUAL'] : true; $pathToAjax = isset($this->arParams['AJAX_PATH']) ? $this->arParams['AJAX_PATH'] : '/bitrix/components/bitrix/webdav.disk/ajax.php'; try { if ($isVisual) { $diskEnabled = \Bitrix\Main\Config\Option::get('disk', 'successfully_converted', false) && CModule::includeModule('disk'); $quota = CDiskQuota::GetDiskQuota(); $this->arResult['showDiskQuota'] = false; //$quota !== true; //now without quota $this->arResult['diskSpace'] = (double) COption::GetOptionInt('main', 'disk_space') * 1024 * 1024; $this->arResult['quota'] = $quota; $this->arResult['ajaxIndex'] = $pathToAjax; $this->arResult['ajaxStorageIndex'] = '/desktop_app/storage.php'; if ($diskEnabled) { $this->arResult['isInstalledDisk'] = \Bitrix\Disk\Desktop::isDesktopDiskInstall(); $this->arResult['personalLibIndex'] = '/company/personal/user/' . $this->getUser()->getId() . '/disk/path/'; } else { $this->arResult['isInstalledDisk'] = (bool) CWebDavTools::isDesktopDiskInstall(); $this->arResult['personalLibIndex'] = '/company/personal/user/' . $this->getUser()->getId() . '/files/lib/'; } $this->arResult['isInstalledPull'] = (bool) IsModuleInstalled('pull'); $this->arResult['currentUser'] = array('id' => $this->getUser()->getId(), 'formattedName' => $this->getUser()->getFormattedName()); $this->getApplication()->addHeadScript('/bitrix/components/bitrix/webdav.disk/disk.js'); $this->includeComponentTemplate(); return; } CTimeZone::Disable(); //decode from utf-8 to site LANG_CHARSET CUtil::decodeURIComponent($_POST); $this->checkUser()->runAction(); CTimeZone::Enable(); } catch (CWebDavBadStorageAfterMigrateException $e) { CTimeZone::Enable(); $this->sendJsonResponse(array('status' => CWebDavDiskDispatcher::STATUS_ERROR, 'message' => 'Could not get Disk\\Storage. Perhaps, it is old client, which does not reconnect. '), 500); } catch (CWebDavSymlinkMoveFakeErrorException $e) { CTimeZone::Enable(); $this->sendJsonResponse(array('status' => CWebDavDiskDispatcher::STATUS_ERROR, 'message' => 'This is not really error. Move symlink folders.')); } catch (CWebDavAccessDeniedException $e) { CTimeZone::Enable(); $this->sendJsonResponse(array('status' => CWebDavDiskDispatcher::STATUS_ACCESS_DENIED, 'message' => $e->getMessage())); } catch (Exception $e) { CTimeZone::Enable(); $response = array('status' => 'error', 'message' => $e->getMessage()); if ($this->dispatcher) { $errors = $this->dispatcher->getErrors(); if ($errors) { $response['detail'] = $errors; } } $this->sendJsonResponse($response); } return; }
public function processActionGetDiskQuota() { $this->enableIgnoreQuotaError(); $quota = CDiskQuota::GetDiskQuota(); if ($quota === true) { return $this->sendResponse(array('status' => static::STATUS_UNLIMITED, 'quota' => null)); } return $this->sendResponse(array('status' => static::STATUS_LIMITED, 'quota' => $quota === false ? 0 : $quota)); }