<?php if (!Auth::check()) { become403Page(UOJLocale::get('need login')); } requirePHPLib('form'); requirePHPLib('judger'); requirePHPLib('data'); if (isSuperUser($myUser)) { $new_list_form = new UOJForm('new_list'); $new_list_form->handle = function() { DB::query("insert into lists (title, is_hidden) values ('未命名题单', 1)"); }; $new_list_form->submit_button_config['align'] = 'right'; $new_list_form->submit_button_config['class_str'] = 'btn btn-primary'; $new_list_form->submit_button_config['text'] = UOJLocale::get('problems::add new list'); $new_list_form->submit_button_config['smart_confirm'] = ''; $new_list_form->runAtServer(); } function echoList($list) { global $myUser; echo '<tr class="text-center">'; if ($list['problem_count'] == $list['accepted'] && $list['problem_count'] > 0) { echo '<td class="success">'; } else { echo '<td>'; } echo '#', $list['list_id'], '</td>'; echo '<td class="text-left">'; if ($list['is_hidden']) { echo ' <span class="text-danger">[隐藏]</span> '; } echo '<a href="/problem_list/', $list['list_id'], '">', $list['title'], '</a>'; foreach (queryProblemListTags($list['list_id']) as $tag) { echo '<a class="uoj-list-tag">', '<span class="badge badge-pill badge-secondary">', HTML::escape($tag), '</span>', '</a>'; } echo '</td>'; echo "<td>{$list['accepted']}</td>"; echo "<td>{$list['problem_count']}</td>"; echo '</tr>'; } ?> <?php echoUOJPageHeader(UOJLocale::get('problems lists')) ?> <?php if (isSuperUser($myUser)) { global $new_list_form; $new_list_form->printHTML(); } $problem_list_caption = UOJLocale::get('problems::problem list'); $ac_caption = UOJLocale::get('problems::ac'); $total_caption = UOJLocale::get('problems::total'); $header = <<<EOD <tr> <th class="text-center" style="width:5em;">ID</th> <th>{$problem_list_caption}</th> <th class="text-center" style="width:5em;">{$ac_caption}</th> <th class="text-center" style="width:5em;">{$total_caption}</th> </tr> EOD; $cond = array(); $search_tag = null; if (isset($_GET['tag'])) { $search_tag = $_GET['tag']; } if ($search_tag) { $cond[] = "'" . DB::escape($search_tag) . "' in (select tag from lists_tags where lists_tags.list_id = a.id)"; } if (!isSuperUser($myUser)) { $cond[] = "is_hidden = 0"; } if ($cond) { $cond = join($cond, ' and '); } else { $cond = '1'; } $from = "lists a left join lists_problems b on a.id = b.list_id left join best_ac_submissions c on (b.problem_id = c.problem_id and c.submitter = '{$myUser['username']}')"; echoLongTable( array('a.id as list_id', 'a.title as title', 'a.is_hidden as is_hidden', 'count(b.problem_id) as problem_count', 'count(c.submitter) as accepted'), $from, $cond, 'group by a.id order by a.id desc', $header, 'echoList', array('page_len' => 40, 'table_classes' => array('table', 'table-bordered', 'table-hover', 'table-striped'), 'print_after_table' => function() { global $myUser; }, 'head_pagination' => true, 'pagination_table' => 'lists' ) ); ?> <?php echoUOJPageFooter() ?>