mirror of
https://github.com/renbaoshuo/S2OJ.git
synced 2024-12-24 02:21:52 +00:00
96d4a3ecf7
Due to historical reasons, the code is in subfolder "1". With SVN removal, we place the code back and remove the annoying "1" folder.
64 lines
1.8 KiB
PHP
64 lines
1.8 KiB
PHP
<?php
|
|
function validateZan() {
|
|
if (!validateUInt($_POST['id']))
|
|
return false;
|
|
if (!validateInt($_POST['delta']))
|
|
return false;
|
|
if ($_POST['delta'] != 1 && $_POST['delta'] != -1)
|
|
return false;
|
|
if ($_POST['type'] != 'B' && $_POST['type'] != 'BC' && $_POST['type'] != 'P' && $_POST['type'] != 'C')
|
|
return false;
|
|
return true;
|
|
}
|
|
if (!validateZan()) {
|
|
die('<div class="text-danger">failed</div>');
|
|
}
|
|
if ($myUser == null) {
|
|
die('<div class="text-danger">please <a href="'.HTML::url('/login').'">log in</a></div>');
|
|
}
|
|
|
|
$id = $_POST['id'];
|
|
$delta = $_POST['delta'];
|
|
$type = $_POST['type'];
|
|
|
|
switch ($type) {
|
|
case 'B':
|
|
$table_name = 'blogs';
|
|
break;
|
|
case 'BC':
|
|
$table_name = 'blogs_comments';
|
|
break;
|
|
case 'P':
|
|
$table_name = 'problems';
|
|
break;
|
|
case 'C':
|
|
$table_name = 'contests';
|
|
break;
|
|
}
|
|
|
|
$cur = queryZanVal($id, $type, $myUser);
|
|
|
|
if ($cur != $delta) {
|
|
$row = DB::selectFirst("select zan from $table_name where id = $id");
|
|
if ($row == null) {
|
|
die('<div class="text-danger">failed</div>');
|
|
}
|
|
$cur += $delta;
|
|
if ($cur == 0) {
|
|
DB::query("delete from click_zans where username = '{$myUser['username']}' and type = '$type' and target_id = $id");
|
|
} else if ($cur != $delta) {
|
|
DB::query("update click_zans set val = '$cur' where username = '{$myUser['username']}' and type = '$type' and target_id = $id");
|
|
} else {
|
|
DB::query("insert into click_zans (username, type, target_id, val) values ('{$myUser['username']}', '$type', $id, $cur)");
|
|
}
|
|
$cnt = $row['zan'] + $delta;
|
|
DB::query("update $table_name set zan = $cnt where id = $id");
|
|
} else {
|
|
$row = DB::selectFirst("select zan from $table_name where id = $id");
|
|
if ($row == null) {
|
|
die('<div class="text-danger">failed</div>');
|
|
}
|
|
$cnt = $row['zan'];
|
|
}
|
|
?>
|
|
<?= getClickZanBlock($type, $id, $cnt, $cur) ?>
|