";print_r($array);print ""; if (sizeof($array) > 0) { while (list($top_branch, $top_children) = each($array)) { if ($top_branch == "config") { $config_array = $top_children; }elseif ($top_branch == "fields") { $fields_array = $top_children; } } } $i = 0; if (sizeof($fields_array) > 0) { while (list($field_name, $field_array) = each($fields_array)) { if ($i == 0) { if (!isset($config_array["no_form_tag"])) { print "
\n"; } } if ($field_array["method"] == "hidden") { form_hidden_box($field_name, $field_array["value"], ((isset($field_array["default"])) ? $field_array["default"] : "")); }elseif ($field_array["method"] == "hidden_zero") { form_hidden_box($field_name, $field_array["value"], "0"); }elseif ($field_array["method"] == "spacer") { print "" . $field_array["value"] . "\n"; }else{ if (isset($config_array["force_row_color"])) { print ""; }else{ form_alternate_row_color($colors["form_alternate1"],$colors["form_alternate2"],$i); } print "\n" . $field_array["friendly_name"] . "
\n"; if (isset($field_array["sub_checkbox"])) { form_checkbox($field_array["sub_checkbox"]["name"], $field_array["sub_checkbox"]["value"], $field_array["sub_checkbox"]["friendly_name"], "", ((isset($field_array["form_id"])) ? $field_array["form_id"] : "")); } print ((isset($field_array["description"])) ? $field_array["description"] : "") . "\n"; print ""; switch ($field_array["method"]) { case 'textbox': form_text_box($field_name, $field_array["value"], ((isset($field_array["default"])) ? $field_array["default"] : ""), $field_array["max_length"], ((isset($field_array["size"])) ? $field_array["size"] : "40"), "text", ((isset($field_array["form_id"])) ? $field_array["form_id"] : "")); break; case 'textbox_password': form_text_box($field_name, $field_array["value"], ((isset($field_array["default"])) ? $field_array["default"] : ""), $field_array["max_length"], ((isset($field_array["size"])) ? $field_array["size"] : "40"), "password"); print "
"; form_text_box($field_name . "_confirm", $field_array["value"], ((isset($field_array["default"])) ? $field_array["default"] : ""), $field_array["max_length"], ((isset($field_array["size"])) ? $field_array["size"] : "40"), "password"); break; case 'textarea': form_text_area($field_name, $field_array["value"], $field_array["textarea_rows"], $field_array["textarea_cols"], ((isset($field_array["default"])) ? $field_array["default"] : "")); break; case 'drop_array': form_dropdown($field_name, $field_array["array"], "", "", $field_array["value"], ((isset($field_array["none_value"])) ? $field_array["none_value"] : ""), ((isset($field_array["default"])) ? $field_array["default"] : "")); break; case 'drop_sql': form_dropdown($field_name, db_fetch_assoc($field_array["sql"]), "name", "id", $field_array["value"], ((isset($field_array["none_value"])) ? $field_array["none_value"] : ""), ((isset($field_array["default"])) ? $field_array["default"] : "")); break; case 'drop_multi': form_multi_dropdown($field_name, $field_array["array"], db_fetch_assoc($field_array["sql"]), "id"); break; case 'drop_multi_rra': form_multi_dropdown($field_name, array_rekey(db_fetch_assoc("select id,name from rra order by name"), "id", "name"), (empty($field_array["form_id"]) ? db_fetch_assoc($field_array["sql_all"]) : db_fetch_assoc($field_array["sql"])), "id"); break; case 'drop_tree': grow_dropdown_tree($field_array["tree_id"], $field_name, $field_array["value"]); break; case 'drop_color': form_color_dropdown($field_name, $field_array["value"], "None", ((isset($field_array["default"])) ? $field_array["default"] : "")); break; case 'checkbox': form_checkbox($field_name, $field_array["value"], $field_array["friendly_name"], ((isset($field_array["default"])) ? $field_array["default"] : ""), ((isset($field_array["form_id"])) ? $field_array["form_id"] : "")); break; case 'checkbox_group': while (list($check_name, $check_array) = each($field_array["items"])) { form_checkbox($check_name, $check_array["value"], $check_array["friendly_name"], ((isset($check_array["default"])) ? $check_array["default"] : ""), ((isset($field_array["form_id"])) ? $field_array["form_id"] : "")); print "
"; } break; case 'radio': while (list($radio_index, $radio_array) = each($field_array["items"])) { form_radio_button($field_name, $field_array["value"], $radio_array["radio_value"], $radio_array["radio_caption"], ((isset($field_array["default"])) ? $field_array["default"] : "")); print "
"; } break; case 'custom': print $field_array["value"]; break; case 'template_checkbox': print "" . html_boolean_friendly($field_array["value"]) . ""; form_hidden_box($field_name, $field_array["value"], ""); break; case 'template_drop_array': print "" . $field_array["array"]{$field_array["value"]} . ""; form_hidden_box($field_name, $field_array["value"], ""); break; case 'template_drop_multi_rra': $items = db_fetch_assoc($field_array["sql_print"]); if (sizeof($items) > 0) { foreach ($items as $item) { print $item["name"] . "
"; } } break; default: print "" . $field_array["value"] . ""; form_hidden_box($field_name, $field_array["value"], ""); break; } print "\n\n"; $i++; } if ($i == sizeof($fields_array)) { //print "
"; } } } } /* creates a standard html textbox */ function form_text_box($form_name, $form_previous_value, $form_default_value, $form_max_length, $form_size = 30, $type = "text", $current_id = 0) { if (($form_previous_value == "") && (empty($current_id))) { $form_previous_value = $form_default_value; } print "\n"; } /* creates a standard hidden html textbox */ function form_hidden_box($form_name, $form_previous_value, $form_default_value) { if ($form_previous_value == "") { $form_previous_value = $form_default_value; } print "\n"; } /* creates a dropdown box from a sql string */ function form_dropdown($form_name, $form_data, $column_display,$column_id, $form_previous_value, $form_none_entry, $form_default_value, $css_style = "") { if ($form_previous_value == "") { $form_previous_value = $form_default_value; } if (isset($_SESSION["sess_field_values"])) { if (!empty($_SESSION["sess_field_values"][$form_name])) { $form_previous_value = $_SESSION["sess_field_values"][$form_name]; } } print "\n"; } /* creates a checkbox */ function form_checkbox($form_name, $form_previous_value, $form_caption, $form_default_value, $current_id = 0) { if (($form_previous_value == "") && (empty($current_id))) { $form_previous_value = $form_default_value; } if (isset($_SESSION["sess_field_values"])) { if (!empty($_SESSION["sess_field_values"][$form_name])) { $form_previous_value = $_SESSION["sess_field_values"][$form_name]; } } print " $form_caption\n"; } /* creates a radio */ function form_radio_button($form_name, $form_previous_value, $form_current_value, $form_caption, $form_default_value) { if ($form_previous_value == "") { $form_previous_value = $form_default_value; } if (isset($_SESSION["sess_field_values"])) { if (!empty($_SESSION["sess_field_values"][$form_name])) { $form_previous_value = $_SESSION["sess_field_values"][$form_name]; } } print " $form_caption\n"; } /* creates a text area with a user defined rows and cols */ function form_text_area($form_name, $form_previous_value, $form_rows, $form_columns, $form_default_value) { if ($form_previous_value == "") { $form_previous_value = $form_default_value; } if (isset($_SESSION["sess_field_values"])) { if (!empty($_SESSION["sess_field_values"][$form_name])) { $form_previous_value = $_SESSION["sess_field_values"][$form_name]; } } print "\n"; } /* creates a hidden text box containing the ID */ function form_hidden_id($form_name, $form_id) { if ($form_id == "") { $form_id = 0; } print "\n"; } /* creates a dropdown box from a sql string */ function form_color_dropdown($form_name, $form_previous_value, $form_none_entry, $form_default_value) { if ($form_previous_value=="") { $form_previous_value = $form_default_value; } $colors_list = db_fetch_assoc("select id,hex from colors order by hex desc"); print "\n"; } /* create a multiselect listbox */ function form_multi_dropdown($form_name, $array_display, $sql_previous_values, $column_id) { print "\n"; } function form_area($text) { ?>
Cancel ">Delete
cellspacing=0 border=0 bgcolor="#" width="100%">
">Add 
"; } ?>
Cancel
\n"; return $current_color; } function html_boolean($html_boolean) { if ($html_boolean == "on") { return true; }else{ return false; } } function html_boolean_friendly($html_boolean) { if ($html_boolean == "on") { return "Selected"; }else{ return "Not Selected"; } } function get_checkbox_style() { if (get_web_browser() == "moz") { return "padding: 4px; margin: 4px;"; }elseif (get_web_browser() == "ie") { return "padding: 0px; margin: 0px;"; }elseif (get_web_browser() == "other") { return "padding: 4px; margin: 4px;"; } } /* creates the options for the select box */ function create_list($data, $name, $value, $prev) { if (empty($name)) { foreach (array_keys($data) as $id) { print '\n"; } }else{ if (sizeof($data) > 0) { foreach ($data as $row) { print "\n"; }else{ print ">" . title_trim(null_out_substitutions($row[$name]), 75) . "\n"; } } } } } function draw_custom_data_row($field_name, $data_input_field_id, $data_template_data_id, $current_value) { $field = db_fetch_row("select data_name,type_code from data_input_fields where id=$data_input_field_id"); if (($field["type_code"] == "index_type") && (db_fetch_cell("select local_data_id from data_template_data where id=$data_template_data_id") > 0)) { $index_type = db_fetch_assoc("select host_snmp_cache.field_name from data_template_data,data_local,host_snmp_cache where data_template_data.local_data_id=data_local.id and data_local.snmp_query_id=host_snmp_cache.snmp_query_id and data_template_data.id=$data_template_data_id group by host_snmp_cache.field_name"); if (sizeof($index_type) == 0) { print "Data query data sources must be created through New Graphs.\n"; }else{ form_dropdown($field_name, $index_type, "field_name", "field_name", $current_value, "", "", ""); } }elseif (($field["type_code"] == "output_type") && (db_fetch_cell("select local_data_id from data_template_data where id=$data_template_data_id") > 0)) { $output_type = db_fetch_assoc("select snmp_query_graph.id, snmp_query_graph.name from data_template_data,data_local,snmp_query_graph where data_template_data.local_data_id=data_local.id and data_local.snmp_query_id=snmp_query_graph.snmp_query_id and data_template_data.id=$data_template_data_id group by snmp_query_graph.id"); if (sizeof($output_type) == 0) { print "Data query data sources must be created through New Graphs.\n"; }else{ form_dropdown($field_name, $output_type, "name", "id", $current_value, "", "", ""); } }else{ form_text_box($field_name, $current_value, "", ""); } } function draw_tree_dropdown($current_tree_id) { global $colors; $html = ""; $tree_list = get_graph_tree_array(); if (isset($_GET["tree_id"])) { $_SESSION["sess_view_tree_id"] = $current_tree_id; } /* if there is a current tree, make sure it still exists before going on */ if ((!empty($_SESSION["sess_view_tree_id"])) && (db_fetch_cell("select id from graph_tree where id=" . $_SESSION["sess_view_tree_id"]) == "")) { $_SESSION["sess_view_tree_id"] = 0; } /* set a default tree if none is already selected */ if (empty($_SESSION["sess_view_tree_id"])) { if (db_fetch_cell("select id from graph_tree where id=" . read_graph_config_option("default_tree_id")) > 0) { $_SESSION["sess_view_tree_id"] = read_graph_config_option("default_tree_id"); }else{ if (sizeof($tree_list) > 0) { $_SESSION["sess_view_tree_id"] = $tree_list[0]["id"]; } } } /* make the dropdown list of trees */ if (sizeof($tree_list) > 1) { $html ="
\n \n \n \n
\n   Select a Graph Hierarchy: \n \n \n"; $html .= "
\n"; }elseif (sizeof($tree_list) == 1) { /* there is only one tree; use it */ //print " "; } return $html; } function draw_graph_items_list($item_list, $filename, $url_data, $disable_controls) { global $colors, $config; include($config["include_path"] . "/config_arrays.php"); print ""; DrawMatrixHeaderItem("Graph Item",$colors["header_text"],1); DrawMatrixHeaderItem("Data Source",$colors["header_text"],1); DrawMatrixHeaderItem("Graph Item Type",$colors["header_text"],1); DrawMatrixHeaderItem("CF Type",$colors["header_text"],1); DrawMatrixHeaderItem("Item Color",$colors["header_text"],4); print ""; $group_counter = 0; $_graph_type_name = ""; $i = 0; $alternate_color_1 = $colors["alternate"]; $alternate_color_2 = $colors["alternate"]; if (sizeof($item_list) > 0) { foreach ($item_list as $item) { /* graph grouping display logic */ $this_row_style = ""; $use_custom_row_color = false; $hard_return = ""; if ($graph_item_types{$item["graph_type_id"]} != "GPRINT") { $this_row_style = "font-weight: bold;"; $use_custom_row_color = true; if ($group_counter % 2 == 0) { $alternate_color_1 = "EEEEEE"; $alternate_color_2 = "EEEEEE"; $custom_row_color = "D5D5D5"; }else{ $alternate_color_1 = $colors["alternate"]; $alternate_color_2 = $colors["alternate"]; $custom_row_color = "D2D6E7"; } $group_counter++; } $_graph_type_name = $graph_item_types{$item["graph_type_id"]}; /* alternating row color */ if ($use_custom_row_color == false) { form_alternate_row_color($alternate_color_1,$alternate_color_2,$i); }else{ print ""; } print ""; if ($disable_controls == false) { print ""; } print "Item # " . ($i+1) . ""; if ($disable_controls == false) { print ""; } print "\n"; if (empty($item["data_source_name"])) { $item["data_source_name"] = "No Task"; } switch (true) { case ereg("(AREA|STACK|GPRINT|LINE[123])", $_graph_type_name): $matrix_title = "(" . $item["data_source_name"] . "): " . $item["text_format"]; break; case ereg("(HRULE|VRULE)", $_graph_type_name): $matrix_title = "HRULE: " . $item["value"]; break; case ereg("(COMMENT)", $_graph_type_name): $matrix_title = "COMMENT: " . $item["text_format"]; break; } if ($item["hard_return"] == "on") { $hard_return = "<HR>"; } print "" . htmlspecialchars($matrix_title) . $hard_return . "\n"; print "" . $graph_item_types{$item["graph_type_id"]} . "\n"; print "" . $consolidation_functions{$item["consolidation_function_id"]} . "\n"; print " \n"; print "" . $item["hex"] . "\n"; if ($disable_controls == false) { print "Move Down Move Up\n"; print "Delete \n"; } print ""; $i++; } }else{ print "No Items"; } } function draw_menu() { global $colors, $config, $user_auth_realms, $user_auth_realm_filenames; include($config["include_path"] . "/config_arrays.php"); /* list all realms that this user has access to */ if (read_config_option("global_auth") == "on") { $user_realms = db_fetch_assoc("select realm_id from user_auth_realm where user_id=" . $_SESSION["sess_user_id"]); $user_realms = array_rekey($user_realms, "realm_id", "realm_id"); }else{ $user_realms = $user_auth_realms; } print "\n"; /* loop through each header */ while (list($header_name, $header_array) = each($menu)) { /* pass 1: see if we are allowed to view any children */ $show_header_items = false; while (list($item_url, $item_title) = each($header_array)) { $current_realm_id = (isset($user_auth_realm_filenames{basename($item_url)}) ? $user_auth_realm_filenames{basename($item_url)} : 0); if ((isset($user_realms[$current_realm_id])) || (!isset($user_auth_realm_filenames{basename($item_url)}))) { $show_header_items = true; } } reset($header_array); if ($show_header_items == true) { print "\n"; } /* pass 2: loop through each top level item and render it */ while (list($item_url, $item_title) = each($header_array)) { $current_realm_id = (isset($user_auth_realm_filenames{basename($item_url)}) ? $user_auth_realm_filenames{basename($item_url)} : 0); /* if this item is an array, then it contains sub-items. if not, is just the title string and needs to be displayed */ if (is_array($item_title)) { $i = 0; if ((isset($user_realms[$current_realm_id])) || (!isset($user_auth_realm_filenames{basename($item_url)}))) { /* if the current page exists in the sub-items array, draw each sub-item */ if (array_key_exists(basename($_SERVER["PHP_SELF"]), $item_title) == true) { $draw_sub_items = true; }else{ $draw_sub_items = false; } while (list($item_sub_url, $item_sub_title) = each($item_title)) { /* indent sub-items */ if ($i > 0) { $prepend_string = "--- "; }else{ $prepend_string = ""; } /* do not put a line between each sub-item */ if (($i == 0) || ($draw_sub_items == false)) { $background = "images/menu_line.gif"; }else{ $background = ""; } /* draw all of the sub-items as selected for ui grouping reasons. we can use the 'bold' or 'not bold' to distinguish which sub-item is actually selected */ if ((basename($_SERVER["PHP_SELF"]) == basename($item_sub_url)) || ($draw_sub_items)) { $td_class = "textMenuItemSelected"; }else{ $td_class = "textMenuItem"; } /* always draw the first item (parent), only draw the children if we are viewing a page that is contained in the sub-items array */ if (($i == 0) || ($draw_sub_items)) { if (basename($_SERVER["PHP_SELF"]) == basename($item_sub_url)) { print "\n"; }else{ print "\n"; } } $i++; } } }else{ if ((isset($user_realms[$current_realm_id])) || (!isset($user_auth_realm_filenames{basename($item_url)}))) { /* draw normal (non sub-item) menu item */ if (basename($_SERVER["PHP_SELF"]) == basename($item_url)) { print "\n"; }else{ print "\n"; } } } } } print "\n"; print '
$header_name
$prepend_string$item_sub_title
$prepend_string$item_sub_title
$item_title
$item_title
'; } function inject_form_variables(&$form_array, $arg1 = array(), $arg2 = array(), $arg3 = array(), $arg4 = array()) { $check_fields = array("value", "array", "friendly_name", "description", "sql", "sql_print", "form_id", "items"); /* loop through each available field */ while (list($field_name, $field_array) = each($form_array)) { /* loop through each sub-field that we are going to check for variables */ foreach ($check_fields as $field_to_check) { if (isset($field_array[$field_to_check]) && (is_array($form_array[$field_name][$field_to_check]))) { /* if the field/sub-field combination is an array, resolve it recursively */ $form_array[$field_name][$field_to_check] = inject_form_variables($form_array[$field_name][$field_to_check], $arg1); }elseif (isset($field_array[$field_to_check]) && (!is_array($field_array[$field_to_check])) && (ereg("\|(arg[123]):([a-zA-Z0-9_]*)\|", $field_array[$field_to_check], $matches))) { /* an empty field name in the variable means don't treat this as an array */ if ($matches[2] == "") { if (is_array(${$matches[1]})) { /* the existing value is already an array, leave it alone */ $form_array[$field_name][$field_to_check] = ${$matches[1]}; }else{ /* the existing value is probably a single variable */ $form_array[$field_name][$field_to_check] = str_replace($matches[0], ${$matches[1]}, $field_array[$field_to_check]); } }else{ /* copy the value down from the array/key specified in the variable */ $form_array[$field_name][$field_to_check] = str_replace($matches[0], ((isset(${$matches[1]}{$matches[2]})) ? ${$matches[1]}{$matches[2]} : ""), $field_array[$field_to_check]); } } } } return $form_array; } ?>