array( "label" => S_MONITORING, "node_perm" => PERM_READ_LIST, "default_page_id" => 0, "pages"=>array( array("url"=>"overview.php" ,"label"=>S_OVERVIEW ), array("url"=>"httpmon.php" ,"label"=>S_WEB , "sub_pages"=>array("httpdetails.php") ), array("url"=>"latest.php" ,"label"=>S_LATEST_DATA , "sub_pages"=>array("history.php","chart.php") ), array("url"=>"tr_status.php" ,"label"=>S_TRIGGERS , "sub_pages"=>array("tr_events.php","acknow.php","tr_comments.php", "chart4.php","scripts_exec.php") ), array("url"=>"queue.php" ,"label"=>S_QUEUE ), array("url"=>"events.php" ,"label"=>S_EVENTS ), array("url"=>"actions.php" ,"label"=>S_ACTIONS ), array("url"=>"maps.php" ,"label"=>S_MAPS , "sub_pages"=>array("map.php") ), array("url"=>"charts.php" ,"label"=>S_GRAPHS , "sub_pages"=>array("chart2.php") ), array("url"=>"screens.php" ,"label"=>S_SCREENS ), array("url"=>"discovery.php" ,"label"=>S_DISCOVERY , "user_type"=>USER_TYPE_ZABBIX_ADMIN), array("url"=>"srv_status.php" ,"label"=>S_IT_SERVICES , 'forse_disable_subnodes' => true, "sub_pages"=>array("report3.php","chart_sla.php","chart5.php") ), array("url"=>"vtext.php"), array("url"=>"chart3.php") ) ), "cm"=>array( "label" => S_INVENTORY, "node_perm" => PERM_READ_LIST, "default_page_id" => 0, "pages"=>array( array("url"=>"hostprofiles.php" ,"label"=>S_HOSTS ) ) ), "reports"=>array( "label" => S_REPORTS, "node_perm" => PERM_READ_LIST, "default_page_id" => 0, "pages"=>array( array("url"=>"report1.php", "label"=>S_STATUS_OF_ZABBIX ), array("url"=>"report2.php", "label"=>S_AVAILABILITY_REPORT ), array("url"=>"report5.php", "label"=>S_TRIGGERS_TOP_100 ) ) ), "config"=>array( "label" => S_CONFIGURATION, "user_type" => USER_TYPE_ZABBIX_ADMIN, "node_perm" => PERM_READ_LIST, "default_page_id" => 0, "forse_disable_subnodes"=> true, "pages"=>array( array("url"=>"config.php" ,"label"=>S_GENERAL, "sub_pages"=>array("image.php") ), array("url"=>"httpconf.php" ,"label"=>S_WEB, "sub_pages"=>array("popup_httpstep.php") ), array("url"=>"hosts.php" ,"label"=>S_HOSTS), array("url"=>"items.php" ,"label"=>S_ITEMS, "sub_pages"=>array("tr_logform.php") ), array("url"=>"triggers.php" ,"label"=>S_TRIGGERS, "sub_pages"=>array("popup_trexpr.php") ), array("url"=>"actionconf.php" ,"label"=>S_ACTIONS), array("url"=>"sysmaps.php" ,"label"=>S_MAPS, "sub_pages"=>array("sysmap.php") ), array("url"=>"graphs.php" ,"label"=>S_GRAPHS, "sub_pages"=>array("popup_gitem.php") ), array("url"=>"screenconf.php" ,"label"=>S_SCREENS, "sub_pages"=>array("screenedit.php") ), array("url"=>"services.php" ,"label"=>S_IT_SERVICES, "sub_pages"=>array("services_form.php") ), array('url'=>'discoveryconf.php','label'=>S_DISCOVERY), array("url"=>"exp_imp.php" ,"label"=>S_EXPORT_IMPORT), array("url"=>"popup.php") ) ), "admin"=>array( "label" => S_ADMINISTRATION, "user_type" => USER_TYPE_SUPER_ADMIN, "node_perm" => PERM_READ_WRITE, "default_page_id" => 1, "forse_disable_subnodes"=> true, "pages"=>array( ZBX_DISTRIBUTED ? array("url"=>"nodes.php" ,"label"=>S_NODES) : null , array("url"=>"users.php" ,"label"=>S_USERS , "sub_pages"=>array("popup_media.php", "popup_usrgrp.php","popup_right.php","popup_users.php") ), array("url"=>"media_types.php" ,"label"=>S_MEDIA_TYPES ), array("url"=>"scripts.php" ,"label"=>S_SCRIPTS), array("url"=>"audit.php" ,"label"=>S_AUDIT ), array("url"=>"report4.php" ,"label"=>S_NOTIFICATIONS ), array("url"=>"instal.php" ,"label"=>S_INSTALLATION , "sub_pages"=>array("setup.php")) ) ), "login"=>array( "label" => S_LOGIN, "default_page_id" => 0, "forse_disable_subnodes"=> true, "pages"=>array( array("url"=>"index.php", "sub_pages"=>array("profile.php") ) ) ) ); $main_menu_row = array(); $sub_menu_row = array(); foreach($ZBX_MENU as $label=>$sub) { // Check permissions for main menu unset($deny); if(!defined('ZBX_PAGE_NO_AUTHERIZATION')) { if(isset($sub['user_type'])) { if($USER_DETAILS['type'] < $sub['user_type']) $deny = true; } if(isset($sub['node_perm'])) { if ( 0 == count(get_accessible_nodes_by_user( $USER_DETAILS,$sub['node_perm'],null, PERM_RES_IDS_ARRAY,get_current_nodeid(false)))) $deny = true; } if($label=='login') { unset($deny); } } // End of main menu permissions checking unset($menu_url); foreach($sub['pages'] as $id => $sub_pages) { if(!defined('ZBX_PAGE_NO_AUTHERIZATION')) { if(isset($sub_pages['user_type'])) { if($USER_DETAILS['type'] < $sub_pages['user_type']) { unset($sub['pages'][$id]); continue; } } if(isset($sub_pages['node_perm'])) { if ( 0 == count(get_accessible_nodes_by_user( $USER_DETAILS,$sub_pages['node_perm'],null, PERM_RES_IDS_ARRAY,get_current_nodeid(false)))) { unset($sub['pages'][$id]); continue; } } } if(isset($page_exist)) continue; if($page['file'] == $sub_pages['url']) { if(isset($sub_pages['label'])) { $menu_url = $sub_pages['url']; } $page_exist = true; $sub['pages'][$id]['active'] = true; /* mark as active */ } else if(isset($sub_pages['sub_pages'])) { if(in_array($page['file'], $sub_pages['sub_pages'])) { if(isset($sub_pages['label'])) { $menu_url = $sub_pages['url']; } $page_exist = true; $sub['pages'][$id]['active'] = true; /* mark as active */ } } if ( isset($page_exist) && ( isset($sub['forse_disable_subnodes']) || isset($sub_pages['forse_disable_subnodes']) ) && !defined('ZBX_DISABLE_SUBNODES') ) { define('ZBX_DISABLE_SUBNODES', 1); } } if(isset($menu_url)) /* active menu */ { $class = "active"; update_profile('web.menu.'.$label.'.last', $menu_url); if(isset($deny)) { $denyed_page_requested = true; continue; } foreach($sub['pages'] as $sub_pages) { if(!isset($sub_pages['label'])) continue; $label = new CLink($sub_pages['label'], $sub_pages['url'],'highlight'); if(isset($sub_pages['active'])) $label = new CSpan($label, 'active'); array_push($sub_menu_row, $label, new CSpan(SPACE.SPACE.'|'.SPACE.SPACE, 'divider') ); } } else { if(isset($deny)) continue; $class = "horizontal_menu_n"; $menu_url = get_profile('web.menu.'.$label.'.last',false); if(!$menu_url) $menu_url = $sub['pages'][$sub['default_page_id']]["url"]; } array_push($main_menu_row, new CCol(new CLink($sub['label'], $menu_url, "highlight"),$class)); unset($menu_url, $class); } if((!isset($page_exist) && $page['type']!=PAGE_TYPE_XML)) { $denyed_page_requested = true; } zbx_flush_post_cookies(isset($denyed_page_requested)); if($page["type"] == PAGE_TYPE_HTML) { ?> <?php echo $page['title'] ?> '; } ?> $script){ if(file_exists('js/'.$script)){ echo ' '."\n"; } elseif(file_exists($script)){ echo ' '."\n"; } else { echo ''."\n"; } } } ?> SetTarget('_blank'); $support = new CLink(S_GET_SUPPORT, "http://www.zabbix.com/support.php", "small_font"); $support->SetTarget('_blank'); $page_header_r_col = array($help,array("|", $support)); if($USER_DETAILS["alias"] != ZBX_GUEST_USER){ $page_header_r_col[] = array("|", new CLink(S_PROFILE, "profile.php", "small_font"),"|", new CLink(S_LOGOUT, "index.php?reconnect=1", "small_font")); } else { $page_header_r_col[] = array("|", new CLink(S_LOGIN, "index.php", "small_font")); } $logo = new CLink(new CImg("images/general/zabbix.png","ZABBIX"),"http://www.zabbix.com"); $logo->SetTarget('_blank'); $top_page_row = array(new CCol($logo, "page_header_l"), new CCol($page_header_r_col, "page_header_r")); unset($logo, $page_header_r_col, $help, $support); $table = new CTable(NULL,"page_header"); $table->SetCellSpacing(0); $table->SetCellPadding(5); $table->AddRow($top_page_row); $table->Show(); $menu_table = new CTable(NULL,'menu'); $menu_table->SetCellSpacing(0); $menu_table->SetCellPadding(5); $menu_table->AddRow($main_menu_row); $node_form = null; if(ZBX_DISTRIBUTED) { $lst_nodes = new CComboBox('switch_node', get_current_nodeid(false), "submit()"); $db_nodes = DBselect( 'select * from nodes '. ' where nodeid in ('. get_accessible_nodes_by_user($USER_DETAILS,PERM_READ_LIST). ') '. ' order by name ' ); while($node_data = DBfetch($db_nodes)) { $lst_nodes->AddItem($node_data['nodeid'],$node_data['name']); } if( $lst_nodes->ItemsCount() > 1 ) { $node_form = new CForm(); $node_form->AddItem(array(S_CURRENT_NODE,$lst_nodes)); unset($lst_nodes); if ( !defined('ZBX_DISABLE_SUBNODES') ) { global $ZBX_WITH_SUBNODES; $cmd_show_subnodes = new CComboBox('show_subnodes', !empty($ZBX_WITH_SUBNODES) ? 1 : 0, "submit()"); $cmd_show_subnodes->AddItem(0, S_CURRENT_NODE_ONLY); $cmd_show_subnodes->AddItem(1, S_WITH_SUBNODES); $node_form->AddItem(array(SPACE, S_SHOW, $cmd_show_subnodes)); } // No need for the button anymore // $node_form->AddItem(new CButton('submit',S_SWITCH_NODE)); } } $table = new CTable(); $table->SetCellSpacing(0); $table->SetCellPadding(0); $table->AddOption('style','width: 100%;'); $r_col = new CCol($node_form); $r_col->AddOption('style','text-align: right;'); $table->AddRow(array($menu_table,$r_col)); $table->Show(); $sub_menu_table = new CTable(NULL,'sub_menu'); $sub_menu_table->SetCellSpacing(0); $sub_menu_table->SetCellPadding(5); (empty($sub_menu_row))?($sub_menu_row = ' '):(''); $sub_menu_table->AddRow(new CCol($sub_menu_row)); $sub_menu_table->Show(); } //------------------------------------- --------------------------------------- if(isset($page['hist_arg']) && ($USER_DETAILS["alias"] != ZBX_GUEST_USER) && ($page["type"] == PAGE_TYPE_HTML) && !defined('ZBX_PAGE_NO_MENU')){ $table = new CTable(); $table->SetClass('history'); $table->SetCellSpacing(0); $table->SetCellPadding(0); $history = get_user_history(); add_user_history($page); $tr = new CRow(new CCol('History:','caption')); $tr->AddItem($history); $table->AddRow($tr); $table->Show(); } elseif(($page["type"] == PAGE_TYPE_HTML) && !defined('ZBX_PAGE_NO_MENU')) { echo BR; } //------------------------------------ --------------------------------------- unset($ZBX_MENU); unset($table, $top_page_row, $menu_table, $node_form); unset($main_menu_row); unset($db_nodes, $node_data); unset($sub_menu_table, $sub_menu_row); if(isset($denyed_page_requested)) { access_deny(); } if(version_compare(phpversion(), '5.1.0RC1', '>=') && $page['type'] == PAGE_TYPE_HTML) { $tmezone = ini_get('date.timezone'); if(empty($tmezone)) { info('Timezone for PHP is not set. Please set "date.timezone" option in php.ini.'); date_default_timezone_set('UTC'); } unset($tmezone); } show_messages(); ?>