2022-09-18 11:34:17 +00:00
< ? 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 ;
},
2022-09-20 09:19:11 +00:00
'head_pagination' => true ,
'pagination_table' => 'lists'
2022-09-18 11:34:17 +00:00
)
);
?>
< ? php echoUOJPageFooter () ?>