From 74cd879ce28fe65486b1ebe9156c78cded949910 Mon Sep 17 00:00:00 2001 From: klarkxy <278370456@qq.com> Date: Fri, 11 Oct 2024 14:22:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=AE=A1=E7=90=86=E5=91=98?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E7=94=A8=E6=88=B7=E7=9A=84=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/problemset.php | 166 +++++++++++++++--------------- web/template/syzoj/problemset.php | 13 +++ 2 files changed, 98 insertions(+), 81 deletions(-) diff --git a/web/problemset.php b/web/problemset.php index 4eb7d83..a7335e9 100644 --- a/web/problemset.php +++ b/web/problemset.php @@ -1,4 +1,4 @@ -=4 GROUP BY problem_id "; - $result = pdo_query($sql,$_SESSION[$OJ_NAME.'_'.'user_id']); - foreach ($result as $row){ + $result = pdo_query($sql, $_SESSION[$OJ_NAME . '_' . 'user_id']); + foreach ($result as $row) { $sub_arr[$row['problem_id']] = true; - if($row['result'] == 4) $acc_arr[$row['problem_id']] = true; - } + if ($row['result'] == 4) + $acc_arr[$row['problem_id']] = true; + } } // Problem Page Navigator //if($OJ_SAE) $first=1; -if (isset($_SESSION[$OJ_NAME.'_'.'administrator'])) { //all problems - //$limit = $limit_sql; -}else if ($OJ_FREE_PRACTICE){ // open free practice without limit of contest using - $filter_sql .= " and defunct='N' "; -}else { //page problems (not include in contests period) - $now = date('Y-m-d H:i', time()); - $filter_sql.=" and `defunct`='N' AND `problem_id` NOT IN ( +if (isset($_SESSION[$OJ_NAME . '_' . 'administrator'])) { //all problems + //$limit = $limit_sql; +} else if ($OJ_FREE_PRACTICE) { // open free practice without limit of contest using + $filter_sql .= " and defunct='N' "; +} else { //page problems (not include in contests period) + $now = date('Y-m-d H:i', time()); + $filter_sql .= " and `defunct`='N' AND `problem_id` NOT IN ( SELECT `problem_id` FROM contest c - INNER JOIN `contest_problem` cp ON c.`contest_id` = cp.`contest_id` ". - " AND (c.`defunct` = 'N' AND '$now' '$now' OR c.private =1)" . // original style , hidden all private contest problems - ") "; + INNER JOIN `contest_problem` cp ON c.`contest_id` = cp.`contest_id` " . + " AND (c.`defunct` = 'N' AND '$now' '$now' OR c.private =1)" . // original style , hidden all private contest problems + ") "; } // End Page Setting - pdo_query("SET sort_buffer_size = 1024*1024"); // Out of sort memory, consider increasing server sort buffer size - $sql = "SELECT `problem_id`,`title`,`source`,`submit`,`accepted`,defunct FROM problem A WHERE $filter_sql $order_by $limit_sql "; - $count_sql= "SELECT count(1) from problem where $filter_sql "; - //echo htmlentities( $sql); -if (isset($_GET['search']) && trim($_GET['search'])!="") { - $total = pdo_query($count_sql,$search,$search); +pdo_query("SET sort_buffer_size = 1024*1024"); // Out of sort memory, consider increasing server sort buffer size +$sql = "SELECT `problem_id`,`title`,`source`,`submit`,`accepted`,defunct FROM problem A WHERE $filter_sql $order_by $limit_sql "; +$count_sql = "SELECT count(1) from problem where $filter_sql "; +//echo htmlentities( $sql); +if (isset($_GET['search']) && trim($_GET['search']) != "") { + $total = pdo_query($count_sql, $search, $search); $cnt = $total[0][0] / $page_cnt; - $result = pdo_query($sql,$search,$search); -} -else { - $total = mysql_query_cache($count_sql); + $result = pdo_query($sql, $search, $search); +} else { + $total = mysql_query_cache($count_sql); $cnt = $total[0][0] / $page_cnt; $result = mysql_query_cache($sql); } echo ""; -$view_total_page = ceil($cnt*1.0); +$view_total_page = ceil($cnt * 1.0); $cnt = 0; -$view_problemset = Array(); +$view_problemset = array(); $i = 0; foreach ($result as $row) { - $view_problemset[$i] = Array(); + $view_problemset[$i] = array(); if (isset($sub_arr[$row['problem_id']])) { - if (isset($acc_arr[$row['problem_id']])) + if (isset($acc_arr[$row['problem_id']])) $view_problemset[$i][0] = "
Y
"; else $view_problemset[$i][0] = "
N
"; - } - else { + } else { $view_problemset[$i][0] = "
"; } $category = array(); - $cate = explode(" ",$row['source']); - foreach($cate as $cat){ - $cat=trim($cat); - if(mb_ereg("^http",$cat)){ - $cat=get_domain($cat); - } - array_push($category,trim($cat)); - } - $view_problemset[$i][1] = "
".$row['problem_id']."
"; - $view_problemset[$i][2] = "";; - $view_problemset[$i][3] = "
"; + $cate = explode(" ", $row['source']); + foreach ($cate as $cat) { + $cat = trim($cat); + if (mb_ereg("^http", $cat)) { + $cat = get_domain($cat); + } + array_push($category, trim($cat)); + } + $view_problemset[$i][1] = "
" . $row['problem_id'] . "
"; + $view_problemset[$i][2] = ""; + ; + $view_problemset[$i][3] = "
"; foreach ($category as $cat) { - if(trim($cat)==""||trim($cat)==" ") + if (trim($cat) == "" || trim($cat) == " ") continue; - $hash_num = hexdec(substr(md5($cat),0,7)); - $label_theme = $color_theme[$hash_num%count($color_theme)]; + $hash_num = hexdec(substr(md5($cat), 0, 7)); + $label_theme = $color_theme[$hash_num % count($color_theme)]; - if ($label_theme=="") + if ($label_theme == "") $label_theme = "default"; - $view_problemset[$i][3] .= "".mb_substr($cat,0,10,'utf8')." "; + $view_problemset[$i][3] .= "" . mb_substr($cat, 0, 10, 'utf8') . " "; } $view_problemset[$i][3] .= "
"; - $view_problemset[$i][4] = ""; - $view_problemset[$i][5] = ""; + $view_problemset[$i][4] = ""; + $view_problemset[$i][5] = ""; $i++; } -if(isset($_GET['ajax'])){ +if (isset($_GET['ajax'])) { require("template/bs3/problemset.php"); -}else{ - require("template/".$OJ_TEMPLATE."/problemset.php"); +} else { + require("template/" . $OJ_TEMPLATE . "/problemset.php"); } -if(file_exists('./include/cache_end.php')) +if (file_exists('./include/cache_end.php')) require_once('./include/cache_end.php'); -?> +?> \ No newline at end of file diff --git a/web/template/syzoj/problemset.php b/web/template/syzoj/problemset.php index 5944518..280a61c 100644 --- a/web/template/syzoj/problemset.php +++ b/web/template/syzoj/problemset.php @@ -27,6 +27,19 @@
+ +
+ +