where('username', 'name', "%{$q}%"); } $total = (clone $query)->count(); $perPage = 20; 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'); $filterForm = <<

$title

FORM; stdhead($title); begin_main_frame(); $table = << TABLE; $table .= ''; $userMedals = \App\Models\UserMedal::query()->where('uid', $CURUSER['id'])->orderBy('id', 'desc')->get()->keyBy('medal_id'); foreach ($rows as $row) { if ($userMedals->has($CURUSER['id'])) { $btnText = nexus_trans('medal.buy_already'); $disabled = ' disabled'; $class = ''; } else { $btnText = nexus_trans('medal.buy_btn'); $disabled = ''; $class = 'buy'; } $action = sprintf( '', $class, $row->id, $btnText, $disabled ); $table .= sprintf( '', $row->id, $row->name, $row->image_large, $row->duration, $row->description, $action ); } $table .= '
ID $columnNameLabel $columnImageLargeLabel $columnDurationLabel $columnDescriptionLabel $columnActionLabel
%s%s%s%s%s
'; echo $table . $paginationBottom; $js = <<