2022-12-18 02:19:33 +08:00
|
|
|
<?php
|
|
|
|
|
require "../include/bittorrent.php";
|
2023-01-12 03:50:39 +08:00
|
|
|
dbconn();
|
|
|
|
|
loggedinorreturn();
|
2023-01-10 17:25:53 +08:00
|
|
|
$query = \App\Models\Medal::query()->where('display_on_medal_page', 1);
|
2022-12-18 02:19:33 +08:00
|
|
|
$q = htmlspecialchars($_REQUEST['q'] ?? '');
|
|
|
|
|
if (!empty($q)) {
|
|
|
|
|
$query->where('username', 'name', "%{$q}%");
|
|
|
|
|
}
|
|
|
|
|
$total = (clone $query)->count();
|
2022-12-19 04:15:15 +08:00
|
|
|
$perPage = 20;
|
2022-12-18 02:19:33 +08:00
|
|
|
list($paginationTop, $paginationBottom, $limit, $offset) = pager($perPage, $total, "?");
|
|
|
|
|
$rows = (clone $query)->offset($offset)->take($perPage)->orderBy('id', 'desc')->get();
|
|
|
|
|
$q = htmlspecialchars($q);
|
|
|
|
|
$title = nexus_trans('medal.label');
|
|
|
|
|
$columnNameLabel = nexus_trans('label.name');
|
|
|
|
|
$columnImageLargeLabel = nexus_trans('medal.fields.image_large');
|
|
|
|
|
$columnPriceLabel = nexus_trans('medal.fields.price');
|
|
|
|
|
$columnDurationLabel = nexus_trans('medal.fields.duration');
|
|
|
|
|
$columnDescriptionLabel = nexus_trans('medal.fields.description');
|
|
|
|
|
$columnActionLabel = nexus_trans('nexus.action');
|
2022-12-19 19:01:22 +08:00
|
|
|
$header = '<h1 style="text-align: center">'.$title.'</h1>';
|
2022-12-18 02:19:33 +08:00
|
|
|
$filterForm = <<<FORM
|
|
|
|
|
<div>
|
|
|
|
|
<form id="filterForm" action="{$_SERVER['REQUEST_URI']}" method="get">
|
|
|
|
|
<input id="q" type="text" name="q" value="{$q}" placeholder="username">
|
|
|
|
|
<input type="submit">
|
|
|
|
|
<input type="reset" onclick="document.getElementById('q').value='';document.getElementById('filterForm').submit();">
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
FORM;
|
|
|
|
|
stdhead($title);
|
|
|
|
|
begin_main_frame();
|
|
|
|
|
$table = <<<TABLE
|
|
|
|
|
<table border="1" cellspacing="0" cellpadding="5" width="100%">
|
|
|
|
|
<thead>
|
|
|
|
|
<tr>
|
|
|
|
|
<td class="colhead">ID</td>
|
|
|
|
|
<td class="colhead">$columnNameLabel</td>
|
|
|
|
|
<td class="colhead">$columnImageLargeLabel</td>
|
2022-12-19 19:01:22 +08:00
|
|
|
<td class="colhead">$columnPriceLabel</td>
|
2022-12-18 02:19:33 +08:00
|
|
|
<td class="colhead">$columnDurationLabel</td>
|
|
|
|
|
<td class="colhead">$columnDescriptionLabel</td>
|
|
|
|
|
<td class="colhead">$columnActionLabel</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
TABLE;
|
|
|
|
|
$table .= '<tbody>';
|
2022-12-19 19:01:22 +08:00
|
|
|
$userMedals = \App\Models\UserMedal::query()->where('uid', $CURUSER['id'])
|
|
|
|
|
->orderBy('id', 'desc')
|
|
|
|
|
->get()
|
|
|
|
|
->keyBy('medal_id')
|
|
|
|
|
;
|
2022-12-18 02:19:33 +08:00
|
|
|
foreach ($rows as $row) {
|
2023-01-04 19:35:06 +08:00
|
|
|
$disabled = ' disabled';
|
|
|
|
|
$class = '';
|
|
|
|
|
if ($userMedals->has($row->id)) {
|
|
|
|
|
$btnText = nexus_trans('medal.buy_already');
|
|
|
|
|
} elseif ($row->get_type == \App\Models\Medal::GET_TYPE_GRANT) {
|
|
|
|
|
$btnText = nexus_trans('medal.grant_only');
|
|
|
|
|
} elseif ($CURUSER['seedbonus'] < $row->price) {
|
|
|
|
|
$btnText = nexus_trans('medal.require_more_bonus');
|
2022-12-18 02:19:33 +08:00
|
|
|
} else {
|
|
|
|
|
$btnText = nexus_trans('medal.buy_btn');
|
|
|
|
|
$disabled = '';
|
2022-12-19 04:15:15 +08:00
|
|
|
$class = 'buy';
|
2022-12-18 02:19:33 +08:00
|
|
|
}
|
|
|
|
|
$action = sprintf(
|
2022-12-19 04:15:15 +08:00
|
|
|
'<input type="button" class="%s" data-id="%s" value="%s"%s>',
|
|
|
|
|
$class, $row->id, $btnText, $disabled
|
2022-12-18 02:19:33 +08:00
|
|
|
);
|
|
|
|
|
$table .= sprintf(
|
2022-12-19 19:01:22 +08:00
|
|
|
'<tr><td>%s</td><td>%s</td><td><img src="%s" style="max-width: 60px;max-height: 60px;" class="preview" /></td><td>%s</td><td>%s</td><td>%s</td><td>%s</td>',
|
2023-01-21 13:58:35 +08:00
|
|
|
$row->id, $row->name, $row->image_large, number_format($row->price), $row->durationText, $row->description, $action
|
2022-12-18 02:19:33 +08:00
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
$table .= '</tbody></table>';
|
2022-12-19 19:01:22 +08:00
|
|
|
echo $header . $table . $paginationBottom;
|
2022-12-19 22:21:44 +08:00
|
|
|
end_main_frame();
|
2022-12-19 19:01:22 +08:00
|
|
|
$confirmMsg = nexus_trans('medal.confirm_to_buy');
|
2022-12-19 04:15:15 +08:00
|
|
|
$js = <<<JS
|
|
|
|
|
jQuery('.buy').on('click', function (e) {
|
|
|
|
|
let medalId = jQuery(this).attr('data-id')
|
2022-12-19 19:01:22 +08:00
|
|
|
layer.confirm("{$confirmMsg}", function (index) {
|
2022-12-19 04:15:15 +08:00
|
|
|
let params = {
|
|
|
|
|
action: "buyMedal",
|
|
|
|
|
params: {medal_id: medalId}
|
|
|
|
|
}
|
|
|
|
|
console.log(params)
|
|
|
|
|
jQuery.post('ajax.php', params, function(response) {
|
|
|
|
|
console.log(response)
|
|
|
|
|
if (response.ret != 0) {
|
|
|
|
|
layer.alert(response.msg)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
window.location.reload()
|
|
|
|
|
}, 'json')
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
JS;
|
|
|
|
|
\Nexus\Nexus::js($js, 'footer', false);
|
2022-12-18 02:19:33 +08:00
|
|
|
stdfoot();
|
|
|
|
|
|