function syslog_report() { global $colors, $syslog_actions, $message_types, $syslog_freqs, $syslog_times, $config; include dirname(__FILE__) . "/config.php"; /* ================= input validation ================= */ input_validate_input_number(get_request_var_request("id")); input_validate_input_number(get_request_var_request("page")); input_validate_input_number(get_request_var_request("enabled")); input_validate_input_number(get_request_var_request("rows")); /* ==================================================== */ /* clean up filter */ if (isset($_REQUEST["filter"])) { $_REQUEST["filter"] = sanitize_search_string(get_request_var("filter")); } /* clean up sort_column */ if (isset($_REQUEST["sort_column"])) { $_REQUEST["sort_column"] = sanitize_search_string(get_request_var("sort_column")); } /* clean up sort direction */ if (isset($_REQUEST["sort_direction"])) { $_REQUEST["sort_direction"] = sanitize_search_string(get_request_var("sort_direction")); } /* if the user pushed the 'clear' button */ if (isset($_REQUEST["clear"])) { kill_session_var("sess_syslog_report_page"); kill_session_var("sess_syslog_report_rows"); kill_session_var("sess_syslog_report_filter"); kill_session_var("sess_syslog_report_enabled"); kill_session_var("sess_syslog_report_sort_column"); kill_session_var("sess_syslog_report_sort_direction"); $_REQUEST["page"] = 1; unset($_REQUEST["filter"]); unset($_REQUEST["enabled"]); unset($_REQUEST["rows"]); unset($_REQUEST["sort_column"]); unset($_REQUEST["sort_direction"]); } else { /* if any of the settings changed, reset the page number */ $changed = 0; $changed += syslog_check_changed("filter", "sess_syslog_report_filter"); $changed += syslog_check_changed("enabled", "sess_syslog_report_enabled"); $changed += syslog_check_changed("rows", "sess_syslog_report_rows"); $changed += syslog_check_changed("sort_column", "sess_syslog_report_sort_column"); $changed += syslog_check_changed("sort_direction", "sess_syslog_report_sort_direction"); if ($changed) { $_REQUEST["page"] = "1"; } } /* remember these search fields in session vars so we don't have to keep passing them around */ load_current_session_value("page", "sess_syslog_report_paage", "1"); load_current_session_value("rows", "sess_syslog_report_rows", "-1"); load_current_session_value("enabled", "sess_syslog_report_enabled", "-1"); load_current_session_value("filter", "sess_syslog_report_filter", ""); load_current_session_value("sort_column", "sess_syslog_report_sort_column", "name"); load_current_session_value("sort_direction", "sess_syslog_report_sort_direction", "ASC"); html_start_box("<strong>Syslog Report Filters</strong>", "100%", $colors["header"], "3", "center", "syslog_reports.php?action=edit&type=1"); syslog_filter(); html_end_box(); html_start_box("", "100%", $colors["header"], "3", "center", ""); $sql_where = ""; if ($_REQUEST["rows"] == -1) { $row_limit = read_config_option("num_rows_syslog"); } elseif ($_REQUEST["rows"] == -2) { $row_limit = 999999; } else { $row_limit = $_REQUEST["rows"]; } $reports = syslog_get_report_records($sql_where, $row_limit); $rows_query_string = "SELECT COUNT(*)\n\t\tFROM `" . $syslogdb_default . "`.`syslog_reports`\n\t\t{$sql_where}"; $total_rows = syslog_db_fetch_cell($rows_query_string); ?> <script type="text/javascript"> <!-- function applyChange(objForm) { strURL = '?enabled=' + objForm.enabled.value; strURL = strURL + '&filter=' + objForm.filter.value; strURL = strURL + '&rows=' + objForm.rows.value; document.location = strURL; } --> </script> <?php /* generate page list */ $url_page_select = get_page_list($_REQUEST["page"], MAX_DISPLAY_PAGES, $row_limit, $total_rows, "syslog_reports.php?filter=" . $_REQUEST["filter"]); if ($total_rows > 0) { $nav = "<tr bgcolor='#" . $colors["header"] . "'>\n\t\t\t\t\t<td colspan='13'>\n\t\t\t\t\t\t<table width='100%' cellspacing='0' cellpadding='0' border='0'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td align='left' class='textHeaderDark'>\n\t\t\t\t\t\t\t\t\t<strong><< "; if ($_REQUEST["page"] > 1) { $nav .= "<a class='linkOverDark' href='syslog_reports.php?report=arp&page=" . ($_REQUEST["page"] - 1) . "'>"; } $nav .= "Previous"; if ($_REQUEST["page"] > 1) { $nav .= "</a>"; } $nav .= "</strong>\n\t\t\t\t\t\t\t\t</td>\n\n\t\t\t\t\t\t\t\t<td align='center' class='textHeaderDark'>\n\t\t\t\t\t\t\t\t\tShowing Rows " . ($total_rows == 0 ? "None" : $row_limit * ($_REQUEST["page"] - 1) + 1 . " to " . ($total_rows < $row_limit || $total_rows < $row_limit * $_REQUEST["page"] ? $total_rows : $row_limit * $_REQUEST["page"]) . " of {$total_rows} [{$url_page_select}]") . "\n\t\t\t\t\t\t\t\t</td>\n\n\t\t\t\t\t\t\t\t<td align='right' class='textHeaderDark'>\n\t\t\t\t\t\t\t\t\t<strong>"; if ($_REQUEST["page"] * $row_limit < $total_rows) { $nav .= "<a class='linkOverDark' href='syslog_reports.php?report=arp&page=" . ($_REQUEST["page"] + 1) . "'>"; } $nav .= "Next"; if ($_REQUEST["page"] * $row_limit < $total_rows) { $nav .= "</a>"; } $nav .= " >></strong>\n\t\t\t\t\t\t\t\t</td>\n\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n"; } else { $nav = "<tr bgcolor='#" . $colors["header"] . "' class='noprint'>\n\t\t\t\t\t<td colspan='22'>\n\t\t\t\t\t\t<table width='100%' cellspacing='0' cellpadding='0' border='0'>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td align='center' class='textHeaderDark'>\n\t\t\t\t\t\t\t\t\tNo Rows Found\n\t\t\t\t\t\t\t\t</td>\n\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n"; } print $nav; $display_text = array("name" => array("Report<br>Name", "ASC"), "enabled" => array("<br>Enabled", "ASC"), "type" => array("Match<br>Type", "ASC"), "message" => array("Search<br>String", "ASC"), "timespan" => array("<br>Frequency", "ASC"), "timepart" => array("Send<br>Time", "ASC"), "lastsent" => array("Last<br>Sent", "ASC"), "date" => array("Last<br>Modified", "ASC"), "user" => array("By<br>User", "DESC")); html_header_sort_checkbox($display_text, $_REQUEST["sort_column"], $_REQUEST["sort_direction"]); $i = 0; if (sizeof($reports) > 0) { foreach ($reports as $report) { form_alternate_row_color($colors["alternate"], $colors["light"], $i, 'line' . $report["id"]); $i++; form_selectable_cell("<a class='linkEditMain' href='" . $config['url_path'] . "plugins/syslog/syslog_reports.php?action=edit&id=" . $report["id"] . "'>" . ($_REQUEST["filter"] != "" ? eregi_replace("(" . preg_quote($_REQUEST["filter"]) . ")", "<span style='background-color: #F8D93D;'>\\1</span>", title_trim(htmlentities($report["name"]), read_config_option("max_title_data_source"))) : htmlentities($report["name"])) . "</a>", $report["id"]); form_selectable_cell($report["enabled"] == "on" ? "Yes" : "No", $report["id"]); form_selectable_cell($message_types[$report["type"]], $report["id"]); form_selectable_cell($report["message"], $report["id"]); form_selectable_cell($syslog_freqs[$report["timespan"]], $report["id"]); form_selectable_cell($syslog_times[$report["timepart"]], $report["id"]); form_selectable_cell($report["lastsent"] == 0 ? "Never" : date("Y-m-d H:i:s", $report["lastsent"]), $report["id"]); form_selectable_cell(date("Y-m-d H:i:s", $report["date"]), $report["id"]); form_selectable_cell($report["user"], $report["id"]); form_checkbox_cell($report["name"], $report["id"]); form_end_row(); } } else { print "<tr><td colspan='4'><em>No Syslog Reports Defined</em></td></tr>"; } html_end_box(false); /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($syslog_actions); }
function syslog_report() { global $colors, $syslog_actions, $message_types, $syslog_freqs, $syslog_times, $config; include dirname(__FILE__) . '/config.php'; /* ================= input validation and session storage ================= */ $filters = array('rows' => array('filter' => FILTER_VALIDATE_INT, 'pageset' => true, 'default' => '-1'), 'page' => array('filter' => FILTER_VALIDATE_INT, 'default' => '1'), 'id' => array('filter' => FILTER_VALIDATE_INT, 'default' => '1'), 'enabled' => array('filter' => FILTER_VALIDATE_INT, 'pageset' => true, 'default' => '-1'), 'filter' => array('filter' => FILTER_CALLBACK, 'pageset' => true, 'default' => '', 'options' => array('options' => 'sanitize_search_string')), 'sort_column' => array('filter' => FILTER_CALLBACK, 'default' => 'name', 'options' => array('options' => 'sanitize_search_string')), 'sort_direction' => array('filter' => FILTER_CALLBACK, 'default' => 'ASC', 'options' => array('options' => 'sanitize_search_string'))); validate_store_request_vars($filters, 'sess_syslogrep'); /* ================= input validation ================= */ html_start_box(__('Syslog Report Filters'), '100%', '', '3', 'center', 'syslog_reports.php?action=edit&type=1'); syslog_filter(); html_end_box(); $sql_where = ''; if (get_request_var('rows') == -1) { $row_limit = read_config_option('num_rows_table'); } elseif (get_request_var('rows') == -2) { $row_limit = 999999; } else { $row_limit = get_request_var('rows'); } $reports = syslog_get_report_records($sql_where, $row_limit); $rows_query_string = 'SELECT COUNT(*) FROM `' . $syslogdb_default . "`.`syslog_reports`\n\t\t{$sql_where}"; $total_rows = syslog_db_fetch_cell($rows_query_string); $nav = html_nav_bar('syslog_reports.php?filter=' . get_request_var('filter'), MAX_DISPLAY_PAGES, get_request_var('page'), $row_limit, $total_rows, 10, 'Reports', 'page', 'main'); form_start('syslog_reports.php', 'chk'); print $nav; html_start_box('', '100%', $colors['header'], '3', 'center', ''); $display_text = array('name' => array(__('Report Name'), 'ASC'), 'enabled' => array(__('Enabled'), 'ASC'), 'type' => array(__('Match Type'), 'ASC'), 'message' => array(__('Search String'), 'ASC'), 'timespan' => array(__('Frequency'), 'ASC'), 'timepart' => array(__('Send Time'), 'ASC'), 'lastsent' => array(__('Last Sent'), 'ASC'), 'date' => array(__('Last Modified'), 'ASC'), 'user' => array(__('By User'), 'DESC')); html_header_sort_checkbox($display_text, get_request_var('sort_column'), get_request_var('sort_direction')); if (sizeof($reports)) { foreach ($reports as $report) { form_alternate_row('line' . $report['id']); form_selectable_cell(filter_value(title_trim($report['name'], read_config_option('max_title_length')), get_request_var('filter'), $config['url_path'] . 'plugins/syslog/syslog_reports.php?action=edit&id=' . $report['id']), $report['id']); form_selectable_cell($report['enabled'] == 'on' ? __('Yes') : __('No'), $report['id']); form_selectable_cell($message_types[$report['type']], $report['id']); form_selectable_cell($report['message'], $report['id']); form_selectable_cell($syslog_freqs[$report['timespan']], $report['id']); form_selectable_cell($syslog_times[$report['timepart']], $report['id']); form_selectable_cell($report['lastsent'] == 0 ? __('Never') : date('Y-m-d H:i:s', $report['lastsent']), $report['id']); form_selectable_cell(date('Y-m-d H:i:s', $report['date']), $report['id']); form_selectable_cell($report['user'], $report['id']); form_checkbox_cell($report['name'], $report['id']); form_end_row(); } } else { print "<tr><td colspan='4'><em>" . __('No Syslog Reports Defined') . "</em></td></tr>"; } html_end_box(false); if (sizeof($reports)) { print $nav; } draw_actions_dropdown($syslog_actions); form_end(); }