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["friendly_name"] . "\n"; }else{ if (isset($config_array["force_row_color"])) { print ""; }else{ form_alternate_row('row_' . $field_name); } 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["sub_checkbox"]["default"])) ? $field_array["sub_checkbox"]["default"] : ""), ((isset($field_array["sub_checkbox"]["form_id"])) ? $field_array["sub_checkbox"]["form_id"] : ""), ((isset($field_array["sub_checkbox"]["class"])) ? $field_array["sub_checkbox"]["class"] : ""), ((isset($field_array["sub_checkbox"]["on_change"])) ? $field_array["sub_checkbox"]["on_change"] : "")); } print ((isset($field_array["description"])) ? $field_array["description"] : "") . "\n"; print ""; draw_edit_control($field_name, $field_array); print "\n\n"; } $i++; } } } /* draw_edit_control - draws a single control to be used on an html edit form @arg $field_name - the name of the control @arg $field_array - an array containing data for this control. see include/global_form.php for more specific syntax */ function draw_edit_control($field_name, &$field_array) { 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"] : ""), 0, ((isset($field_array["placeholder"])) ? $field_array["placeholder"] : $field_name) ); break; case 'filepath': form_filepath_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 'dirpath': form_dirpath_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", ((isset($field_array["form_id"])) ? $field_array["form_id"] : ""), 0, ((isset($field_array["placeholder"])) ? $field_array["placeholder"] : "") ); 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", ((isset($field_array["form_id"])) ? $field_array["form_id"] : ""), 0, ((isset($field_array["placeholder"])) ? $field_array["placeholder"] : "") ); 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"] : ""), ((isset($field_array["class"])) ? $field_array["class"] : ""), ((isset($field_array["on_change"])) ? $field_array["on_change"] : "") ); 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"] : ""), ((isset($field_array["class"])) ? $field_array["class"] : ""), ((isset($field_array["on_change"])) ? $field_array["on_change"] : "") ); 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"] : ""), ((isset($field_array["class"])) ? $field_array["class"] : ""), ((isset($field_array["on_change"])) ? $field_array["on_change"] : "") ); break; case 'drop_multi': form_multi_dropdown( $field_name, $field_array["array"], db_fetch_assoc($field_array["sql"]), "id", ((isset($field_array["class"])) ? $field_array["class"] : ""), ((isset($field_array["on_change"])) ? $field_array["on_change"] : "") ); break; case 'drop_multi_rra': form_multi_dropdown( $field_name, array_rekey(db_fetch_assoc("SELECT id,name FROM rra ORDER BY timespan"), "id", "name"), (empty($field_array["form_id"]) ? db_fetch_assoc($field_array["sql_all"]) : db_fetch_assoc($field_array["sql"])), "id", ((isset($field_array["class"])) ? $field_array["class"] : ""), ((isset($field_array["on_change"])) ? $field_array["on_change"] : "") ); 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"] : ""), ((isset($field_array["class"])) ? $field_array["class"] : ""), ((isset($field_array["on_change"])) ? $field_array["on_change"] : "") ); 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"] : ""), ((isset($field_array["class"])) ? $field_array["class"] : ""), ((isset($field_array["on_change"])) ? $field_array["on_change"] : "") ); 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($check_array["form_id"])) ? $check_array["form_id"] : ""), ((isset($field_array["class"])) ? $field_array["class"] : ""), ((isset($check_array["on_change"])) ? $check_array["on_change"] : (((isset($field_array["on_change"])) ? $field_array["on_change"] : ""))) ); 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"] : ""), ((isset($field_array["class"])) ? $field_array["class"] : ""), ((isset($field_array["on_change"])) ? $field_array["on_change"] : "") ); 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 htmlspecialchars($item["name"],ENT_QUOTES) . "
"; } } break; case 'font': form_font_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 'file': form_file($field_name, ((isset($field_array["size"])) ? $field_array["size"] : "40")); break; default: print "" . htmlspecialchars($field_array["value"],ENT_QUOTES) . ""; form_hidden_box($field_name, $field_array["value"], ""); break; } } /* form_file - draws a standard html file input element @arg $form_name - the name of this form element @arg $form_size - the size (width) of the textbox */ function form_file($form_name, $form_size = 30) { print ""; } /* form_filepath_box - draws a standard html textbox and provides status of a files existence @arg $form_name - the name of this form element @arg $form_previous_value - the current value of this form element @arg $form_default_value - the value of this form element to use if there is no current value available @arg $form_max_length - the maximum number of characters that can be entered into this textbox @arg $form_size - the size (width) of the textbox @arg $type - the type of textbox, either 'text' or 'password' @arg $current_id - used to determine if a current value for this form element exists or not. a $current_id of '0' indicates that no current value exists, a non-zero value indicates that a current value does exist */ function form_filepath_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 "" . $extra_data; } /* form_dirpath_box - draws a standard html textbox and provides status of a directories existence @arg $form_name - the name of this form element @arg $form_previous_value - the current value of this form element @arg $form_default_value - the value of this form element to use if there is no current value available @arg $form_max_length - the maximum number of characters that can be entered into this textbox @arg $form_size - the size (width) of the textbox @arg $type - the type of textbox, either 'text' or 'password' @arg $current_id - used to determine if a current value for this form element exists or not. a $current_id of '0' indicates that no current value exists, a non-zero value indicates that a current value does exist */ function form_dirpath_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 "" . $extra_data; } /* form_text_box - draws a standard html textbox @arg $form_name - the name of this form element @arg $form_previous_value - the current value of this form element @arg $form_default_value - the value of this form element to use if there is no current value available @arg $form_max_length - the maximum number of characters that can be entered into this textbox @arg $form_size - the size (width) of the textbox @arg $type - the type of textbox, either 'text' or 'password' @arg $current_id - used to determine if a current value for this form element exists or not. a $current_id of '0' indicates that no current value exists, a non-zero value indicates that a current value does exist */ function form_text_box($form_name, $form_previous_value, $form_default_value, $form_max_length, $form_size = 30, $type = "text", $current_id = 0, $placeholder = '') { if (($form_previous_value == "") && (empty($current_id))) { $form_previous_value = $form_default_value; } print "\n"; } /* form_hidden_box - draws a standard html hidden element @arg $form_name - the name of this form element @arg $form_previous_value - the current value of this form element @arg $form_default_value - the value of this form element to use if there is no current value available */ function form_hidden_box($form_name, $form_previous_value, $form_default_value) { if ($form_previous_value == "") { $form_previous_value = $form_default_value; } print "\n"; } /* form_dropdown - draws a standard html dropdown box @arg $form_name - the name of this form element @arg $form_data - an array containing data for this dropdown. it can be formatted in one of two ways: $array["id"] = "value"; -- or -- $array[0]["id"] = 43; $array[0]["name"] = "Red"; @arg $column_display - used to indentify the key to be used for display data. this is only applicable if the array is formatted using the second method above @arg $column_id - used to indentify the key to be used for id data. this is only applicable if the array is formatted using the second method above @arg $form_previous_value - the current value of this form element @arg $form_none_entry - the name to use for a default 'none' element in the dropdown @arg $form_default_value - the value of this form element to use if there is no current value available @arg $css_class - any css that needs to be applied to this form element @arg $on_change - onChange modifier */ function form_dropdown($form_name, $form_data, $column_display, $column_id, $form_previous_value, $form_none_entry, $form_default_value, $class = "", $on_change = "") { if ($form_previous_value == "") { $form_previous_value = $form_default_value; } if (isset($_SESSION["sess_error_fields"])) { if (!empty($_SESSION["sess_error_fields"][$form_name])) { $class .= (strlen($class) ? " ":"") . "txtErrorTextBox"; unset($_SESSION["sess_error_fields"][$form_name]); } } if (isset($_SESSION["sess_field_values"])) { if (!empty($_SESSION["sess_field_values"][$form_name])) { $form_previous_value = $_SESSION["sess_field_values"][$form_name]; } } if (strlen($class)) { $class = " class='$class' "; } if (strlen($on_change)) { $on_change = " onChange='$on_change' "; } print "\n"; } /** form_checkbox - draws a standard html checkbox @param string $form_name - the name of this form element @param string $form_previous_value - the current value of this form element @param string $form_caption - the text to display to the right of the checkbox @param string $form_default_value - the value of this form element to use if there is no current value available @param int $current_id - used to determine if a current value for this form element exists or not. a $current_id of '0' indicates that no current value exists, a non-zero value indicates that a current value does exist @param string $class - specify a css class @param string $on_change - specify a javascript onchange action */ function form_checkbox($form_name, $form_previous_value, $form_caption, $form_default_value, $current_id = 0, $class = "", $on_change = "") { 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]; } } if (strlen($class)) { $class = " class='$class'"; } if (strlen($on_change)) { $on_change = " onChange='$on_change'"; } if ($form_previous_value == "on") { $checked = " checked"; }else{ $checked = ""; } print "" . ($form_caption != "" ? " \n":""); } /* form_text_box - draws a standard html radio button @arg $form_name - the name of this form element @arg $form_previous_value - the current value of this form element (selected or not) @arg $form_current_value - the current value of this form element (element id) @arg $form_caption - the text to display to the right of the checkbox @arg $form_default_value - the value of this form element to use if there is no current value available */ function form_radio_button($form_name, $form_previous_value, $form_current_value, $form_caption, $form_default_value, $class = "", $on_change = "") { 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]; } } if (strlen($class)) { $class = " class='$class' "; } if (strlen($on_change)) { $on_change = " onChange='$on_change' "; } if ($form_previous_value == $form_current_value) { $checked = " checked"; }else{ $checked = ""; } $css_id = $form_name . "_" . $form_current_value; print "\n"; } /* form_text_area - draws a standard html text area box @arg $form_name - the name of this form element @arg $form_previous_value - the current value of this form element (selected or not) @arg $form_rows - the number of rows in the text area box @arg $form_columns - the number of columns in the text area box @arg $form_default_value - the value of this form element to use if there is no current value available */ function form_text_area($form_name, $form_previous_value, $form_rows, $form_columns, $form_default_value, $class = "", $on_change = "") { if ($form_previous_value == "") { $form_previous_value = $form_default_value; } if (isset($_SESSION["sess_error_fields"])) { if (!empty($_SESSION["sess_error_fields"][$form_name])) { $class .= (strlen($class) ? " ":"") . "txtErrorTextBox"; unset($_SESSION["sess_error_fields"][$form_name]); } } if (isset($_SESSION["sess_field_values"])) { if (!empty($_SESSION["sess_field_values"][$form_name])) { $form_previous_value = $_SESSION["sess_field_values"][$form_name]; } } if (strlen($class)) { $class = " class='$class' "; } if (strlen($on_change)) { $on_change = " onChange='$on_change' "; } print "\n"; } /* form_multi_dropdown - draws a standard html multiple select dropdown @arg $form_name - the name of this form element @arg $array_display - an array containing display values for this dropdown. it must be formatted like: $array[id] = display; @arg $sql_previous_values - an array containing keys that should be marked as selected. it must be formatted like: $array[0][$column_id] = key @arg $column_id - the name of the key used to reference the keys above */ function form_multi_dropdown($form_name, $array_display, $sql_previous_values, $column_id, $class = "", $on_change = "") { if (isset($_SESSION["sess_error_fields"])) { if (!empty($_SESSION["sess_error_fields"][$form_name])) { $class .= (strlen($class) ? " ":"") . "txtErrorTextBox"; unset($_SESSION["sess_error_fields"][$form_name]); } } if (strlen($class)) { $class = " class='$class' "; } if (strlen($on_change)) { $on_change = " onChange='$on_change' "; } print "\n"; } /* * Second level form elements */ /* form_color_dropdown - draws a dropdown containing a list of colors that uses a bit of css magic to make the dropdown item background color represent each color in the list @arg $form_name - the name of this form element @arg $form_previous_value - the current value of this form element @arg $form_none_entry - the name to use for a default 'none' element in the dropdown @arg $form_default_value - the value of this form element to use if there is no current value available */ function form_color_dropdown($form_name, $form_previous_value, $form_none_entry, $form_default_value, $class = "", $on_change = "") { if ($form_previous_value == "") { $form_previous_value = $form_default_value; } if (strlen($class)) { $class = " class='$class' "; } $current_color = db_fetch_cell("SELECT hex FROM colors WHERE id=$form_previous_value"); if (strlen($on_change)) { $on_change = " " . $on_change . ";"; } $on_change = " onChange='this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor;$on_change'"; $colors_list = db_fetch_assoc("SELECT id,hex FROM colors ORDER BY hex desc"); print "\n"; } /* form_font_box - draws a standard html textbox and provides status of a fonts existence @arg $form_name - the name of this form element @arg $form_previous_value - the current value of this form element @arg $form_default_value - the value of this form element to use if there is no current value available @arg $form_max_length - the maximum number of characters that can be entered into this textbox @arg $form_size - the size (width) of the textbox @arg $type - the type of textbox, either 'text' or 'password' @arg $current_id - used to determine if a current value for this form element exists or not. a $current_id of '0' indicates that no current value exists, a non-zero value indicates that a current value does exist */ function form_font_box($form_name, $form_previous_value, $form_default_value, $form_max_length, $form_size = 30, $type = "text", $current_id = 0) { global $config; if (($form_previous_value == "") && (empty($current_id))) { $form_previous_value = $form_default_value; } print ""; }else if (is_dir($form_previous_value)) { $extra_data = "
[" . "ERROR: IS DIR" . "]
"; }else{ $extra_data = "
[" . "ERROR: FILE NOT FOUND" . "]
"; } } else { # rrdtool 1.3+ use fontconfig /* verifying all possible pango font params is too complex to be tested here * so we only escape the font */ $extra_data = "
[" . "NO FONT VERIFICATION POSSIBLE" . "]
"; } } print " id='$form_name' name='$form_name' size='$form_size'" . (!empty($form_max_length) ? " maxlength='$form_max_length'" : "") . " value='" . htmlspecialchars($form_previous_value, ENT_QUOTES) . "'>" . $extra_data; } /* form_confirm - draws a table presenting the user with some choice and allowing them to either proceed (delete) or cancel @arg $body_text - the text to prompt the user with on this form @arg $cancel_url - the url to go to when the user clicks 'cancel' @arg $action_url - the url to go to when the user clicks 'delete' */ function form_confirm($title_text, $body_text, $cancel_url, $action_url) { ?>
")' value='Cancel'> &confirm=true")' value='Delete'> "; }else{ $cancel_action = ""; } ?>