diff --git a/orcinus/admin.php b/orcinus/admin.php index 1dae384..fd051cd 100644 --- a/orcinus/admin.php +++ b/orcinus/admin.php @@ -97,6 +97,10 @@ $_RDATA['admin_pagination_options'] = array(25, 50, 100, 250, 500, 1000); if (!in_array($_ODATA['admin_index_pagination'], $_RDATA['admin_pagination_options'], true)) OS_setValue('admin_index_pagination', 100); +$_RDATA['admin_query_log_display_options'] = array(10, 25, 50, 100, 250, 500, 1000, 0); +if (!in_array($_ODATA['admin_query_log_display'], $_RDATA['admin_query_log_display_options'], true)) + OS_setValue('admin_query_log_display', 250); + $_RDATA['admin_pages'] = array( 'crawler' => 'Crawler', 'index' => 'Page Index', @@ -1093,6 +1097,16 @@ ORCINUS; exit(); } + // Query Log row display limit + if (isset($_POST['os_admin_query_log_display'])) { + $_POST['os_admin_query_log_display'] = (int)$_POST['os_admin_query_log_display']; + if (in_array($_POST['os_admin_query_log_display'], $_RDATA['admin_query_log_display_options'], true)) + OS_setValue('admin_query_log_display', $_POST['os_admin_query_log_display']); + + header('Location: '.$_SERVER['REQUEST_URI']); + exit(); + } + // Unknown POST command header('Content-type: text/plain; charset='.strtolower($_ODATA['s_charset'])); var_dump($_POST); @@ -1283,6 +1297,8 @@ ORCINUS; case 'queries': $_RDATA['query_log_rows'] = array(); + $_RDATA['query_log_found_rows'] = false; + $queries = $_DDATA['pdo']->query( 'SELECT `t`.`query`, `t`.`results`, INET_NTOA(`t`.`ip`) AS `ipaddr`, REGEXP_REPLACE(`t`.`query`, \'^[[:punct:]]+\', \'\') AS `alpha`, @@ -1300,6 +1316,7 @@ ORCINUS; $err = $queries->errorInfo(); if ($err[0] == '00000') { $_RDATA['query_log_rows'] = $queries->fetchAll(); + $_RDATA['query_log_found_rows'] = count($_RDATA['query_log_rows']); if (count($_RDATA['query_log_rows'])) { $x = 0; @@ -1313,6 +1330,10 @@ ORCINUS; return $b['hits'] - $a['hits']; }); + // Limit the queries displayed to just the top X + if ($_ODATA['admin_query_log_display']) + $_RDATA['query_log_rows'] = array_slice($_RDATA['query_log_rows'], 0, (int)$_ODATA['admin_query_log_display']); + } else $_SESSION['message'][] = 'The query log is currently empty.'; } else $_SESSION['error'][] = 'Database error reading query log table: '.$err[2]; @@ -2629,8 +2650,8 @@ ORCINUS; -