PHP WebShell
Текущая директория: /var/www/bitcardoApp/backyard/user/dashboard
Просмотр файла: index.php
<?php
// backyard/user/dashboard/index.php
include '../common/header.php';
// Quick-link helpers
$today = date('Y-m-d');
$txTodayQS = 'from='.$today.'&to='.$today; // transactions index expects from/to
$gcTodayQS = 'from='.$today.'&to='.$today; // giftcards index (same scheme)
// DB (in case header doesn't already include it)
if (!isset($conn)) {
include_once '../../config/db_config.php';
}
// Backend data providers
require_once '../../models/dashboard/index.php';
// Fetch overview metrics and wallets
$overview = dash_get_overview($conn);
$wallets = dash_get_platform_wallets($conn, 6);
$orders = dash_get_recent_giftcard_batches($conn, 10);
// Safe formatters
function fmt_num($n, $dec = 0) { return number_format((float)$n, $dec); }
function fmt_money($n, $dec = 2) { return number_format((float)$n, $dec); }
?>
<style>
.amountx{ color:#000; }
</style>
<div class="nk-content nk-content-fluid mt-5">
<div class="container-xl wide-lg">
<div class="nk-content-body">
<div class="nk-block-head">
<div class="nk-block-head-sub"><span>Welcome!</span></div>
<div class="nk-block-between-md g-4">
<div class="nk-block-head-content">
<h2 class="nk-block-title fw-normal">Olatunbosun Olaniba</h2>
<div class="nk-block-des">
<p>At a glance summary of your platform!</p>
</div>
</div>
<div class="nk-block-head-content">
<ul class="nk-block-tools gx-3">
<li><a href="#" class="btn btn-danger"><span>Freeze Crypto Wallet</span></a></li>
<li><a href="#" class="btn btn-dark"><span>Suspend User</span></a></li>
<li class="opt-menu-md dropdown">
<a href="#" class="btn btn-white btn-light btn-icon" data-bs-toggle="dropdown"><i class="fa fa-cog"></i></a>
<div class="dropdown-menu dropdown-menu-end">
<ul class="link-list-opt no-bdr">
<li><a href="#"><i class="fa fa-money"></i><span>Currency Settings</span></a></li>
<li><a href="#"><i class="fa fa-bell"></i><span>Push Notification</span></a></li>
</ul>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="nk-block">
<div class="row gy-gs">
<div class="col-lg-5 col-xl-4">
<div class="nk-block">
<div class="nk-block-head-xs">
<div class="nk-block-head-content">
<h5 class="nk-block-title title">Overview</h5>
</div>
</div>
<div class="nk-block">
<div class="card card-bordered text-light is-dark h-100">
<div class="card-inner">
<div class="nk-wg7">
<div class="nk-wg7-stats">
<div class="nk-wg7-title">Today's Gift Card USD</div>
<div class="number-lg amount">
<?= fmt_money($overview['today_giftcard_usd'] ?? 0, 2); ?>
</div>
</div>
<div class="nk-wg7-stats-group">
<div class="nk-wg7-stats w-50">
<div class="nk-wg7-title">Users</div>
<div class="number"><?= fmt_num($overview['users_count'] ?? 0); ?></div>
</div>
<div class="nk-wg7-stats w-50">
<div class="nk-wg7-title">Transactions</div>
<div class="number"><?= fmt_num($overview['transactions_count'] ?? 0); ?></div>
</div>
</div>
<div class="mt-2 small text-light-70">
Today’s trades: <?= fmt_num($overview['today_trades_count'] ?? 0); ?>
</div>
</div>
</div>
</div>
</div><!-- .nk-block -->
</div>
</div>
<div class="col-lg-7 col-xl-8">
<div class="nk-block">
<div class="nk-block-head-xs">
<div class="nk-block-between-md g-2">
<div class="nk-block-head-content">
<h5 class="nk-block-title title">Platform Wallets</h5>
</div>
<div class="nk-block-head-content">
<a href="../wallets/platform-wallets.php" class="btn btn-outline-secondary btn-sm px-1 py-0">See All</a>
</div>
</div>
</div>
<div class="row g-2">
<?php if (!empty($wallets)): ?>
<?php foreach ($wallets as $w):
$coin = $w['coin'] ?? '';
$icon = $w['icon'] ?? '';
$status = $w['status'] ?? '';
$platform_balance = (float)($w['platform_balance'] ?? 0);
$user_balance = (float)($w['user_balance'] ?? 0);
$growth = (float)($w['growth_percent'] ?? 0);
$growth_class = ($user_balance > 0 && $growth < 0) ? 'text-danger' : (($user_balance > 0 && $growth >= 0) ? 'text-success' : 'text-muted');
$growth_sign = ($user_balance > 0 && $growth >= 0) ? '+' : '';
$growth_text = ($user_balance > 0) ? ($growth_sign . number_format($growth, 2) . '%') : '—';
$card_class = ($status === 'Active') ? 'bg-light' : 'bg-white border';
?>
<div class="col-md-4">
<div class="card <?= $card_class; ?>">
<div class="nk-wgw sm">
<span class="nk-wgw-inner">
<div class="nk-wgw-name d-flex justify-content-between align-items-center">
<div class="nk-wgw-icon">
<img class="rounded-5" src="../../../assets/icons/<?= htmlspecialchars($icon); ?>" alt="<?= htmlspecialchars($coin); ?> icon">
</div>
<div class="flex-grow-1 ms-2">
<h5 class="nk-wgw-title title mb-0"><?= htmlspecialchars($coin); ?> Balance</h5>
</div>
<h6 class="mb-0 <?= $growth_class; ?>"><?= $growth_text; ?></h6>
</div>
<div class="nk-wgw-balance">
<div class="amountx">Platform: <?= fmt_money($platform_balance, 2); ?>
<span class="currency currency-nio"><?= htmlspecialchars($coin); ?></span>
</div>
<div class="amountx">All Users: <?= fmt_money($user_balance, 2); ?>
<span class="currency currency-nio"><?= htmlspecialchars($coin); ?></span>
</div>
</div>
</span>
</div>
</div>
</div>
<?php endforeach; ?>
<?php else: ?>
<div class="col-12">
<div class="alert alert-light border">No wallets found.</div>
</div>
<?php endif; ?>
</div><!-- .row -->
</div>
</div>
</div>
</div>
<!-- Keep your GiftCard Orders section; make dynamic later if you like -->
<div class="nk-block nk-block-lg">
<div class="card-title mb-4 border-top border-bottom py-3 px-3 d-flex justify-content-between align-items-center">
<h5 class="title mb-0">GiftCard Orders</h5>
<a class="btn btn-sm btn-outline-secondary" href="../giftcards/index.php">See All</a>
</div>
<div class="gy-gs container">
<?php if (!empty($orders)): ?>
<?php
date_default_timezone_set('Africa/Lagos');
foreach ($orders as $b):
$batch = $b['batch_ref'];
$fname = trim(($b['first_name'] ?? '').' '.($b['last_name'] ?? ''));
$payout = number_format((float)$b['total_payout'], 2);
$status = dash_batch_status($b);
$created = $b['last_time'] ? date('M j, Y g:i A', strtotime($b['last_time'])) : '—';
// badge colors
$badgeClass = 'bg-secondary';
$sUp = strtoupper($status);
if ($sUp === 'SUCCESS') $badgeClass = 'bg-success';
elseif ($sUp === 'PENDING') $badgeClass = 'bg-warning';
elseif ($sUp === 'DECLINED') $badgeClass = 'bg-danger';
elseif ($sUp === 'MIXED') $badgeClass = 'bg-info';
$href = "../orders/process_order.php?batch=" . urlencode($batch);
?>
<a href="<?= $href; ?>" class="row border rounded-5 px-2 py-3 shadow-sm mx-1 mb-2 text-dark">
<!-- batch no -->
<div class="col-md-3 col-7">
<div class="number-sm"><?= htmlspecialchars($batch); ?></div>
</div>
<!-- fname -->
<div class="col-md-2 d-none d-md-block">
<div class="number-sm"><?= htmlspecialchars($fname !== '' ? $fname : '—'); ?></div>
</div>
<!-- est. payout (₦) -->
<div class="col-md-3 col-5">
<div class="number-sm"><?= $payout; ?> / <span class="currency">₦</span></div>
</div>
<!-- status -->
<div class="col-md-2 col-6 mt-2 mt-md-0">
<span class="number-sm <?= $badgeClass; ?> py-1 px-2 rounded-3">
<?= htmlspecialchars($status); ?>
</span>
</div>
<!-- date/time -->
<div class="col-md-2 col-6 mt-2 mt-md-0 text-md-end">
<div class="number-sm"><?= htmlspecialchars($created); ?></div>
</div>
</a>
<?php endforeach; ?>
<?php else: ?>
<div class="alert alert-light border mx-1">No recent gift card batches.</div>
<?php endif; ?>
</div>
</div>
</div>
</div>
</div>
<?php include '../common/footer.php'; ?>
Выполнить команду
Для локальной разработки. Не используйте в интернете!