' . $errmsg . '返回'); } if (!group) { $errmsg = "Error: 未找到组 {$_POST['target_group']}"; becomeMsgPage('
' . $errmsg . '
返回'); } if (!hasGroupCtrlPermission($myUser, $group)) { $errmsg = "Error: 你对组 {$group['username']} 没有控制权"; becomeMsgPage('
' . $errmsg . '
返回'); } for ($i = $start; $i <= $end; $i++) { if (!hasProblemCtrlPermission($myUser, queryProblemBrief($i))) { $errmsg = "Error: 你对题目 $i 没有控制权"; becomeMsgPage('
' . $errmsg . '
返回'); } } for ($i = $start; $i <= $end; $i++) { attachProblemToGroup(queryProblemBrief($i), $group); DB::update("update problems set ctrl = '{$group['username']}' where id = $i"); } } if ($_POST['copy_problem_submit'] == 'submit') { $problems = explode(',', $_POST['copy_problem_list']); if (count($problems) > 10) { $errmsg = "Error: 你不能一次复制超过 10 个题目"; becomeMsgPage('
' . $errmsg . '
返回'); } foreach ($problems as $pid) if (!hasProblemCtrlPermission($myUser, queryProblemBrief($pid))) { $errmsg = "Error: 你对题目 $i 没有控制权"; becomeMsgPage('
' . $errmsg . '
返回'); } foreach ($problems as $pid) { $p = queryProblemBrief($pid); $title = DB::escape($p['title']); $q = queryProblemContent($pid); $stat = DB::escape($q['statement']); $statmd = DB::escape($q['statement_md']); DB::query("insert into problems (title, is_hidden, submission_requirement, ctrl) values ('$title', {$p['is_hidden']}, '{$p['submission_requirement']}', '{$p['ctrl']}')"); $id = DB::insert_id(); DB::query("insert into problems_contents (id, statement, statement_md) values ($id, '$stat', '$statmd')"); dataCopyProblemData($pid, $id); attachProblemToGroup(queryProblemBrief($id), queryUser($p['ctrl'])); } } function echoProblem($problem) { global $myUser; if (isProblemVisibleToUser($problem, $myUser)) { echo ''; if ($problem['submission_id']) { echo ''; } else { echo ''; } echo '#', $problem['id'], ''; echo ''; if ($problem['is_hidden']) { echo ' [隐藏] '; } echo '', $problem['title'], ''; if (isset($_COOKIE['show_tags_mode'])) { foreach (queryProblemTags($problem['id']) as $tag) { echo '', '', HTML::escape($tag), '', ''; } } echo ''; if (isset($_COOKIE['show_submit_mode'])) { $perc = $problem['submit_num'] > 0 ? round(100 * $problem['ac_num'] / $problem['submit_num']) : 0; echo <<×{$problem['ac_num']} ×{$problem['submit_num']}
{$perc}%
EOD; } echo '', getClickZanBlock('P', $problem['id'], $problem['zan']), ''; echo ''; } } $cond = array(); $search_tag = null; $cur_tab = isset($_GET['tab']) ? $_GET['tab'] : 'all'; if ($cur_tab == 'template') { $search_tag = "模板题"; } if (isset($_GET['tag'])) { $search_tag = $_GET['tag']; } if ($search_tag) { $cond[] = "'".DB::escape($search_tag)."' in (select tag from problems_tags where problems_tags.problem_id = problems.id)"; } if (isset($_GET["search"])) { $cond[]="title like '%".DB::escape($_GET["search"])."%' or id like '%".DB::escape($_GET["search"])."%'"; } if (isset($_GET['group'])) { $groupname = $_GET['group']; $cur_tab = $groupname; $group = queryUser($groupname); if ($group == null) become404Page(); if (!in_array($groupname, queryUserExtgroups($myUser))) become403Page(); $cond[] = "find_in_set(id, (select privs from user_info where username = '$groupname'))"; } else { $group = queryUser('group_default'); $groupname = 'group_default'; } if ($cond) { $cond = join($cond, ' and '); } else { $cond = '1'; } $print_new_problem_form = false; $print_mig_problem_form = false; $print_copy_problem_form = false; $print_datum_button = false; /* if (($cur_tab == 'all' || $cur_tab == 'template') and isSuperUser($myUser)) { $print_new_problem_form = true; $new_problem_form = new UOJForm('new_problem'); $new_problem_form->handle = function() { global $group; DB::query("insert into problems (title, is_hidden, submission_requirement, ctrl) values ('New Problem', 1, '{}', 'group_default')"); $id = DB::insert_id(); DB::query("insert into problems_contents (id, statement, statement_md) values ($id, '', '')"); dataNewProblem($id); attachProblemToGroup(queryProblemBrief($id), $group); }; $new_problem_form->submit_button_config['align'] = 'right'; $new_problem_form->submit_button_config['class_str'] = 'btn btn-primary'; $new_problem_form->submit_button_config['text'] = UOJLocale::get('problems::add new'); $new_problem_form->submit_button_config['smart_confirm'] = ''; $new_problem_form->runAtServer(); } */ if (isSuperUser($myUser)) $print_datum_button = true; if ($group != null and hasGroupCtrlPermission($myUser, $group)) { $print_new_problem_form = true; $print_copy_problem_form = true; $new_problem_form = new UOJForm('new_problem'); $new_problem_form->handle = function() { global $groupname; global $group; DB::query("insert into problems (title, is_hidden, submission_requirement, ctrl) values ('New Problem', 1, '{}', '" . $groupname . "')"); $id = DB::insert_id(); DB::query("insert into problems_contents (id, statement, statement_md) values ($id, '', '')"); dataNewProblem($id); attachProblemToGroup(queryProblemBrief($id), $group); }; $new_problem_form->submit_button_config['align'] = 'right'; $new_problem_form->submit_button_config['class_str'] = 'btn btn-primary'; $new_problem_form->submit_button_config['text'] = UOJLocale::get('problems::add new'); $new_problem_form->submit_button_config['smart_confirm'] = ''; $new_problem_form->runAtServer(); $print_mig_problem_form = true; } $header = ''; $header .= 'ID'; $header .= ''.UOJLocale::get('problems::problem').''; if (isset($_COOKIE['show_submit_mode'])) { $header .= ''.UOJLocale::get('problems::ac').''; $header .= ''.UOJLocale::get('problems::submit').''; $header .= ''.UOJLocale::get('problems::ac rate').''; } $header .= ''.UOJLocale::get('appraisal').''; $header .= ''; $tabs_info = array( 'all' => array( 'name' => UOJLocale::get('problems::all problems'), 'url' => "/problems" ), 'template' => array( 'name' => UOJLocale::get('problems::template problems'), 'url' => "/problems/template" ) ); foreach (queryUserExtgroups($myUser) as $i => $grp) if ($grp != '') $tabs_info[$grp] = array( 'name' => '团队 ' . $grp .' 题目', 'url' => "/problems/group/" . $grp ); $pag_config = array('page_len' => 100); $pag_config['col_names'] = array('*'); $pag_config['table_name'] = "problems left join best_ac_submissions on best_ac_submissions.submitter = '{$myUser['username']}' and problems.id = best_ac_submissions.problem_id"; $pag_config['cond'] = $cond; $pag_config['tail'] = "order by id asc"; $pag = new Paginator($pag_config); $div_classes = array('table-responsive', 'shadow'); $table_classes = array('table', 'table-bordered', 'table-hover', 'table-striped'); ?>
'; echo ''; echo ''; echo $header; echo ''; echo ''; foreach ($pag->get() as $idx => $row) { echoProblem($row); echo "\n"; } if ($pag->isEmpty()) { echo ''; } echo ''; echo '
'.UOJLocale::get('none').'
'; echo ''; if ($print_new_problem_form) $new_problem_form->printHTML(); if ($print_mig_problem_form) { echo << EOF; } if ($print_copy_problem_form) { echo << EOF; } if ($print_datum_button) { echo << 自动生成数据 EOF; } echo "
"; echo $pag->pagination(); echo "
"; ?>