function local_generateHeader($data) { // only needed for zbx_construct_menu global $page; header('Content-Type: text/html; charset=UTF-8'); // construct menu $main_menu = []; $sub_menus = []; zbx_construct_menu($main_menu, $sub_menus, $page, $data['controller']['action']); $pageHeader = new CView('layout.htmlpage.header', ['javascript' => ['files' => $data['javascript']['files']], 'page' => ['title' => $data['page']['title']], 'user' => ['lang' => CWebUser::$data['lang'], 'theme' => CWebUser::$data['theme']]]); echo $pageHeader->getOutput(); if ($data['fullscreen'] == 0) { global $ZBX_SERVER_NAME; $pageMenu = new CView('layout.htmlpage.menu', ['server_name' => isset($ZBX_SERVER_NAME) ? $ZBX_SERVER_NAME : '', 'menu' => ['main_menu' => $main_menu, 'sub_menus' => $sub_menus, 'selected' => $page['menu']], 'user' => ['is_guest' => CWebUser::isGuest(), 'alias' => CWebUser::$data['alias'], 'name' => CWebUser::$data['name'], 'surname' => CWebUser::$data['surname']]]); echo $pageMenu->getOutput(); } echo '<div class="' . ZBX_STYLE_ARTICLE . '">'; // should be replaced with addPostJS() at some point zbx_add_post_js('initMessages({});'); // if a user logs in after several unsuccessful attempts, display a warning if ($failedAttempts = CProfile::get('web.login.attempt.failed', 0)) { $attempt_ip = CProfile::get('web.login.attempt.ip', ''); $attempt_date = CProfile::get('web.login.attempt.clock', 0); $error_msg = _n('%4$s failed login attempt logged. Last failed attempt was from %1$s on %2$s at %3$s.', '%4$s failed login attempts logged. Last failed attempt was from %1$s on %2$s at %3$s.', $attempt_ip, zbx_date2str(DATE_FORMAT, $attempt_date), zbx_date2str(TIME_FORMAT, $attempt_date), $failedAttempts); error($error_msg); CProfile::update('web.login.attempt.failed', 0, PROFILE_TYPE_INT); } show_messages(); }
$page_title .= ' (' . S_ALL_NODES . ') '; } else { if (!empty($ZBX_NODES)) { $page_title .= ' (' . $ZBX_NODES[$ZBX_CURRENT_NODEID]['name'] . ')'; } } } if ((defined('ZBX_PAGE_DO_REFRESH') || defined('ZBX_PAGE_DO_JS_REFRESH')) && $USER_DETAILS['refresh']) { $page_title .= ' [refreshed every ' . $USER_DETAILS['refresh'] . ' sec]'; } break; } // construc menu $main_menu = array(); $sub_menus = array(); $denyed_page_requested = zbx_construct_menu($main_menu, $sub_menus); zbx_flush_post_cookies($denyed_page_requested); if ($page['type'] == PAGE_TYPE_HTML) { ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title><?php echo $page_title; ?> </title> <?php if (defined('ZBX_PAGE_DO_REFRESH') && $USER_DETAILS["refresh"]) { echo '<meta http-equiv="refresh" content="' . $USER_DETAILS["refresh"] . '" />'; } ?>
if (isset($ZBX_VIEWED_NODES) && $ZBX_VIEWED_NODES['selected'] == 0) { // all selected $pageTitle .= ' (' . _('All nodes') . ') '; } elseif (!empty($ZBX_NODES)) { $pageTitle .= ' (' . $ZBX_NODES[$ZBX_CURRENT_NODEID]['name'] . ')'; } } if ((defined('ZBX_PAGE_DO_REFRESH') || defined('ZBX_PAGE_DO_JS_REFRESH')) && CWebUser::$data['refresh']) { $pageTitle .= ' [' . _s('refreshed every %1$s sec.', CWebUser::$data['refresh']) . ']'; } break; } // construct menu $main_menu = array(); $sub_menus = array(); $denied_page_requested = zbx_construct_menu($main_menu, $sub_menus, $page); // render the "Deny access" page if ($denied_page_requested) { access_deny(ACCESS_DENY_PAGE); } if ($page['type'] == PAGE_TYPE_HTML) { $pageHeader = new CPageHeader($pageTitle); $pageHeader->addCssInit(); $css = ZBX_DEFAULT_THEME; if (!ZBX_PAGE_NO_THEME) { if (!empty($DB['DB'])) { $config = select_config(); $css = getUserTheme(CWebUser::$data); $severityCss = <<<CSS .disaster { background: #{$config['severity_color_5']} !important; } .high { background: #{$config['severity_color_4']} !important; }