BIT
This commit is contained in:
parent
4d100057a8
commit
0e573d36f8
61
api/get_hero_images.php
Normal file
61
api/get_hero_images.php
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
<?php
|
||||||
|
header('Content-Type: application/json');
|
||||||
|
|
||||||
|
function pexels_key() {
|
||||||
|
$k = getenv('PEXELS_KEY');
|
||||||
|
return $k && strlen($k) > 0 ? $k : 'Vc99rnmOhHhJAbgGQoKLZtsaIVfkeownoQNbTj78VemUjKh08ZYRbf18';
|
||||||
|
}
|
||||||
|
|
||||||
|
function pexels_get($url) {
|
||||||
|
$ch = curl_init();
|
||||||
|
curl_setopt_array($ch, [
|
||||||
|
CURLOPT_URL => $url,
|
||||||
|
CURLOPT_RETURNTRANSFER => true,
|
||||||
|
CURLOPT_HTTPHEADER => [ 'Authorization: '. pexels_key() ],
|
||||||
|
CURLOPT_TIMEOUT => 15,
|
||||||
|
]);
|
||||||
|
$resp = curl_exec($ch);
|
||||||
|
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||||
|
curl_close($ch);
|
||||||
|
if ($code >= 200 && $code < 300 && $resp) return json_decode($resp, true);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function download_to($srcUrl, $destPath) {
|
||||||
|
$data = @file_get_contents($srcUrl);
|
||||||
|
if ($data === false) return false;
|
||||||
|
if (!is_dir(dirname($destPath))) mkdir(dirname($destPath), 0775, true);
|
||||||
|
return file_put_contents($destPath, $data) !== false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$queries = ['cryptocurrency', 'bitcoin mining', 'blockchain technology', 'digital finance', 'trading floor'];
|
||||||
|
$out = [];
|
||||||
|
|
||||||
|
if (!is_dir(__DIR__ . '/../assets/images/hero')) {
|
||||||
|
mkdir(__DIR__ . '/../assets/images/hero', 0775, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($queries as $index => $q) {
|
||||||
|
$filename = 'hero_' . ($index + 1) . '.jpg';
|
||||||
|
$target = __DIR__ . '/../assets/images/hero/' . $filename;
|
||||||
|
|
||||||
|
// Cache for 24 hours
|
||||||
|
if (!file_exists($target) || (time() - filemtime($target) > 86400)) {
|
||||||
|
$u = 'https://api.pexels.com/v1/search?query=' . urlencode($q) . '&orientation=landscape&per_page=1&page=1';
|
||||||
|
$d = pexels_get($u);
|
||||||
|
if ($d && !empty($d['photos'])) {
|
||||||
|
$p = $d['photos'][0];
|
||||||
|
$src = $p['src']['large2x'] ?? $p['src']['original'];
|
||||||
|
download_to($src, $target);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (file_exists($target)) {
|
||||||
|
$out[] = 'assets/images/hero/' . $filename;
|
||||||
|
} else {
|
||||||
|
// Fallback to picsum if pexels fails
|
||||||
|
$out[] = 'https://picsum.photos/1200/600?random=' . $index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo json_encode(['success' => true, 'images' => $out]);
|
||||||
@ -1,5 +1,5 @@
|
|||||||
:root {
|
:root {
|
||||||
--bg-color: #0b0e11;
|
--bg-color: #101216;
|
||||||
--text-color: #eaecef;
|
--text-color: #eaecef;
|
||||||
--accent-color: #f0b90b;
|
--accent-color: #f0b90b;
|
||||||
--card-bg: #181a20;
|
--card-bg: #181a20;
|
||||||
@ -52,65 +52,96 @@ body {
|
|||||||
box-shadow: 0 8px 20px rgba(0, 70, 255, 0.3);
|
box-shadow: 0 8px 20px rgba(0, 70, 255, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-accent {
|
/* Logo Styling */
|
||||||
background-color: var(--accent-color);
|
.logo-img {
|
||||||
color: #000;
|
height: 40px;
|
||||||
font-weight: 700;
|
margin-right: 12px;
|
||||||
border: none;
|
background: transparent !important;
|
||||||
border-radius: 10px;
|
border: none !important;
|
||||||
transition: all 0.3s ease;
|
display: block;
|
||||||
|
box-shadow: none !important;
|
||||||
|
filter: drop-shadow(0 0 5px rgba(0, 70, 255, 0.2));
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-accent:hover {
|
.bg-primary-bg { background-color: var(--bg-color) !important; }
|
||||||
background-color: #d9a508;
|
.bg-secondary-bg { background-color: #181a20 !important; }
|
||||||
color: #000;
|
.bg-darker { background-color: #080a0c !important; }
|
||||||
transform: translateY(-2px);
|
|
||||||
box-shadow: 0 6px 15px rgba(240, 185, 11, 0.4);
|
.bg-navy-gradient {
|
||||||
|
background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 100%);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Visibility Utilities */
|
/* New Ticker Styles */
|
||||||
|
.ticker-item {
|
||||||
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
|
}
|
||||||
|
.hover-glow-blue:hover {
|
||||||
|
transform: translateY(-3px);
|
||||||
|
background: rgba(0, 70, 255, 0.15) !important;
|
||||||
|
border-color: rgba(0, 70, 255, 0.3) !important;
|
||||||
|
box-shadow: 0 10px 20px rgba(0, 70, 255, 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-small { font-size: 0.7rem; }
|
||||||
|
.xx-small { font-size: 0.6rem; }
|
||||||
|
|
||||||
|
/* Custom Animations */
|
||||||
|
@keyframes fadeIn {
|
||||||
|
from { opacity: 0; transform: translateY(10px); }
|
||||||
|
to { opacity: 1; transform: translateY(0); }
|
||||||
|
}
|
||||||
|
|
||||||
|
.animate-fade-in {
|
||||||
|
animation: fadeIn 0.5s ease forwards;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Mobile Adjustments */
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.display-4 { font-size: 2.5rem; }
|
||||||
|
.carousel-image-container { height: 350px !important; }
|
||||||
|
.slide-content { padding-left: 20px !important; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ticker Skeleton */
|
||||||
|
.skeleton {
|
||||||
|
background: linear-gradient(90deg, rgba(255,255,255,0.05) 25%, rgba(255,255,255,0.1) 50%, rgba(255,255,255,0.05) 75%);
|
||||||
|
background-size: 200% 100%;
|
||||||
|
animation: skeleton-loading 1.5s infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes skeleton-loading {
|
||||||
|
0% { background-position: 200% 0; }
|
||||||
|
100% { background-position: -200% 0; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Utility */
|
||||||
.text-white { color: #ffffff !important; }
|
.text-white { color: #ffffff !important; }
|
||||||
.text-muted { color: #848e9c !important; }
|
.text-muted { color: #848e9c !important; }
|
||||||
|
.bg-primary { background-color: var(--okx-blue) !important; }
|
||||||
.text-success { color: var(--success-color) !important; }
|
|
||||||
.text-danger { color: var(--danger-color) !important; }
|
|
||||||
|
|
||||||
/* Custom Scrollbar */
|
/* Custom Scrollbar */
|
||||||
::-webkit-scrollbar {
|
::-webkit-scrollbar {
|
||||||
width: 5px;
|
width: 6px;
|
||||||
|
height: 6px;
|
||||||
}
|
}
|
||||||
::-webkit-scrollbar-track {
|
::-webkit-scrollbar-track {
|
||||||
background: var(--bg-color);
|
background: var(--bg-color);
|
||||||
}
|
}
|
||||||
::-webkit-scrollbar-thumb {
|
::-webkit-scrollbar-thumb {
|
||||||
background: var(--border-color);
|
background: #484f65;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
}
|
}
|
||||||
::-webkit-scrollbar-thumb:hover {
|
::-webkit-scrollbar-thumb:hover {
|
||||||
background: #484f65;
|
background: #5a627d;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Hover Effects */
|
/* Feature Cards */
|
||||||
.hover-scale {
|
.feature-card {
|
||||||
transition: transform 0.3s ease;
|
transition: all 0.4s ease;
|
||||||
|
border: 1px solid rgba(255,255,255,0.03) !important;
|
||||||
}
|
}
|
||||||
.hover-scale:hover {
|
.feature-card:hover {
|
||||||
transform: scale(1.05);
|
transform: translateY(-10px);
|
||||||
}
|
border-color: rgba(0, 70, 255, 0.2) !important;
|
||||||
|
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4) !important;
|
||||||
.hover-glow:hover {
|
|
||||||
box-shadow: 0 0 20px rgba(0, 70, 255, 0.2);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Layout Utilities */
|
|
||||||
.rounded-4 { border-radius: 1.5rem !important; }
|
|
||||||
.rounded-5 { border-radius: 2rem !important; }
|
|
||||||
|
|
||||||
/* Animations */
|
|
||||||
@keyframes fadeIn {
|
|
||||||
from { opacity: 0; transform: translateY(10px); }
|
|
||||||
to { opacity: 1; transform: translateY(0); }
|
|
||||||
}
|
|
||||||
.fade-in {
|
|
||||||
animation: fadeIn 0.5s ease forwards;
|
|
||||||
}
|
}
|
||||||
BIN
assets/images/hero/hero_1.jpg
Normal file
BIN
assets/images/hero/hero_1.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 92 KiB |
BIN
assets/images/hero/hero_2.jpg
Normal file
BIN
assets/images/hero/hero_2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 239 KiB |
BIN
assets/images/hero/hero_3.jpg
Normal file
BIN
assets/images/hero/hero_3.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 149 KiB |
BIN
assets/images/hero/hero_4.jpg
Normal file
BIN
assets/images/hero/hero_4.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 134 KiB |
BIN
assets/images/hero/hero_5.jpg
Normal file
BIN
assets/images/hero/hero_5.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 149 KiB |
@ -9,6 +9,7 @@ function getLang() {
|
|||||||
async function fetchMarketData() {
|
async function fetchMarketData() {
|
||||||
try {
|
try {
|
||||||
const resp = await fetch('api/market_api.php');
|
const resp = await fetch('api/market_api.php');
|
||||||
|
if (!resp.ok) throw new Error('Network response was not ok');
|
||||||
const result = await resp.json();
|
const result = await resp.json();
|
||||||
if (result.success) {
|
if (result.success) {
|
||||||
currentMarketData = result.data;
|
currentMarketData = result.data;
|
||||||
@ -20,8 +21,8 @@ async function fetchMarketData() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function updateUI() {
|
function updateUI() {
|
||||||
// Update Home Page Market List
|
// Update Home Page Market List (Market Trends Table)
|
||||||
const homeList = document.getElementById('market-trends'); // Fixed ID mismatch
|
const homeList = document.getElementById('market-trends');
|
||||||
if (homeList) {
|
if (homeList) {
|
||||||
let html = '';
|
let html = '';
|
||||||
const symbols = ['BTC', 'ETH', 'BNB', 'SOL', 'XRP', 'DOGE', 'ADA', 'TRX'];
|
const symbols = ['BTC', 'ETH', 'BNB', 'SOL', 'XRP', 'DOGE', 'ADA', 'TRX'];
|
||||||
@ -32,52 +33,62 @@ function updateUI() {
|
|||||||
const changeSign = coin.change >= 0 ? '+' : '';
|
const changeSign = coin.change >= 0 ? '+' : '';
|
||||||
const iconClass = coin.change >= 0 ? 'fa-arrow-trend-up' : 'fa-arrow-trend-down';
|
const iconClass = coin.change >= 0 ? 'fa-arrow-trend-up' : 'fa-arrow-trend-down';
|
||||||
html += `
|
html += `
|
||||||
<tr onclick="window.location.href='trade.php?symbol=${symbol}'" style="cursor: pointer;">
|
<tr onclick="window.location.href='trade.php?symbol=${symbol}'" style="cursor: pointer;" class="transition">
|
||||||
<td class="ps-4 py-3 border-0">
|
<td class="ps-4 py-4 border-0">
|
||||||
<div class="d-flex align-items-center">
|
<div class="d-flex align-items-center">
|
||||||
<img src="${coin.icon}" class="me-3" width="28" height="28">
|
<div class="bg-secondary bg-opacity-20 rounded-circle me-3 d-flex align-items-center justify-content-center" style="width: 40px; height: 40px;">
|
||||||
|
<img src="${coin.icon}" width="24" height="24">
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div class="fw-bold text-white" style="font-size: 0.9rem;">${symbol}</div>
|
<div class="fw-bold text-white">${symbol}</div>
|
||||||
<div class="text-muted small" style="font-size: 0.75rem;">${coin.name}</div>
|
<div class="text-muted small">${coin.name}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td class="py-3 border-0 text-white fw-bold" style="font-size: 0.9rem;">$${coin.price.toLocaleString(undefined, {minimumFractionDigits: 2})}</td>
|
<td class="py-4 border-0 text-white fw-bold">$${coin.price.toLocaleString(undefined, {minimumFractionDigits: 2})}</td>
|
||||||
<td class="py-3 border-0 ${changeClass} fw-bold" style="font-size: 0.9rem;">
|
<td class="py-4 border-0 ${changeClass} fw-bold">
|
||||||
<i class="fas ${iconClass} me-1"></i>
|
<i class="fas ${iconClass} me-1"></i>
|
||||||
${changeSign}${coin.change.toFixed(2)}%
|
${changeSign}${coin.change.toFixed(2)}%
|
||||||
</td>
|
</td>
|
||||||
<td class="pe-4 py-3 border-0 text-end">
|
<td class="pe-4 py-4 border-0 text-end">
|
||||||
<a href="trade.php?symbol=${symbol}" class="btn btn-sm btn-outline-primary rounded-pill px-3" style="font-size: 0.75rem;">Trade</a>
|
<a href="trade.php?symbol=${symbol}" class="btn btn-sm btn-outline-primary rounded-pill px-4 border-opacity-25" style="font-size: 0.75rem;">${getLang() === 'zh' ? '去交易' : 'Trade'}</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
homeList.innerHTML = html;
|
if (html) homeList.innerHTML = html;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update Hero Ticker if exists
|
// Update Hero Ticker (Horizontal Bar) - Improved with premium gradient & glow
|
||||||
const heroTicker = document.getElementById('hero-market-ticker');
|
const heroTicker = document.getElementById('hero-market-ticker');
|
||||||
if (heroTicker) {
|
if (heroTicker) {
|
||||||
let html = '';
|
let html = '';
|
||||||
const symbols = ['BTC', 'ETH', 'SOL', 'BNB'];
|
const symbols = ['BTC', 'ETH', 'SOL', 'BNB', 'XRP'];
|
||||||
symbols.forEach(symbol => {
|
symbols.forEach(symbol => {
|
||||||
const coin = currentMarketData[symbol];
|
const coin = currentMarketData[symbol];
|
||||||
if (coin) {
|
if (coin) {
|
||||||
const changeClass = coin.change >= 0 ? 'text-success' : 'text-danger';
|
const changeClass = coin.change >= 0 ? 'text-success' : 'text-danger';
|
||||||
|
// Using a premium gradient instead of a "white box"
|
||||||
|
const gradient = coin.change >= 0
|
||||||
|
? 'linear-gradient(135deg, rgba(14, 203, 129, 0.15) 0%, rgba(0, 70, 255, 0.05) 100%)'
|
||||||
|
: 'linear-gradient(135deg, rgba(246, 70, 93, 0.15) 0%, rgba(0, 70, 255, 0.05) 100%)';
|
||||||
|
const borderColor = coin.change >= 0 ? 'rgba(14, 203, 129, 0.2)' : 'rgba(246, 70, 93, 0.2)';
|
||||||
|
|
||||||
html += `
|
html += `
|
||||||
<div class="market-card-mini p-3 rounded-4 bg-white bg-opacity-5 border border-white border-opacity-10" onclick="window.location.href='trade.php?symbol=${symbol}'" style="cursor: pointer; min-width: 140px;">
|
<div class="ticker-item d-flex align-items-center gap-3 py-2 px-3 rounded-4 transition hover-glow-blue" onclick="window.location.href='trade.php?symbol=${symbol}'" style="cursor: pointer; background: ${gradient}; border: 1px solid ${borderColor};">
|
||||||
<div class="d-flex justify-content-between mb-2">
|
<div class="d-flex flex-column">
|
||||||
<span class="fw-bold text-white">${symbol}</span>
|
<span class="fw-bold text-white small">${symbol}/USDT</span>
|
||||||
<span class="${changeClass} small">${coin.change >= 0 ? '+' : ''}${coin.change.toFixed(2)}%</span>
|
<span class="${changeClass} x-small fw-bold">${coin.change >= 0 ? '+' : ''}${coin.change.toFixed(2)}%</span>
|
||||||
|
</div>
|
||||||
|
<div class="text-end ms-2">
|
||||||
|
<div class="text-white small fw-bold">$${coin.price.toLocaleString(undefined, {minimumFractionDigits: 2})}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="fw-bold text-white fs-5">$${coin.price.toLocaleString(undefined, {minimumFractionDigits: 2})}</div>
|
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
heroTicker.innerHTML = html;
|
if (html) heroTicker.innerHTML = html;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update Ticker
|
// Update Ticker
|
||||||
|
|||||||
@ -48,148 +48,166 @@ function mt($key) {
|
|||||||
'Contact Support' => 'Contact Support', 'Asset' => 'Asset', '24h Change' => '24h Change', '24h High' => '24h High', 'Action' => 'Action', 'All Markets' => 'All Markets',
|
'Contact Support' => 'Contact Support', 'Asset' => 'Asset', '24h Change' => '24h Change', '24h High' => '24h High', 'Action' => 'Action', 'All Markets' => 'All Markets',
|
||||||
'Real-time updates from global exchanges' => 'Real-time updates from global exchanges', 'Safe & Secure' => 'Safe & Secure', 'Industry-leading encryption and multi-signature cold storage for your digital assets.' => 'Industry-leading encryption and multi-signature cold storage for your digital assets.',
|
'Real-time updates from global exchanges' => 'Real-time updates from global exchanges', 'Safe & Secure' => 'Safe & Secure', 'Industry-leading encryption and multi-signature cold storage for your digital assets.' => 'Industry-leading encryption and multi-signature cold storage for your digital assets.',
|
||||||
'Instant Execution' => 'Instant Execution', 'Advanced matching engine processing over 100,000 transactions per second.' => 'Advanced matching engine processing over 100,000 transactions per second.',
|
'Instant Execution' => 'Instant Execution', 'Advanced matching engine processing over 100,000 transactions per second.' => 'Advanced matching engine processing over 100,000 transactions per second.',
|
||||||
'Get help whenever you need it with our around-the-clock professional customer service.' => 'Get help whenever you need it with our around-the-clock professional customer service.',
|
'Verification' => 'Verification', 'Reviewing...' => 'Reviewing...', 'Verified' => 'Verified', 'Unverified' => 'Unverified', 'Pending' => 'Pending', 'Approved' => 'Approved', 'Rejected' => 'Rejected',
|
||||||
'Trade Anywhere, Anytime' => 'Trade Anywhere, Anytime', 'Experience the full power of our exchange on your mobile device. Trade spot and futures with ease.' => 'Experience the full power of our exchange on your mobile device. Trade spot and futures with ease.',
|
'Front Side' => 'Front Side', 'Back Side' => 'Back Side', 'Selfie with ID' => 'Selfie with ID',
|
||||||
'Scan to download' => 'Scan to download', 'Compatible with iOS and Android devices.' => 'Compatible with iOS and Android devices.',
|
'Change Login Password' => 'Change Login Password', 'Change Trading Password' => 'Change Trading Password',
|
||||||
'Account Overview' => 'Account Overview', 'Total Balance' => 'Total Balance', 'Security Settings' => 'Security Settings', 'Login Password' => 'Login Password',
|
'digits' => 'digits', 'Current Password' => 'Current Password', 'New Password' => 'New Password', 'Confirm New Password' => 'Confirm New Password',
|
||||||
'Change' => 'Change', 'Verified' => 'Verified', 'Reviewing...' => 'Reviewing...', 'none' => 'Unverified', 'pending' => 'Pending', 'approved' => 'Verified',
|
'Save Changes' => 'Save Changes', 'Cancel' => 'Cancel', 'Account Overview' => 'Account Overview', 'Total Balance' => 'Total Balance',
|
||||||
'Trade with up to 100x leverage on BTC, ETH, and other major crypto pairs with professional risk management tools.' => 'Trade with up to 100x leverage on BTC, ETH, and other major crypto pairs with professional risk management tools.',
|
'Recent Activities' => 'Recent Activities', 'Time' => 'Time', 'Account Login' => 'Account Login', 'Assets Overview' => 'Assets Overview',
|
||||||
'Perpetual Contracts' => 'Perpetual Contracts', 'Identity verification submitted and is under review.' => 'Identity verification submitted and is under review.',
|
'Total Net Value' => 'Total Net Value', 'Yesterday Profit/Loss' => 'Yesterday Profit/Loss', 'Security Settings' => 'Security Settings',
|
||||||
'New passwords do not match.' => 'New passwords do not match.', 'Password must be at least 6 characters.' => 'Password must be at least 6 characters.', 'Password updated successfully.' => 'Password updated successfully.', 'Current password incorrect.' => 'Current password incorrect.',
|
'Last updated' => 'Last updated', 'Recently' => 'Recently', 'Required for withdrawals' => 'Required for withdrawals', 'Link' => 'Link',
|
||||||
'Hello! Welcome to BITCrypto. How can we help you today?' => 'Hello! Welcome to BITCrypto. How can we help you today?',
|
'Enter your real name' => 'Enter your real name', 'Enter ID/Passport Number' => 'Enter ID/Passport Number', 'Change' => 'Change',
|
||||||
'Type a message...' => 'Type a message...', 'Thank you for your message. An agent will be with you shortly.' => 'Thank you for your message. An agent will be with you shortly.',
|
'Name' => 'Name', 'Price' => 'Price', 'Trade' => 'Trade', 'View All' => 'View All', 'Market Trends' => 'Market Trends', 'Stay updated with real-time price changes' => 'Stay updated with real-time price changes',
|
||||||
'For security reasons, never share your login or trading passwords with anyone, including our support agents.' => 'For security reasons, never share your login or trading passwords with anyone, including our support agents.',
|
'Get Started' => 'Get Started', 'View Markets' => 'View Markets', 'The World\'s Leading' => 'The World\'s Leading', 'Crypto Exchange' => 'Crypto Exchange',
|
||||||
'Why Choose BITCrypto?' => 'Why Choose BITCrypto?', 'Global Liquidity' => 'Global Liquidity', 'Deep order books and high liquidity across all trading pairs for minimal slippage.' => 'Deep order books and high liquidity across all trading pairs for minimal slippage.',
|
'Secure & Trusted' => 'Secure & Trusted', 'Institutional Grade' => 'Institutional Grade', 'Deep Liquidity' => 'Deep Liquidity', 'Global Access' => 'Global Access',
|
||||||
'Advanced Trading' => 'Advanced Trading', 'Professional charting tools, multi-order types, and real-time execution.' => 'Professional charting tools, multi-order types, and real-time execution.',
|
'Perpetual Contracts' => 'Perpetual Contracts', '100x Leverage' => '100x Leverage', 'Join the Elite' => 'Join the Elite', 'Trust BITCrypto' => 'Trust BITCrypto',
|
||||||
'Trusted by Millions' => 'Trusted by Millions', 'Join a global community of traders and investors on one of the most secure platforms.' => 'Join a global community of traders and investors on one of the most secure platforms.',
|
'Funds' => 'Funds', 'Recharge' => 'Recharge', 'Withdrawal' => 'Withdrawal', 'Stop-Loss' => 'Stop-Loss', 'Take-Profit' => 'Take-Profit', 'Search' => 'Search', 'Search Pairs' => 'Search Pairs', 'Open Orders' => 'Open Orders', 'Order History' => 'Order History', 'Positions' => 'Positions', 'No open orders' => 'No open orders', 'Lots' => 'Lots', 'Cancel' => 'Cancel', 'Order submitted successfully!' => 'Order submitted successfully!', 'Please enter a valid amount.' => 'Please enter a valid amount.', 'Username' => 'Username', 'Password' => 'Password', 'Sign In' => 'Sign In', 'Sign Up' => 'Sign Up', 'Email' => 'Email', 'Already have an account?' => 'Already have an account?', 'Don\'t have an account?' => 'Don\'t have an account?', 'Confirm Password' => 'Confirm Password', 'Create Account' => 'Create Account',
|
||||||
'Our Partners' => 'Our Partners', 'Global Trust' => 'Global Trust', 'Assets Overview' => 'Assets Overview', 'BITCrypto provides a comprehensive ecosystem for crypto enthusiasts, from beginners to professional institutional traders.' => 'BITCrypto provides a comprehensive ecosystem for crypto enthusiasts, from beginners to professional institutional traders.',
|
'Trade Bitcoin, Ethereum, and hundreds of other cryptocurrencies with the lowest fees in the industry.' => 'Trade Bitcoin, Ethereum, and hundreds of other cryptocurrencies with the lowest fees in the industry.',
|
||||||
'Our Global Partners' => 'Our Global Partners', 'Primary Network' => 'Primary Network', 'Smart Contracts' => 'Smart Contracts', 'Security Audit' => 'Security Audit', 'Financial Partner' => 'Financial Partner', 'Strategic Advisor' => 'Strategic Advisor',
|
'Why Choose BITCrypto?' => 'Why Choose BITCrypto?', 'Experience the most professional trading environment with institutional-grade security and liquidity.' => 'Experience the most professional trading environment with institutional-grade security and liquidity.',
|
||||||
'Unverified' => 'Unverified', 'Verification' => 'Verification', 'digits' => 'digits', 'Search Pairs' => 'Search Pairs', 'No open orders' => 'No open orders', 'Time' => 'Time', 'Pair' => 'Pair', 'Type' => 'Type', 'Side' => 'Side', 'Filled' => 'Filled', 'Open Orders' => 'Open Orders', 'Order History' => 'Order History', 'Positions' => 'Positions',
|
|
||||||
'Total Net Value' => 'Total Net Value', 'Yesterday Profit/Loss' => 'Yesterday Profit/Loss', 'Link' => 'Link', 'Recent Activities' => 'Recent Activities', 'Account Login' => 'Account Login', 'Update failed' => 'Update failed', 'Confirm New Trading Password' => 'Confirm New Trading Password', 'New Trading Password' => 'New Trading Password',
|
|
||||||
'The World\'s Leading' => 'The World\'s Leading', 'Crypto Exchange' => 'Crypto Exchange', 'Trade Bitcoin, Ethereum, and hundreds of other cryptocurrencies with the lowest fees in the industry.' => 'Trade Bitcoin, Ethereum, and hundreds of other cryptocurrencies with the lowest fees in the industry.',
|
|
||||||
'Get Started' => 'Get Started', 'View Markets' => 'View Markets', 'Users' => 'Users', '24h Volume' => '24h Volume', 'Countries' => 'Countries',
|
|
||||||
'Stay updated with real-time price changes' => 'Stay updated with real-time price changes', 'View All' => 'View All', 'Name' => 'Name',
|
|
||||||
'Experience the most professional trading environment' => 'Experience the most professional trading environment',
|
|
||||||
'Multi-sig Cold Storage' => 'Multi-sig Cold Storage', 'DDoS Protection' => 'DDoS Protection', '2FA Security' => '2FA Security',
|
'Multi-sig Cold Storage' => 'Multi-sig Cold Storage', 'DDoS Protection' => 'DDoS Protection', '2FA Security' => '2FA Security',
|
||||||
'Ultra-low Latency' => 'Ultra-low Latency', 'High Liquidity' => 'High Liquidity', 'Zero Slippage' => 'Zero Slippage',
|
'Ultra-low Latency' => 'Ultra-low Latency', 'High Liquidity' => 'High Liquidity', 'Zero Slippage' => 'Zero Slippage',
|
||||||
'Multi-language Support' => 'Multi-language Support', 'Live Chat' => 'Live Chat', 'Fast Response' => 'Fast Response',
|
'Multi-language Support' => 'Multi-language Support', 'Live Chat' => 'Live Chat', 'Fast Response' => 'Fast Response',
|
||||||
'Trusted by industry leaders worldwide' => 'Trusted by industry leaders worldwide', 'Payment Partner' => 'Payment Partner', 'Infrastructure' => 'Infrastructure',
|
'Trade Anywhere, Anytime' => 'Trade Anywhere, Anytime', 'Experience the full power of our exchange on your mobile device. Trade spot and futures with ease.' => 'Experience the full power of our exchange on your mobile device. Trade spot and futures with ease.',
|
||||||
'Download on the' => 'Download on the', 'Get it on' => 'Get it on', 'Compatible with iOS and Android devices.' => 'Compatible with iOS and Android devices.',
|
'Download on the' => 'Download on the', 'Get it on' => 'Get it on', 'Scan to download' => 'Scan to download', 'Compatible with iOS and Android devices.' => 'Compatible with iOS and Android devices.',
|
||||||
'Trade Anywhere' => 'Trade Anywhere', 'Download BITCrypto mobile app for iOS and Android' => 'Download BITCrypto mobile app for iOS and Android',
|
'Global Trust' => 'Global Trust', 'Our Global Partners' => 'Our Global Partners', 'Smart Contracts' => 'Smart Contracts', 'Primary Network' => 'Primary Network', 'Security Audit' => 'Security Audit', 'Financial Partner' => 'Financial Partner', 'Strategic Advisor' => 'Strategic Advisor',
|
||||||
'Secure & Trusted' => 'Secure & Trusted', 'Your assets are protected by industry-leading security' => 'Your assets are protected by industry-leading security',
|
'Please fill in all fields.' => 'Please fill in all fields.', 'Invalid username or password.' => 'Invalid username or password.', 'Login failed.' => 'Login failed.', 'Login to BITCrypto' => 'Login to BITCrypto', 'Enter username' => 'Enter username', 'Enter password' => 'Enter password', 'Remember me' => 'Remember me', 'Forgot password?' => 'Forgot password?', 'Passwords do not match.' => 'Passwords do not match.', 'You must agree to the terms and privacy policy.' => 'You must agree to the terms and privacy policy.', 'Username already exists.' => 'Username already exists.', 'Username / Email' => 'Username / Email', 'Repeat password' => 'Repeat password', 'I have read and agree to the' => 'I have read and agree to the', 'Join the world\'s leading crypto exchange' => 'Join the world\'s leading crypto exchange', 'Search assets...' => 'Search assets...', 'No assets found' => 'No assets found', 'Pair' => 'Pair', 'Side' => 'Side', 'Filled' => 'Filled',
|
||||||
'Crypto Deposit' => 'Crypto Deposit', 'Fiat Deposit' => 'Fiat Deposit', 'Select Currency' => 'Select Currency', 'Deposit Amount' => 'Deposit Amount', 'Submit Deposit' => 'Submit Deposit',
|
|
||||||
'Select Fiat Currency' => 'Select Fiat Currency', 'Confirm Deposit' => 'Confirm Deposit',
|
|
||||||
'Order ID' => 'Order ID',
|
|
||||||
'A local merchant has been found. Matching account details...' => 'A local merchant has been found. Matching account details...',
|
|
||||||
'Welcome! I am your dedicated matching assistant. I am currently verifying the liquidity provider for your deposit.' => 'Welcome! I am your dedicated matching assistant. I am currently verifying the liquidity provider for your deposit.',
|
|
||||||
'Matching successful. I have secured a high-priority account for your transaction. Please find the details on the right.' => 'Matching successful. I have secured a high-priority account for your transaction. Please find the details on the right.',
|
|
||||||
'Please upload your payment receipt/screenshot first.' => 'Please upload your payment receipt/screenshot first.',
|
|
||||||
'Thank you for the update. We have received your payment proof and are now verifying the transaction on the blockchain. Your balance will be updated shortly.' => 'Thank you for the update. We have received your payment proof and are now verifying the transaction on the blockchain. Your balance will be updated shortly.',
|
|
||||||
'Receipt uploaded successfully. Waiting for admin approval.' => 'Receipt uploaded successfully. Waiting for admin approval.',
|
'Receipt uploaded successfully. Waiting for admin approval.' => 'Receipt uploaded successfully. Waiting for admin approval.',
|
||||||
'Network' => 'Network', 'Scan QR code to deposit' => 'Scan QR code to deposit', 'Upload screenshot of your transaction' => 'Upload screenshot of your transaction', 'Instant' => 'Instant', 'Regional Support' => 'Regional Support',
|
'Deposit Assets' => 'Deposit Assets', 'Choose your preferred method to fund your account' => 'Choose your preferred method to fund your account',
|
||||||
'We will match you with a local merchant to facilitate your deposit in your local currency.' => 'We will match you with a local merchant to facilitate your deposit in your local currency.',
|
'Crypto Deposit' => 'Crypto Deposit', 'Fiat Deposit' => 'Fiat Deposit', 'Instant' => 'Instant', 'Regional Support' => 'Regional Support',
|
||||||
'Processing Time: 10-30 mins' => 'Processing Time: 10-30 mins', 'Exchange Rate' => 'Exchange Rate', 'Service Fee' => 'Service Fee', 'Free' => 'Free',
|
'Select Currency' => 'Select Currency', 'Network' => 'Network', 'Deposit Address' => 'Deposit Address', 'Scan QR code to deposit' => 'Scan QR code to deposit',
|
||||||
'Secure Payment' => 'Secure Payment', 'All transactions are encrypted' => 'All transactions are encrypted', 'Fast Arrival' => 'Fast Arrival', 'Most deposits arrive in mins' => 'Most deposits arrive in mins', 'Live help for your deposit' => 'Live help for your deposit',
|
'Deposit Amount' => 'Deposit Amount', 'Upload screenshot of your transaction' => 'Upload screenshot of your transaction', 'Submit Deposit' => 'Submit Deposit',
|
||||||
'Address copied to clipboard' => 'Address copied to clipboard'
|
'Select Fiat Currency' => 'Select Fiat Currency', 'We will match you with a local merchant to facilitate your deposit in your local currency.' => 'We will match you with a local merchant to facilitate your deposit in your local currency.',
|
||||||
|
'Est. Arrival' => 'Est. Arrival', 'Processing Time: 10-30 mins' => 'Processing Time: 10-30 mins', 'Exchange Rate' => 'Exchange Rate',
|
||||||
|
'Service Fee' => 'Service Fee', 'Free' => 'Free', 'Confirm Deposit' => 'Confirm Deposit', 'Secure Payment' => 'Secure Payment',
|
||||||
|
'All transactions are encrypted' => 'All transactions are encrypted', 'Fast Arrival' => 'Fast Arrival', 'Most deposits arrive in mins' => 'Most deposits arrive in mins',
|
||||||
|
'Address copied to clipboard' => 'Address copied to clipboard', 'Withdrawal Address' => 'Withdrawal Address', 'Notes' => 'Notes',
|
||||||
|
'Withdrawals are processed within 10-30 minutes.' => 'Withdrawals are processed within 10-30 minutes.',
|
||||||
|
'Minimum withdrawal amount is 10 USDT.' => 'Minimum withdrawal amount is 10 USDT.',
|
||||||
|
'Ensure the receiving address supports the TRC20 network.' => 'Ensure the receiving address supports the TRC20 network.',
|
||||||
|
'Current password incorrect.' => 'Current password incorrect.',
|
||||||
|
'Identity verification submitted and is under review.' => 'Identity verification submitted and is under review.',
|
||||||
|
'New passwords do not match.' => 'New passwords do not match.', 'Password must be at least 6 characters.' => 'Password must be at least 6 characters.',
|
||||||
|
'Password updated successfully.' => 'Password updated successfully.', 'Update failed' => 'Update failed',
|
||||||
|
'Login Password' => 'Login Password', '2FA Authentication' => '2FA Authentication', 'Google Authenticator' => 'Google Authenticator',
|
||||||
|
'Your identity documents are being verified by our team.' => 'Your identity documents are being verified by our team.',
|
||||||
|
'Submitted Details' => 'Submitted Details', 'Verified Identity' => 'Verified Identity',
|
||||||
|
'Your account is fully verified for all features.' => 'Your account is fully verified for all features.',
|
||||||
|
'Current Trading Password' => 'Current Trading Password', 'New Trading Password' => 'New Trading Password',
|
||||||
|
'Confirm New Trading Password' => 'Confirm New Trading Password', 'Withdrawal request submitted successfully.' => 'Withdrawal request submitted successfully.',
|
||||||
|
'Insufficient balance.' => 'Insufficient balance.', 'Why Choose BITCrypto?' => 'Why Choose BITCrypto?',
|
||||||
|
'Experience the most professional trading environment with institutional-grade security and liquidity.' => 'Experience the most professional trading environment with institutional-grade security and liquidity.',
|
||||||
|
'Multi-sig Cold Storage' => 'Multi-sig Cold Storage', 'DDoS Protection' => 'DDoS Protection', '2FA Security' => '2FA Security',
|
||||||
|
'Ultra-low Latency' => 'Ultra-low Latency', 'High Liquidity' => 'High Liquidity', 'Zero Slippage' => 'Zero Slippage',
|
||||||
|
'Multi-language Support' => 'Multi-language Support', 'Live Chat' => 'Live Chat', 'Fast Response' => 'Fast Response',
|
||||||
|
'Trade Anywhere, Anytime' => 'Trade Anywhere, Anytime', 'Experience the full power of our exchange on your mobile device. Trade spot and futures with ease.' => 'Experience the full power of our exchange on your mobile device. Trade spot and futures with ease.',
|
||||||
|
'Download on the' => 'Download on the', 'Get it on' => 'Get it on', 'Scan to download' => 'Scan to download', 'Compatible with iOS and Android devices.' => 'Compatible with iOS and Android devices.',
|
||||||
|
'Global Trust' => 'Global Trust', 'Our Global Partners' => 'Our Global Partners', 'Smart Contracts' => 'Smart Contracts', 'Primary Network' => 'Primary Network', 'Security Audit' => 'Security Audit', 'Financial Partner' => 'Financial Partner', 'Strategic Advisor' => 'Strategic Advisor'
|
||||||
],
|
],
|
||||||
'zh' => [
|
'zh' => [
|
||||||
'Home' => '首页', 'Spot' => '现货', 'Perpetual' => '永续合约', 'Markets' => '市场行情', 'Exchange' => '快捷换币',
|
'Home' => '首页', 'Spot' => '币币交易', 'Perpetual' => '合约交易', 'Markets' => '行情', 'Exchange' => '交易',
|
||||||
'Login' => '登录', 'Register' => '注册', 'Profile' => '个人中心', 'Logout' => '退出登录',
|
'Login' => '登录', 'Register' => '注册', 'Profile' => '个人中心', 'Logout' => '退出登录',
|
||||||
'Deposit' => '充值', 'Withdraw' => '提现', 'Assets' => '资产总览', 'Security' => '安全设置',
|
'Deposit' => '充值', 'Withdraw' => '提现', 'Assets' => '资产', 'Security' => '安全',
|
||||||
'Buy' => '买入', 'Sell' => '卖出', 'Limit' => '限价', 'Market' => '市价', 'Price' => '价格',
|
'Buy' => '买入', 'Sell' => '卖出', 'Limit' => '限价', 'Market' => '市价', 'Price' => '价格',
|
||||||
'Amount' => '数量', 'Total' => '成交额', 'Available' => '可用余额', 'Trade' => '交易',
|
'Amount' => '数量', 'Total' => '总额', 'Available' => '可用', 'Trade' => '交易',
|
||||||
'Market Trends' => '市场趋势', 'Real-time Prices' => '实时行情', 'High' => '最高', 'Low' => '最低',
|
'Market Trends' => '市场趋势', 'Real-time Prices' => '实时价格', 'High' => '最高', 'Low' => '最低',
|
||||||
'Download App' => '下载APP', 'Customer Service' => '在线客服',
|
'Download App' => '下载APP', 'Customer Service' => '客服中心',
|
||||||
'Identity Verification' => '实名认证', 'Trading Password' => '资金密码',
|
'Identity Verification' => '实名认证', 'Trading Password' => '交易密码',
|
||||||
'Success' => '操作成功', 'Error' => '操作失败', 'Matching Account' => '匹配账户',
|
'Success' => '成功', 'Error' => '错误', 'Matching Account' => '匹配账号',
|
||||||
'Establishing secure connection with liquidity provider...' => '正在与流动性提供商建立安全连接...',
|
'Establishing secure connection with liquidity provider...' => '正在与流动性提供商建立安全连接...',
|
||||||
'Awaiting merchant confirmation...' => '等待商家确认...',
|
'Awaiting merchant confirmation...' => '等待商家确认...',
|
||||||
'Matching in progress' => '正在匹配中',
|
'Matching in progress' => '正在匹配中',
|
||||||
'The specialized account for this transaction will be provided by our agent shortly.' => '该交易的专用账户将由我们的代理稍后提供。',
|
'The specialized account for this transaction will be provided by our agent shortly.' => '交易专用账号将由我们的代理稍后提供。',
|
||||||
'Transfer the exact amount. Upload proof below.' => '请转账准确金额。在下方上传凭证。',
|
'Transfer the exact amount. Upload proof below.' => '请转入准确金额,并在下方上传凭证。',
|
||||||
'Bank Name' => '银行名称', 'Account Number' => '账号', 'Beneficiary' => '收款人', 'Reference' => '备注/附言',
|
'Bank Name' => '银行名称', 'Account Number' => '账号', 'Beneficiary' => '收款人', 'Reference' => '备注',
|
||||||
'Copy' => '复制', 'Upload Proof' => '上传凭证', 'Selected' => '已选择', 'Transfer Completed' => '我已完成转账',
|
'Copy' => '复制', 'Upload Proof' => '上传凭证', 'Selected' => '已选择', 'Transfer Completed' => '转账已完成',
|
||||||
'Your transfer is being reviewed. ETA: 10-20 mins.' => '您的转账正在审核中。预计时间:10-20分钟。',
|
'Your transfer is being reviewed. ETA: 10-20 mins.' => '您的转账正在审核中,预计 10-20 分钟。',
|
||||||
'Back to Wallet' => '返回钱包', 'Matched & Active' => '已匹配并激活',
|
'Back to Wallet' => '返回钱包', 'Matched & Active' => '已匹配并激活',
|
||||||
'Services' => '服务', 'Spot Trading' => '现货交易', 'Futures Trading' => '期货交易',
|
'Services' => '服务', 'Spot Trading' => '币币交易', 'Futures Trading' => '合约交易',
|
||||||
'Support' => '支持', 'Help Center' => '帮助中心', 'About Us' => '关于我们', 'Privacy Policy' => '隐私政策', 'Terms of Service' => '服务条款',
|
'Support' => '支持', 'Help Center' => '帮助中心', 'About Us' => '关于我们', 'Privacy Policy' => '隐私政策', 'Terms of Service' => '服务条款',
|
||||||
'System Status' => '系统状态', 'Normal' => '正常', 'Overview' => '概览', 'Full Name' => '真实姓名', 'ID Number' => '证件号码', 'Submit' => '提交', 'Next-Gen Trading Engine' => '下一代交易引擎',
|
'System Status' => '系统状态', 'Normal' => '正常', 'Overview' => '概览', 'Full Name' => '姓名', 'ID Number' => '身份证号', 'Submit' => '提交', 'Next-Gen Trading Engine' => '次世代交易引擎',
|
||||||
'Experience ultra-low latency and institutional-grade liquidity on our professional K-line trading platform.' => '在我们的专业K线交易平台上体验超低延迟和机构级流动性。',
|
'Experience ultra-low latency and institutional-grade liquidity on our professional K-line trading platform.' => '在我们的专业K线交易平台上体验极低延迟和机构级流动性。',
|
||||||
'Register Now' => '立即注册', 'Start Trading' => '开始交易', 'Go to Futures' => '前往合约', 'Global Crypto Hub' => '全球加密枢纽',
|
'Register Now' => '立即注册', 'Start Trading' => '开始交易', 'Go to Futures' => '前往合约', 'Global Crypto Hub' => '全球加密枢纽',
|
||||||
'Access real-time global market data and execute trades across multiple asset classes with one unified account.' => '通过一个统一的账户访问实时全球市场数据并跨多个资产类别执行交易。',
|
'Access real-time global market data and execute trades across multiple asset classes with one unified account.' => '通过一个统一账户访问实时全球市场数据并执行跨多个资产类别的交易。',
|
||||||
'Secure Asset Custody' => '安全的资产托管', 'Your funds are safe with our institutional-grade security, multi-sig cold storage, and comprehensive insurance fund.' => '您的资金在我们机构级的安全性、多重签名冷存储和全面的保险基金保护下非常安全。',
|
'Secure Asset Custody' => '安全资产托管', 'Your funds are safe with our institutional-grade security, multi-sig cold storage, and comprehensive insurance fund.' => '您的资金在我们的机构级安全、多重签名冷存储和全面保险基金的保护下非常安全。',
|
||||||
'Security Center' => '安全中心', '24/7 Global Support' => '24/7 全球支持', 'Our dedicated professional support team is available around the clock to assist you in multiple languages.' => '我们专业的支持团队全天候为您提供多种语言的帮助。',
|
'Security Center' => '安全中心', '24/7 Global Support' => '24/7 全球支持', 'Our dedicated professional support team is available around the clock to assist you in multiple languages.' => '我们专业的支持团队全天候为您提供多种语言的帮助。',
|
||||||
'Contact Support' => '联系支持', 'Asset' => '资产', '24h Change' => '24h 涨跌', '24h High' => '24h 最高', 'Action' => '操作', 'All Markets' => '全部市场',
|
'Contact Support' => '联系支持', 'Asset' => '资产', '24h Change' => '24h涨跌', '24h High' => '24h最高', 'Action' => '操作', 'All Markets' => '所有市场',
|
||||||
'Real-time updates from global exchanges' => '来自全球交易所的实时更新', 'Safe & Secure' => '安全可靠', 'Industry-leading encryption and multi-signature cold storage for your digital assets.' => '为您的数字资产提供行业领先的加密和多重签名冷存储。',
|
'Real-time updates from global exchanges' => '来自全球交易所的实时更新', 'Safe & Secure' => '安全可靠', 'Industry-leading encryption and multi-signature cold storage for your digital assets.' => '为您的数字资产提供行业领先的加密和多重签名冷存储。',
|
||||||
'Instant Execution' => '即时执行', 'Advanced matching engine processing over 100,000 transactions per second.' => '每秒处理超过 100,000 笔交易的先进撮合引擎。',
|
'Instant Execution' => '即时执行', 'Advanced matching engine processing over 100,000 transactions per second.' => '先进的撮合引擎,每秒处理超过100,000笔交易。',
|
||||||
'Get help whenever you need it with our around-the-clock professional customer service.' => '通过我们全天候的专业客户服务,随时获得您需要的帮助。',
|
'Verification' => '实名认证', 'Reviewing...' => '审核中...', 'Verified' => '已认证', 'Unverified' => '未认证', 'Pending' => '审核中', 'Approved' => '已通过', 'Rejected' => '已拒绝',
|
||||||
'Trade Anywhere, Anytime' => '随时随地进行交易', 'Experience the full power of our exchange on your mobile device. Trade spot and futures with ease.' => '在您的移动设备上体验我们交易所的全部功能。轻松交易现货和期货。',
|
'Front Side' => '正面', 'Back Side' => '反面', 'Selfie with ID' => '手持证件照',
|
||||||
'Scan to download' => '扫码下载', 'Compatible with iOS and Android devices.' => '兼容 iOS 和 Android 设备。',
|
'Change Login Password' => '修改登录密码', 'Change Trading Password' => '修改交易密码',
|
||||||
'Account Overview' => '账户概览', 'Total Balance' => '总资产', 'Security Settings' => '安全设置', 'Login Password' => '登录密码',
|
'digits' => '位数字', 'Current Password' => '当前密码', 'New Password' => '新密码', 'Confirm New Password' => '确认新密码',
|
||||||
'Change' => '修改', 'Verified' => '已认证', 'Reviewing...' => '审核中...', 'none' => '未认证', 'pending' => '审核中', 'approved' => '已认证',
|
'Save Changes' => '保存修改', 'Cancel' => '取消', 'Account Overview' => '账户概览', 'Total Balance' => '总余额',
|
||||||
'Trade with up to 100x leverage on BTC, ETH, and other major crypto pairs with professional risk management tools.' => '在 BTC、ETH 和其他主要加密货币对上使用高达 100 倍的杠杆进行交易,并配备专业的风险管理工具。',
|
'Recent Activities' => '最近活动', 'Time' => '时间', 'Account Login' => '账号登录', 'Assets Overview' => '资产概览',
|
||||||
'Perpetual Contracts' => '永续合约', 'Identity verification submitted and is under review.' => '身份认证已提交,正在审核中。',
|
'Total Net Value' => '总净值', 'Yesterday Profit/Loss' => '昨日盈亏', 'Security Settings' => '安全设置',
|
||||||
'New passwords do not match.' => '新密码不匹配。', 'Password must be at least 6 characters.' => '密码长度必须至少为6位。', 'Password updated successfully.' => '密码更新成功。', 'Current password incorrect.' => '当前密码不正确。',
|
'Last updated' => '最后更新', 'Recently' => '最近', 'Required for withdrawals' => '提现必填', 'Link' => '去绑定',
|
||||||
'Hello! Welcome to BITCrypto. How can we help you today?' => '您好!欢迎来到 BITCrypto。今天有什么可以帮您的?',
|
'Enter your real name' => '输入真实姓名', 'Enter ID/Passport Number' => '输入证件号码', 'Change' => '去修改',
|
||||||
'Type a message...' => '输入消息...', 'Thank you for your message. An agent will be with you shortly.' => '感谢您的消息,客服人员稍后将为您提供服务。',
|
'Name' => '币种', 'Price' => '价格', 'Trade' => '去交易', 'View All' => '查看全部', 'Market Trends' => '市场趋势', 'Stay updated with real-time price changes' => '实时掌握价格动态',
|
||||||
'For security reasons, never share your login or trading passwords with anyone, including our support agents.' => '出于安全考虑,请勿向任何人(包括我们的客服人员)透露您的登录密码或交易密码。',
|
'Get Started' => '立即开始', 'View Markets' => '查看行情', 'The World\'s Leading' => '全球领先的', 'Crypto Exchange' => '数字货币交易所',
|
||||||
'Why Choose BITCrypto?' => '为什么选择 BITCrypto?', 'Global Liquidity' => '全球流动性', 'Deep order books and high liquidity across all trading pairs for minimal slippage.' => '所有交易对均拥有深度订单簿和高流动性,确保最小滑点。',
|
'Secure & Trusted' => '安全可信', 'Institutional Grade' => '机构级水准', 'Deep Liquidity' => '深度流动性', 'Global Access' => '全球访问',
|
||||||
'Advanced Trading' => '高级交易', 'Professional charting tools, multi-order types, and real-time execution.' => '专业的图表工具、多种订单类型和实时执行。',
|
'Perpetual Contracts' => '永续合约', '100x Leverage' => '100倍杠杆', 'Join the Elite' => '加入精英行列', 'Trust BITCrypto' => '信赖 BITCrypto',
|
||||||
'Trusted by Millions' => '数百万用户的信赖', 'Join a global community of traders and investors on one of the most secure platforms.' => '加入全球交易者和投资者的社区,在最安全的平台之一上进行交易。',
|
'Funds' => '资金', 'Recharge' => '充值', 'Withdrawal' => '提现', 'Stop-Loss' => '止损', 'Take-Profit' => '止盈', 'Search' => '搜索', 'Search Pairs' => '搜索币对', 'Open Orders' => '当前委托', 'Order History' => '历史委托', 'Positions' => '当前持仓', 'No open orders' => '暂无挂单', 'Lots' => '张数', 'Cancel' => '撤单', 'Order submitted successfully!' => '订单提交成功!', 'Please enter a valid amount.' => '请输入有效数量。', 'Username' => '用户名', 'Password' => '密码', 'Sign In' => '登录', 'Sign Up' => '注册', 'Email' => '电子邮箱', 'Already have an account?' => '已有账号?', 'Don\'t have an account?' => '还没有账号?', 'Confirm Password' => '确认密码', 'Create Account' => '创建账号',
|
||||||
'Our Partners' => '合作伙伴', 'Global Trust' => '全球信任', 'Assets Overview' => '资产总览', 'BITCrypto provides a comprehensive ecosystem for crypto enthusiasts, from beginners to professional institutional traders.' => 'BITCrypto 为加密爱好者提供了一个全面的生态系统,从初学者到专业的机构交易者都能在这里找到适合自己的工具。',
|
'Trade Bitcoin, Ethereum, and hundreds of other cryptocurrencies with the lowest fees in the industry.' => '以行业最低的费用交易比特币、以太坊和数百种其他加密货币。',
|
||||||
'Our Global Partners' => '我们的全球合作伙伴', 'Primary Network' => '主要网络', 'Smart Contracts' => '智能合约', 'Security Audit' => '安全审计', 'Financial Partner' => '金融伙伴', 'Strategic Advisor' => '战略顾问',
|
'Why Choose BITCrypto?' => '为什么选择 BITCrypto?', 'Experience the most professional trading environment with institutional-grade security and liquidity.' => '体验最专业的交易环境,拥有机构级的安全性和流动性。',
|
||||||
'Unverified' => '未认证', 'Verification' => '实名认证', 'digits' => '位数字', 'Search Pairs' => '搜索币种', 'No open orders' => '无挂单', 'Time' => '时间', 'Pair' => '币种', 'Type' => '类型', 'Side' => '方向', 'Filled' => '已成交', 'Open Orders' => '当前挂单', 'Order History' => '历史订单', 'Positions' => '当前仓位',
|
|
||||||
'Total Net Value' => '总资产折算', 'Yesterday Profit/Loss' => '昨日盈亏', 'Link' => '去绑定', 'Recent Activities' => '最近动态', 'Account Login' => '账号登录', 'Update failed' => '更新失败', 'Confirm New Trading Password' => '确认新资金密码', 'New Trading Password' => '新资金密码',
|
|
||||||
'The World\'s Leading' => '全球领先的', 'Crypto Exchange' => '数字资产交易所', 'Trade Bitcoin, Ethereum, and hundreds of other cryptocurrencies with the lowest fees in the industry.' => '在行业最低费率的交易所交易比特币、以太坊和数百种其他加密货币。',
|
|
||||||
'Get Started' => '立即开始', 'View Markets' => '查看行情', 'Users' => '用户', '24h Volume' => '24h 成交额', 'Countries' => '覆盖国家',
|
|
||||||
'Stay updated with real-time price changes' => '实时掌握价格波动', 'View All' => '查看全部', 'Name' => '币种名称',
|
|
||||||
'Experience the most professional trading environment' => '体验最专业的交易环境',
|
|
||||||
'Multi-sig Cold Storage' => '多重签名冷存储', 'DDoS Protection' => 'DDoS 防护', '2FA Security' => '双重身份验证',
|
'Multi-sig Cold Storage' => '多重签名冷存储', 'DDoS Protection' => 'DDoS 防护', '2FA Security' => '双重身份验证',
|
||||||
'Ultra-low Latency' => '极低延迟', 'High Liquidity' => '高流动性', 'Zero Slippage' => '零滑点',
|
'Ultra-low Latency' => '极低延迟', 'High Liquidity' => '高流动性', 'Zero Slippage' => '零滑点',
|
||||||
'Multi-language Support' => '多语言支持', 'Live Chat' => '实时聊天', 'Fast Response' => '极速响应',
|
'Multi-language Support' => '多语言支持', 'Live Chat' => '在线聊天', 'Fast Response' => '快速响应',
|
||||||
'Trusted by industry leaders worldwide' => '全球行业领导者的信赖', 'Payment Partner' => '支付合作伙伴', 'Infrastructure' => '基础设施',
|
'Trade Anywhere, Anytime' => '随时随地交易', 'Experience the full power of our exchange on your mobile device. Trade spot and futures with ease.' => '在您的移动设备上体验我们交易所的全部功能。轻松进行现货和合约交易。',
|
||||||
'Download on the' => '在 App Store 下载', 'Get it on' => '在 Google Play 下载', 'Compatible with iOS and Android devices.' => '兼容 iOS 和 Android 设备。',
|
'Download on the' => '在 App Store 下载', 'Get it on' => '在 Google Play 获取', 'Scan to download' => '扫描下载', 'Compatible with iOS and Android devices.' => '兼容 iOS 和 Android 设备。',
|
||||||
'Trade Anywhere' => '随时随地交易', 'Download BITCrypto mobile app for iOS and Android' => '下载 BITCrypto 移动端 App,支持 iOS 和 Android',
|
'Global Trust' => '全球信任', 'Our Global Partners' => '我们的全球合作伙伴', 'Smart Contracts' => '智能合约', 'Primary Network' => '主网', 'Security Audit' => '安全审计', 'Financial Partner' => '金融合作伙伴', 'Strategic Advisor' => '战略顾问',
|
||||||
'Secure & Trusted' => '安全可靠', 'Your assets are protected by industry-leading security' => '您的资产受到行业领先的安全保护',
|
'Please fill in all fields.' => '请填写所有字段。', 'Invalid username or password.' => '用户名或密码无效。', 'Login failed.' => '登录失败。', 'Login to BITCrypto' => '登录到 BITCrypto', 'Enter username' => '输入用户名', 'Enter password' => '输入密码', 'Remember me' => '记住我', 'Forgot password?' => '忘记密码?', 'Passwords do not match.' => '密码不匹配。', 'You must agree to the terms and privacy policy.' => '您必须同意服务条款和隐私政策。', 'Username already exists.' => '用户名已存在。', 'Username / Email' => '用户名 / 邮箱', 'Repeat password' => '重复密码', 'I have read and agree to the' => '我已阅读并同意', 'Join the world\'s leading crypto exchange' => '加入全球领先的加密交易所', 'Search assets...' => '搜索资产...', 'No assets found' => '未找到资产', 'Pair' => '交易对', 'Side' => '方向', 'Filled' => '已成交',
|
||||||
'Crypto Deposit' => '数字货币充值', 'Fiat Deposit' => '法币充值', 'Select Currency' => '选择币种', 'Deposit Amount' => '充值金额', 'Submit Deposit' => '提交充值',
|
|
||||||
'Select Fiat Currency' => '选择法币', 'Confirm Deposit' => '确认充值',
|
|
||||||
'Order ID' => '订单编号',
|
|
||||||
'A local merchant has been found. Matching account details...' => '已找到本地商家。正在匹配账户详情...',
|
|
||||||
'Welcome! I am your dedicated matching assistant. I am currently verifying the liquidity provider for your deposit.' => '欢迎!我是您的专属匹配助手。我目前正在为您验证流动性提供商。',
|
|
||||||
'Matching successful. I have secured a high-priority account for your transaction. Please find the details on the right.' => '匹配成功。我已为您的交易锁定了一个高优先级账户。请查看右侧的详细信息。',
|
|
||||||
'Please upload your payment receipt/screenshot first.' => '请先上传您的付款收据/截图。',
|
|
||||||
'Thank you for the update. We have received your payment proof and are now verifying the transaction on the blockchain. Your balance will be updated shortly.' => '感谢您的反馈。我们已收到您的付款凭证,目前正在区块链上验证该交易。您的余额稍后将更新。',
|
|
||||||
'Receipt uploaded successfully. Waiting for admin approval.' => '凭证上传成功。等待管理员审核。',
|
'Receipt uploaded successfully. Waiting for admin approval.' => '凭证上传成功。等待管理员审核。',
|
||||||
'Network' => '网络', 'Scan QR code to deposit' => '扫码充值', 'Upload screenshot of your transaction' => '上传交易截图', 'Instant' => '秒到账', 'Regional Support' => '区域支持',
|
'Deposit Assets' => '充值资产', 'Choose your preferred method to fund your account' => '选择您喜欢的充值方式',
|
||||||
'We will match you with a local merchant to facilitate your deposit in your local currency.' => '我们将为您匹配本地商家,方便您以本地货币进行充值。',
|
'Crypto Deposit' => '数字货币充值', 'Fiat Deposit' => '法币充值', 'Instant' => '即时', 'Regional Support' => '地区支持',
|
||||||
'Processing Time: 10-30 mins' => '处理时间:10-30 分钟', 'Exchange Rate' => '汇率', 'Service Fee' => '手续费', 'Free' => '免费',
|
'Select Currency' => '选择币种', 'Network' => '网络', 'Deposit Address' => '充值地址', 'Scan QR code to deposit' => '扫描二维码进行充值',
|
||||||
'Secure Payment' => '安全支付', 'All transactions are encrypted' => '所有交易均已加密', 'Fast Arrival' => '极速到账', 'Most deposits arrive in mins' => '大多数充值在几分钟内到账', 'Live help for your deposit' => '充值实时帮助',
|
'Deposit Amount' => '充值金额', 'Upload screenshot of your transaction' => '上传您的交易截图', 'Submit Deposit' => '提交充值',
|
||||||
'Address copied to clipboard' => '地址已复制到剪贴板'
|
'Select Fiat Currency' => '选择法币', 'We will match you with a local merchant to facilitate your deposit in your local currency.' => '我们将为您匹配当地商家,以便您以当地货币进行充值。',
|
||||||
|
'Est. Arrival' => '预计到账', 'Processing Time: 10-30 mins' => '处理时间:10-30 分钟', 'Exchange Rate' => '汇率',
|
||||||
|
'Service Fee' => '服务费', 'Free' => '免费', 'Confirm Deposit' => '确认充值', 'Secure Payment' => '安全支付',
|
||||||
|
'All transactions are encrypted' => '所有交易均已加密', 'Fast Arrival' => '快速到账', 'Most deposits arrive in mins' => '大多数充值在几分钟内到账',
|
||||||
|
'Address copied to clipboard' => '地址已复制到剪贴板', 'Withdrawal Address' => '提现地址', 'Notes' => '注意事项',
|
||||||
|
'Withdrawals are processed within 10-30 minutes.' => '提现将在 10-30 分钟内处理。',
|
||||||
|
'Minimum withdrawal amount is 10 USDT.' => '最低提现金额为 10 USDT。',
|
||||||
|
'Ensure the receiving address supports the TRC20 network.' => '确保接收地址支持 TRC20 网络。',
|
||||||
|
'Current password incorrect.' => '当前密码错误。',
|
||||||
|
'Identity verification submitted and is under review.' => '身份认证已提交,正在审核中。',
|
||||||
|
'New passwords do not match.' => '新密码不匹配。', 'Password must be at least 6 characters.' => '密码长度必须至少为 6 个字符。',
|
||||||
|
'Password updated successfully.' => '密码更新成功。', 'Update failed' => '更新失败',
|
||||||
|
'Login Password' => '登录密码', '2FA Authentication' => '双重身份验证', 'Google Authenticator' => '谷歌身份验证器',
|
||||||
|
'Your identity documents are being verified by our team.' => '我们的团队正在验证您的身份文件。',
|
||||||
|
'Submitted Details' => '已提交详情', 'Verified Identity' => '已验证身份',
|
||||||
|
'Your account is fully verified for all features.' => '您的账户已完全通过验证,可以使用所有功能。',
|
||||||
|
'Current Trading Password' => '当前交易密码', 'New Trading Password' => '新交易密码',
|
||||||
|
'Confirm New Trading Password' => '确认新交易密码', 'Withdrawal request submitted successfully.' => '提现申请提交成功。',
|
||||||
|
'Insufficient balance.' => '余额不足。', 'Why Choose BITCrypto?' => '为什么选择 BITCrypto?',
|
||||||
|
'Experience the most professional trading environment with institutional-grade security and liquidity.' => '体验最专业的交易环境,拥有机构级的安全性和流动性。',
|
||||||
|
'Multi-sig Cold Storage' => '多重签名冷存储', 'DDoS Protection' => 'DDoS 防护', '2FA Security' => '双重身份验证',
|
||||||
|
'Ultra-low Latency' => '极低延迟', 'High Liquidity' => '高流动性', 'Zero Slippage' => '零滑点',
|
||||||
|
'Multi-language Support' => '多语言支持', 'Live Chat' => '在线聊天', 'Fast Response' => '快速响应',
|
||||||
|
'Trade Anywhere, Anytime' => '随时随地交易', 'Experience the full power of our exchange on your mobile device. Trade spot and futures with ease.' => '在您的移动设备上体验我们交易所的全部功能。轻松进行现货和合约交易。',
|
||||||
|
'Download on the' => '在 App Store 下载', 'Get it on' => '在 Google Play 获取', 'Scan to download' => '扫描下载', 'Compatible with iOS and Android devices.' => '兼容 iOS 和 Android 设备。',
|
||||||
|
'Global Trust' => '全球信任', 'Our Global Partners' => '我们的全球合作伙伴', 'Smart Contracts' => '智能合约', 'Primary Network' => '主网', 'Security Audit' => '安全审计', 'Financial Partner' => '金融合作伙伴', 'Strategic Advisor' => '战略顾问'
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
return $translations[$lang][$key] ?? $key;
|
||||||
return $translations[$lang][$key] ?? $translations['en'][$key] ?? $key;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function t($key) { return mt($key); }
|
|
||||||
|
|
||||||
// Determine if we need a back button (not on index.php)
|
|
||||||
$current_page = basename($_SERVER['PHP_SELF']);
|
$current_page = basename($_SERVER['PHP_SELF']);
|
||||||
$is_home = ($current_page == 'index.php');
|
$is_home = $current_page === 'index.php';
|
||||||
?>
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="<?php echo $lang; ?>">
|
<html lang="<?php echo $lang; ?>">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||||
<title>BITCrypto - Global Leading Crypto Exchange</title>
|
<title>BITCrypto | Professional Crypto Exchange</title>
|
||||||
<link rel="icon" type="image/png" href="favicon.png">
|
|
||||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
|
||||||
<link rel="stylesheet" href="assets/css/custom.css?v=<?php echo time(); ?>">
|
<link rel="stylesheet" href="assets/css/custom.css?v=<?php echo time(); ?>">
|
||||||
|
<link rel="icon" type="image/png" href="favicon.png">
|
||||||
<style>
|
<style>
|
||||||
:root {
|
:root {
|
||||||
--primary-bg: #0b0e11;
|
--primary-bg: #101216;
|
||||||
--secondary-bg: #181a20;
|
--secondary-bg: #181a20;
|
||||||
--accent-color: #f0b90b;
|
--accent-color: #f0b90b;
|
||||||
--text-main: #eaecef;
|
--text-main: #eaecef;
|
||||||
@ -199,10 +217,18 @@ $is_home = ($current_page == 'index.php');
|
|||||||
--okx-blue: #0046ff;
|
--okx-blue: #0046ff;
|
||||||
--bit-gradient: linear-gradient(45deg, #0046ff, #00ff96);
|
--bit-gradient: linear-gradient(45deg, #0046ff, #00ff96);
|
||||||
}
|
}
|
||||||
body { background: var(--primary-bg); color: var(--text-main); font-family: 'Inter', sans-serif; overflow-x: hidden; padding-bottom: 70px; }
|
|
||||||
@media (min-width: 992px) { body { padding-bottom: 0; } }
|
|
||||||
|
|
||||||
.navbar { background: var(--secondary-bg); border-bottom: 1px solid #2b2f36; padding: 0.8rem 0; }
|
body {
|
||||||
|
background-color: var(--primary-bg);
|
||||||
|
color: var(--text-main);
|
||||||
|
padding-bottom: 70px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 992px) {
|
||||||
|
body { padding-bottom: 0; }
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar { background: var(--primary-bg); border-bottom: 1px solid #2b2f36; padding: 0.8rem 0; }
|
||||||
.logo-text {
|
.logo-text {
|
||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
@ -214,9 +240,11 @@ $is_home = ($current_page == 'index.php');
|
|||||||
.logo-img {
|
.logo-img {
|
||||||
height: 40px;
|
height: 40px;
|
||||||
margin-right: 12px;
|
margin-right: 12px;
|
||||||
background: transparent;
|
background: transparent !important;
|
||||||
border: none;
|
border: none !important;
|
||||||
display: block;
|
display: block;
|
||||||
|
box-shadow: none !important;
|
||||||
|
object-fit: contain;
|
||||||
}
|
}
|
||||||
|
|
||||||
.back-button {
|
.back-button {
|
||||||
@ -234,15 +262,15 @@ $is_home = ($current_page == 'index.php');
|
|||||||
}
|
}
|
||||||
.back-button:hover { background: rgba(255,255,255,0.1); color: white; }
|
.back-button:hover { background: rgba(255,255,255,0.1); color: white; }
|
||||||
|
|
||||||
/* Bottom Nav for Mobile */
|
|
||||||
.bottom-nav {
|
.bottom-nav {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
height: 70px;
|
height: 65px;
|
||||||
background: #181a20;
|
background: rgba(16, 18, 22, 0.98);
|
||||||
border-top: 1px solid #2b2f36;
|
backdrop-filter: blur(20px);
|
||||||
|
border-top: 1px solid rgba(255,255,255,0.05);
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -254,28 +282,38 @@ $is_home = ($current_page == 'index.php');
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
color: #848e9c;
|
color: #848e9c;
|
||||||
text-decoration: none;
|
text-decoration: none !important;
|
||||||
font-size: 0.65rem;
|
font-size: 0.65rem;
|
||||||
|
font-weight: 500;
|
||||||
transition: all 0.2s;
|
transition: all 0.2s;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
.nav-item-mobile i {
|
||||||
|
font-size: 1.3rem;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
.nav-item-mobile.active {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
.nav-item-mobile.active i {
|
||||||
|
color: var(--okx-blue);
|
||||||
}
|
}
|
||||||
.nav-item-mobile i { font-size: 1.3rem; margin-bottom: 4px; }
|
|
||||||
.nav-item-mobile.active { color: var(--okx-blue); }
|
|
||||||
|
|
||||||
.floating-chat {
|
.floating-chat {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 90px;
|
bottom: 85px;
|
||||||
right: 20px;
|
right: 20px;
|
||||||
z-index: 2000;
|
z-index: 2000;
|
||||||
width: 55px;
|
width: 50px;
|
||||||
height: 55px;
|
height: 50px;
|
||||||
background: var(--bit-gradient);
|
background: var(--bit-gradient);
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
color: white;
|
color: white;
|
||||||
font-size: 1.5rem;
|
font-size: 1.3rem;
|
||||||
box-shadow: 0 10px 25px rgba(0, 70, 255, 0.4);
|
box-shadow: 0 8px 20px rgba(0, 70, 255, 0.3);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
@ -284,14 +322,83 @@ $is_home = ($current_page == 'index.php');
|
|||||||
.bottom-nav { display: none; }
|
.bottom-nav { display: none; }
|
||||||
.floating-chat { bottom: 30px; right: 30px; width: 65px; height: 65px; font-size: 1.8rem; }
|
.floating-chat { bottom: 30px; right: 30px; width: 65px; height: 65px; font-size: 1.8rem; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mobile-top-bar {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 10px 15px;
|
||||||
|
background: var(--primary-bg);
|
||||||
|
border-bottom: 1px solid rgba(255,255,255,0.05);
|
||||||
|
}
|
||||||
|
@media (min-width: 992px) {
|
||||||
|
.mobile-top-bar { display: none; }
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 992px) {
|
||||||
|
.navbar .container {
|
||||||
|
max-width: 100%;
|
||||||
|
padding-left: 20px;
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
|
.navbar-nav {
|
||||||
|
margin-left: 20px !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-link {
|
||||||
|
font-weight: 500;
|
||||||
|
color: #eaecef !important;
|
||||||
|
padding: 0.5rem 1rem !important;
|
||||||
|
}
|
||||||
|
.nav-link:hover, .nav-link.active {
|
||||||
|
color: var(--okx-blue) !important;
|
||||||
|
}
|
||||||
|
.dropdown-menu {
|
||||||
|
background-color: var(--secondary-bg);
|
||||||
|
border: 1px solid #2b2f36;
|
||||||
|
border-radius: 12px;
|
||||||
|
padding: 10px 0;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
.dropdown-item {
|
||||||
|
color: #eaecef;
|
||||||
|
padding: 10px 20px;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
transition: all 0.2s;
|
||||||
|
}
|
||||||
|
.dropdown-item:hover {
|
||||||
|
background-color: rgba(255,255,255,0.05);
|
||||||
|
color: var(--okx-blue);
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<nav class="navbar navbar-expand-lg navbar-dark sticky-top">
|
<div class="mobile-top-bar d-lg-none sticky-top">
|
||||||
|
<div class="d-flex align-items-center">
|
||||||
|
<?php if ($user): ?>
|
||||||
|
<a href="profile.php" class="rounded-circle bg-secondary d-flex align-items-center justify-content-center text-white fw-bold me-3" style="width: 32px; height: 32px; font-size: 0.8rem;">
|
||||||
|
<?php echo strtoupper(substr($user['username'], 0, 1)); ?>
|
||||||
|
</a>
|
||||||
|
<?php else: ?>
|
||||||
|
<a href="login.php" class="text-muted me-3" style="font-size: 1.2rem;"><i class="fas fa-user-circle"></i></a>
|
||||||
|
<?php endif; ?>
|
||||||
|
<div class="search-box bg-white bg-opacity-5 rounded-pill px-3 py-1 d-flex align-items-center" style="width: 150px;">
|
||||||
|
<i class="fas fa-search text-muted me-2" style="font-size: 0.8rem;"></i>
|
||||||
|
<span class="text-muted x-small"><?php echo mt('Search'); ?></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="d-flex align-items-center gap-3">
|
||||||
|
<a href="chat.php" class="text-muted" style="font-size: 1.1rem;"><i class="fas fa-headset"></i></a>
|
||||||
|
<a href="#" class="text-muted" style="font-size: 1.1rem;"><i class="fas fa-bell"></i></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-dark d-none d-lg-block sticky-top">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="d-flex align-items-center">
|
<div class="d-flex align-items-center">
|
||||||
<a href="javascript:history.back()" class="back-button d-lg-none">
|
<a href="javascript:history.back()" class="back-button">
|
||||||
<i class="fas fa-chevron-left"></i>
|
<i class="fas fa-chevron-left"></i>
|
||||||
</a>
|
</a>
|
||||||
<a class="navbar-brand d-flex align-items-center" href="index.php">
|
<a class="navbar-brand d-flex align-items-center" href="index.php">
|
||||||
@ -300,35 +407,46 @@ $is_home = ($current_page == 'index.php');
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
|
|
||||||
<span class="navbar-toggler-icon"></span>
|
|
||||||
</button>
|
|
||||||
<div class="collapse navbar-collapse" id="navbarNav">
|
<div class="collapse navbar-collapse" id="navbarNav">
|
||||||
<ul class="navbar-nav me-auto ms-lg-4">
|
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
|
||||||
<li class="nav-item"><a class="nav-link px-3" href="index.php"><?php echo mt('Home'); ?></a></li>
|
<li class="nav-item"><a class="nav-link <?php echo $current_page == 'index.php' ? 'active' : ''; ?>" href="index.php"><?php echo mt('Home'); ?></a></li>
|
||||||
<li class="nav-item"><a class="nav-link px-3" href="trade.php?type=spot"><?php echo mt('Spot'); ?></a></li>
|
<li class="nav-item"><a class="nav-link <?php echo $current_page == 'market.php' ? 'active' : ''; ?>" href="market.php"><?php echo mt('Markets'); ?></a></li>
|
||||||
<li class="nav-item"><a class="nav-link px-3" href="trade.php?type=contract"><?php echo mt('Perpetual'); ?></a></li>
|
<li class="nav-item dropdown">
|
||||||
<li class="nav-item"><a class="nav-link px-3" href="market.php"><?php echo mt('Markets'); ?></a></li>
|
<a class="nav-link dropdown-toggle <?php echo $current_page == 'trade.php' ? 'active' : ''; ?>" href="#" id="tradeDropdown" role="button" data-bs-toggle="dropdown">
|
||||||
<li class="nav-item"><a class="nav-link px-3" href="exchange.php"><?php echo mt('Exchange'); ?></a></li>
|
<?php echo mt('Trade'); ?>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu shadow-lg">
|
||||||
|
<li><a class="dropdown-item" href="trade.php?type=spot"><i class="fas fa-exchange-alt me-2"></i> <?php echo mt('Spot'); ?></a></li>
|
||||||
|
<li><a class="dropdown-item" href="trade.php?type=contract"><i class="fas fa-bolt me-2"></i> <?php echo mt('Perpetual'); ?></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="navbar-nav ms-auto align-items-center">
|
</li>
|
||||||
<li class="nav-item dropdown me-3">
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="#" id="fundsDropdown" role="button" data-bs-toggle="dropdown">
|
||||||
|
<?php echo mt('Funds'); ?>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu shadow-lg">
|
||||||
|
<li><a class="dropdown-item" href="deposit.php"><i class="fas fa-arrow-down me-2"></i> <?php echo mt('Recharge'); ?></a></li>
|
||||||
|
<li><a class="dropdown-item" href="withdraw.php"><i class="fas fa-arrow-up me-2"></i> <?php echo mt('Withdrawal'); ?></a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<ul class="navbar-nav align-items-center">
|
||||||
|
<li class="nav-item dropdown me-2">
|
||||||
<a class="nav-link dropdown-toggle" href="#" id="langDropdown" role="button" data-bs-toggle="dropdown">
|
<a class="nav-link dropdown-toggle" href="#" id="langDropdown" role="button" data-bs-toggle="dropdown">
|
||||||
<i class="fas fa-globe me-1"></i> <?php
|
<i class="fas fa-globe me-1"></i> <?php echo $lang == 'zh' ? '简体中文' : 'English'; ?>
|
||||||
$langs = ['en' => 'English', 'zh' => '简体中文'];
|
|
||||||
echo $langs[$lang] ?? 'English';
|
|
||||||
?>
|
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu dropdown-menu-end shadow-lg">
|
<ul class="dropdown-menu dropdown-menu-end shadow-lg">
|
||||||
<li><a class="dropdown-item" href="?lang=en">English</a></li>
|
<li><a class="dropdown-item" href="?lang=en">English</a></li>
|
||||||
<li><a class="dropdown-item" href="?lang=zh">简体中文</a></li>
|
<li><a class="dropdown-item" href="?lang=zh">简体中文</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<?php if ($user): ?>
|
<?php if ($user): ?>
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a class="nav-link dropdown-toggle d-flex align-items-center" href="#" id="userDropdown" role="button" data-bs-toggle="dropdown">
|
<a class="nav-link dropdown-toggle d-flex align-items-center" href="#" id="userDropdown" role="button" data-bs-toggle="dropdown">
|
||||||
<div class="bg-secondary rounded-circle d-flex align-items-center justify-content-center me-2" style="width: 32px; height: 32px;">
|
<div class="rounded-circle bg-primary d-flex align-items-center justify-content-center text-white fw-bold me-2" style="width: 32px; height: 32px; font-size: 0.8rem; background: var(--bit-gradient) !important;">
|
||||||
<i class="fas fa-user small"></i>
|
<?php echo strtoupper(substr($user['username'], 0, 1)); ?>
|
||||||
</div>
|
</div>
|
||||||
<?php echo htmlspecialchars($user['username']); ?>
|
<?php echo htmlspecialchars($user['username']); ?>
|
||||||
</a>
|
</a>
|
||||||
@ -349,19 +467,18 @@ $is_home = ($current_page == 'index.php');
|
|||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<!-- Bottom Nav for Mobile -->
|
|
||||||
<div class="bottom-nav">
|
<div class="bottom-nav">
|
||||||
<a href="index.php" class="nav-item-mobile <?php echo $current_page == 'index.php' ? 'active' : ''; ?>">
|
<a href="index.php" class="nav-item-mobile <?php echo $current_page == 'index.php' ? 'active' : ''; ?>">
|
||||||
<i class="fas fa-house"></i>
|
<i class="fas fa-home"></i>
|
||||||
<span><?php echo mt('Home'); ?></span>
|
<span><?php echo mt('Home'); ?></span>
|
||||||
</a>
|
</a>
|
||||||
<a href="market.php" class="nav-item-mobile <?php echo $current_page == 'market.php' ? 'active' : ''; ?>">
|
<a href="market.php" class="nav-item-mobile <?php echo $current_page == 'market.php' ? 'active' : ''; ?>">
|
||||||
<i class="fas fa-chart-simple"></i>
|
<i class="fas fa-chart-line"></i>
|
||||||
<span><?php echo mt('Markets'); ?></span>
|
<span><?php echo mt('Markets'); ?></span>
|
||||||
</a>
|
</a>
|
||||||
<a href="trade.php" class="nav-item-mobile <?php echo ($current_page == 'trade.php' && ($_GET['type'] ?? 'spot') == 'spot') ? 'active' : ''; ?>">
|
<a href="trade.php" class="nav-item-mobile <?php echo ($current_page == 'trade.php' && ($_GET['type'] ?? 'spot') == 'spot') ? 'active' : ''; ?>">
|
||||||
<i class="fas fa-repeat"></i>
|
<i class="fas fa-exchange-alt"></i>
|
||||||
<span><?php echo mt('Spot'); ?></span>
|
<span><?php echo mt('Trade'); ?></span>
|
||||||
</a>
|
</a>
|
||||||
<a href="trade.php?type=contract" class="nav-item-mobile <?php echo ($current_page == 'trade.php' && ($_GET['type'] ?? '') == 'contract') ? 'active' : ''; ?>">
|
<a href="trade.php?type=contract" class="nav-item-mobile <?php echo ($current_page == 'trade.php' && ($_GET['type'] ?? '') == 'contract') ? 'active' : ''; ?>">
|
||||||
<i class="fas fa-bolt"></i>
|
<i class="fas fa-bolt"></i>
|
||||||
@ -373,7 +490,6 @@ $is_home = ($current_page == 'index.php');
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Global Floating Chat -->
|
<a href="chat.php" class="floating-chat d-lg-flex">
|
||||||
<a href="chat.php" class="floating-chat shadow-lg">
|
|
||||||
<i class="fas fa-headset"></i>
|
<i class="fas fa-headset"></i>
|
||||||
</a>
|
</a>
|
||||||
357
index.php
357
index.php
@ -2,63 +2,82 @@
|
|||||||
include 'includes/header.php';
|
include 'includes/header.php';
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<!-- Hero Section -->
|
<!-- Aligned Hero Carousel -->
|
||||||
<section class="hero-section text-white py-5 mt-4">
|
<section class="py-4 bg-primary-bg">
|
||||||
<div class="container py-lg-5">
|
<div class="container">
|
||||||
<div class="row align-items-center g-5">
|
<div id="mainHeroCarousel" class="carousel slide carousel-fade rounded-5 overflow-hidden shadow-lg" data-bs-ride="carousel" data-bs-interval="5000">
|
||||||
<div class="col-lg-7 text-center text-lg-start">
|
<div class="carousel-indicators">
|
||||||
<h1 class="display-3 fw-bold mb-4 slide-up"><?php echo mt('The World\'s Leading'); ?><br><span class="text-primary"><?php echo mt('Crypto Exchange'); ?></span></h1>
|
<button type="button" data-bs-target="#mainHeroCarousel" data-bs-slide-to="0" class="active"></button>
|
||||||
<p class="lead mb-5 slide-up-delayed text-muted mx-auto mx-lg-0" style="max-width: 600px;"><?php echo mt('Trade Bitcoin, Ethereum, and hundreds of other cryptocurrencies with the lowest fees in the industry.'); ?></p>
|
<button type="button" data-bs-target="#mainHeroCarousel" data-bs-slide-to="1"></button>
|
||||||
<div class="d-flex flex-wrap justify-content-center justify-content-lg-start gap-3 slide-up-more">
|
<button type="button" data-bs-target="#mainHeroCarousel" data-bs-slide-to="2"></button>
|
||||||
<a href="register.php" class="btn btn-primary btn-lg px-5 py-3 rounded-pill fw-bold shadow-lg"><?php echo mt('Get Started'); ?></a>
|
<button type="button" data-bs-target="#mainHeroCarousel" data-bs-slide-to="3"></button>
|
||||||
<a href="market.php" class="btn btn-outline-light btn-lg px-5 py-3 rounded-pill fw-bold"><?php echo mt('View Markets'); ?></a>
|
<button type="button" data-bs-target="#mainHeroCarousel" data-bs-slide-to="4"></button>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="carousel-inner">
|
||||||
<!-- Market Ticker Aligned with Hero -->
|
<?php
|
||||||
<div class="mt-5 d-flex flex-wrap justify-content-center justify-content-lg-start gap-3 slide-up-more" id="hero-market-ticker">
|
$hero_slides = [
|
||||||
<!-- Loaded via JS -->
|
['title' => 'The World\'s Leading', 'subtitle' => 'Crypto Exchange', 'img' => 'hero_1.jpg'],
|
||||||
<div class="market-card-mini p-3 rounded-4 bg-white bg-opacity-5 border border-white border-opacity-10 skeleton" style="min-width: 140px; height: 80px;"></div>
|
['title' => 'Secure & Trusted', 'subtitle' => 'Institutional Grade', 'img' => 'hero_2.jpg'],
|
||||||
<div class="market-card-mini p-3 rounded-4 bg-white bg-opacity-5 border border-white border-opacity-10 skeleton" style="min-width: 140px; height: 80px;"></div>
|
['title' => 'Deep Liquidity', 'subtitle' => 'Global Access', 'img' => 'hero_3.jpg'],
|
||||||
<div class="market-card-mini p-3 rounded-4 bg-white bg-opacity-5 border border-white border-opacity-10 skeleton" style="min-width: 140px; height: 80px;"></div>
|
['title' => 'Perpetual Contracts', 'subtitle' => '100x Leverage', 'img' => 'hero_4.jpg'],
|
||||||
</div>
|
['title' => 'Join the Elite', 'subtitle' => 'Trust BITCrypto', 'img' => 'hero_5.jpg']
|
||||||
</div>
|
];
|
||||||
<div class="col-lg-5 slide-up-delayed d-none d-lg-block">
|
foreach ($hero_slides as $index => $slide):
|
||||||
<div id="heroCarousel" class="carousel slide carousel-fade" data-bs-ride="carousel">
|
?>
|
||||||
<div class="carousel-inner rounded-5 shadow-lg overflow-hidden border border-white border-opacity-10">
|
<div class="carousel-item <?php echo $index === 0 ? 'active' : ''; ?>">
|
||||||
<div class="carousel-item active">
|
<div class="carousel-image-container" style="height: 450px; background-image: linear-gradient(rgba(11, 14, 17, 0.6), rgba(11, 14, 17, 0.4)), url('assets/images/hero/<?php echo $slide['img']; ?>'); background-size: cover; background-position: center;">
|
||||||
<div class="p-5 bg-gradient-dark h-100 d-flex flex-column justify-content-center align-items-center text-center">
|
<div class="container h-100">
|
||||||
<img src="assets/images/mobile-app-mockup.jpg" class="img-fluid rounded-4 mb-4 floating-app" style="max-height: 300px;" alt="App">
|
<div class="row h-100 align-items-center">
|
||||||
<h4 class="fw-bold"><?php echo mt('Trade Anywhere'); ?></h4>
|
<div class="col-lg-8 text-white ps-5 slide-content">
|
||||||
<p class="text-muted small"><?php echo mt('Download BITCrypto mobile app for iOS and Android'); ?></p>
|
<h1 class="display-4 fw-bold mb-3"><?php echo mt($slide['title']); ?><br><span class="text-primary"><?php echo mt($slide['subtitle']); ?></span></h1>
|
||||||
</div>
|
<p class="lead mb-4 text-light opacity-75 d-none d-md-block" style="max-width: 600px;"><?php echo mt('Trade Bitcoin, Ethereum, and hundreds of other cryptocurrencies with the lowest fees in the industry.'); ?></p>
|
||||||
</div>
|
<div class="d-flex gap-3">
|
||||||
<div class="carousel-item">
|
<a href="register.php" class="btn btn-primary btn-lg px-4 py-2 rounded-pill fw-bold shadow-lg"><?php echo mt('Get Started'); ?></a>
|
||||||
<div class="p-5 bg-gradient-blue h-100 d-flex flex-column justify-content-center align-items-center text-center">
|
<a href="market.php" class="btn btn-outline-light btn-lg px-4 py-2 rounded-pill fw-bold"><?php echo mt('View Markets'); ?></a>
|
||||||
<i class="fas fa-shield-halved fa-5x text-primary mb-4"></i>
|
|
||||||
<h4 class="fw-bold"><?php echo mt('Secure & Trusted'); ?></h4>
|
|
||||||
<p class="text-muted small"><?php echo mt('Your assets are protected by industry-leading security'); ?></p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
<button class="carousel-control-prev" type="button" data-bs-target="#mainHeroCarousel" data-bs-slide="prev">
|
||||||
|
<span class="carousel-control-prev-icon"></span>
|
||||||
|
</button>
|
||||||
|
<button class="carousel-control-next" type="button" data-bs-target="#mainHeroCarousel" data-bs-slide="next">
|
||||||
|
<span class="carousel-control-next-icon"></span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<!-- Market Trends -->
|
<!-- Quick Market Ticker -->
|
||||||
<section class="py-5 bg-dark border-top border-white border-opacity-10" id="market-section">
|
<div class="market-ticker-bar bg-secondary-bg border-bottom border-white border-opacity-5 py-3">
|
||||||
<div class="container py-4">
|
<div class="container">
|
||||||
<div class="d-flex justify-content-between align-items-end mb-5">
|
<div class="d-flex flex-wrap justify-content-center justify-content-lg-between gap-4" id="hero-market-ticker">
|
||||||
<div>
|
<!-- Loaded via JS -->
|
||||||
<h2 class="fw-bold text-white mb-2"><?php echo mt('Market Trends'); ?></h2>
|
<div class="ticker-item skeleton" style="width: 150px; height: 40px;"></div>
|
||||||
<p class="text-muted mb-0"><?php echo mt('Stay updated with real-time price changes'); ?></p>
|
<div class="ticker-item skeleton d-none d-md-block" style="width: 150px; height: 40px;"></div>
|
||||||
|
<div class="ticker-item skeleton d-none d-lg-block" style="width: 150px; height: 40px;"></div>
|
||||||
|
<div class="ticker-item skeleton d-none d-xl-block" style="width: 150px; height: 40px;"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a href="market.php" class="text-primary text-decoration-none fw-bold"><?php echo mt('View All'); ?> <i class="fas fa-chevron-right ms-1"></i></a>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="table-responsive rounded-4 border border-white border-opacity-10 bg-black bg-opacity-30">
|
<!-- Market Trends -->
|
||||||
<table class="table table-dark table-hover mb-0 align-middle">
|
<section class="py-5 bg-darker" id="market-section">
|
||||||
|
<div class="container py-2">
|
||||||
|
<div class="d-flex justify-content-between align-items-end mb-4">
|
||||||
|
<div>
|
||||||
|
<h2 class="fw-bold text-white mb-2"><?php echo mt('Market Trends'); ?></h2>
|
||||||
|
<p class="text-muted mb-0 small"><?php echo mt('Stay updated with real-time price changes'); ?></p>
|
||||||
|
</div>
|
||||||
|
<a href="market.php" class="text-primary text-decoration-none fw-bold small"><?php echo mt('View All'); ?> <i class="fas fa-chevron-right ms-1"></i></a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="table-responsive rounded-4 border border-white border-opacity-10 bg-black bg-opacity-20 shadow-lg">
|
||||||
|
<table class="table table-dark table-hover mb-0 align-middle border-0">
|
||||||
<thead>
|
<thead>
|
||||||
<tr class="text-muted small">
|
<tr class="text-muted small">
|
||||||
<th class="ps-4 py-3 border-0"><?php echo mt('Name'); ?></th>
|
<th class="ps-4 py-3 border-0"><?php echo mt('Name'); ?></th>
|
||||||
@ -80,25 +99,22 @@ include 'includes/header.php';
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<!-- Why Choose Us -->
|
<!-- Why Choose Us - Aligned with Market Trends -->
|
||||||
<section class="py-5">
|
<section class="py-5 bg-primary-bg">
|
||||||
<div class="container py-4">
|
<div class="container py-4">
|
||||||
<div class="text-center mb-5">
|
<div class="text-center mb-5">
|
||||||
<h2 class="fw-bold text-white"><?php echo mt('Why Choose BITCrypto?'); ?></h2>
|
<h2 class="display-6 fw-bold text-white mb-3"><?php echo mt('Why Choose BITCrypto?'); ?></h2>
|
||||||
<p class="text-muted"><?php echo mt('Experience the most professional trading environment'); ?></p>
|
<p class="text-muted mx-auto" style="max-width: 700px;"><?php echo mt('Experience the most professional trading environment with institutional-grade security and liquidity.'); ?></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="row g-4">
|
<div class="row g-4">
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<div class="p-5 rounded-5 bg-white bg-opacity-5 border border-white border-opacity-10 h-100 hover-lift position-relative overflow-hidden">
|
<div class="feature-card p-4 h-100 border-0 shadow-sm rounded-4 bg-navy-gradient overflow-hidden position-relative">
|
||||||
<div class="position-absolute top-0 end-0 p-4 opacity-10">
|
<div class="feature-icon mb-4 rounded-4 d-inline-flex align-items-center justify-content-center bg-primary bg-opacity-10 text-primary" style="width: 50px; height: 50px;">
|
||||||
<i class="fas fa-shield-alt fa-6x"></i>
|
<i class="fas fa-shield-halved fa-lg"></i>
|
||||||
</div>
|
</div>
|
||||||
<div class="icon-box mb-4 bg-primary bg-opacity-20 text-primary rounded-4 d-inline-flex align-items-center justify-content-center shadow-sm" style="width: 70px; height: 70px;">
|
<h5 class="text-white fw-bold mb-3"><?php echo mt('Safe & Secure'); ?></h5>
|
||||||
<i class="fas fa-lock fa-2x"></i>
|
<p class="text-muted small mb-4"><?php echo mt('Industry-leading encryption and multi-signature cold storage for your digital assets.'); ?></p>
|
||||||
</div>
|
<ul class="list-unstyled text-muted x-small mt-auto">
|
||||||
<h4 class="text-white fw-bold mb-3"><?php echo mt('Safe & Secure'); ?></h4>
|
|
||||||
<p class="text-muted mb-0"><?php echo mt('Industry-leading encryption and multi-signature cold storage for your digital assets.'); ?></p>
|
|
||||||
<ul class="list-unstyled mt-4 text-muted small">
|
|
||||||
<li class="mb-2"><i class="fas fa-check-circle text-primary me-2"></i> <?php echo mt('Multi-sig Cold Storage'); ?></li>
|
<li class="mb-2"><i class="fas fa-check-circle text-primary me-2"></i> <?php echo mt('Multi-sig Cold Storage'); ?></li>
|
||||||
<li class="mb-2"><i class="fas fa-check-circle text-primary me-2"></i> <?php echo mt('DDoS Protection'); ?></li>
|
<li class="mb-2"><i class="fas fa-check-circle text-primary me-2"></i> <?php echo mt('DDoS Protection'); ?></li>
|
||||||
<li><i class="fas fa-check-circle text-primary me-2"></i> <?php echo mt('2FA Security'); ?></li>
|
<li><i class="fas fa-check-circle text-primary me-2"></i> <?php echo mt('2FA Security'); ?></li>
|
||||||
@ -106,16 +122,13 @@ include 'includes/header.php';
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<div class="p-5 rounded-5 bg-white bg-opacity-5 border border-white border-opacity-10 h-100 hover-lift position-relative overflow-hidden">
|
<div class="feature-card p-4 h-100 border-0 shadow-sm rounded-4 bg-navy-gradient overflow-hidden position-relative">
|
||||||
<div class="position-absolute top-0 end-0 p-4 opacity-10">
|
<div class="feature-icon mb-4 rounded-4 d-inline-flex align-items-center justify-content-center bg-success bg-opacity-10 text-success" style="width: 50px; height: 50px;">
|
||||||
<i class="fas fa-bolt fa-6x"></i>
|
<i class="fas fa-bolt-lightning fa-lg"></i>
|
||||||
</div>
|
</div>
|
||||||
<div class="icon-box mb-4 bg-success bg-opacity-20 text-success rounded-4 d-inline-flex align-items-center justify-content-center shadow-sm" style="width: 70px; height: 70px;">
|
<h5 class="text-white fw-bold mb-3"><?php echo mt('Instant Execution'); ?></h5>
|
||||||
<i class="fas fa-gauge-high fa-2x"></i>
|
<p class="text-muted small mb-4"><?php echo mt('Advanced matching engine processing over 100,000 transactions per second.'); ?></p>
|
||||||
</div>
|
<ul class="list-unstyled text-muted x-small mt-auto">
|
||||||
<h4 class="text-white fw-bold mb-3"><?php echo mt('Instant Execution'); ?></h4>
|
|
||||||
<p class="text-muted mb-0"><?php echo mt('Advanced matching engine processing over 100,000 transactions per second.'); ?></p>
|
|
||||||
<ul class="list-unstyled mt-4 text-muted small">
|
|
||||||
<li class="mb-2"><i class="fas fa-check-circle text-success me-2"></i> <?php echo mt('Ultra-low Latency'); ?></li>
|
<li class="mb-2"><i class="fas fa-check-circle text-success me-2"></i> <?php echo mt('Ultra-low Latency'); ?></li>
|
||||||
<li class="mb-2"><i class="fas fa-check-circle text-success me-2"></i> <?php echo mt('High Liquidity'); ?></li>
|
<li class="mb-2"><i class="fas fa-check-circle text-success me-2"></i> <?php echo mt('High Liquidity'); ?></li>
|
||||||
<li><i class="fas fa-check-circle text-success me-2"></i> <?php echo mt('Zero Slippage'); ?></li>
|
<li><i class="fas fa-check-circle text-success me-2"></i> <?php echo mt('Zero Slippage'); ?></li>
|
||||||
@ -123,16 +136,13 @@ include 'includes/header.php';
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<div class="p-5 rounded-5 bg-white bg-opacity-5 border border-white border-opacity-10 h-100 hover-lift position-relative overflow-hidden">
|
<div class="feature-card p-4 h-100 border-0 shadow-sm rounded-4 bg-navy-gradient overflow-hidden position-relative">
|
||||||
<div class="position-absolute top-0 end-0 p-4 opacity-10">
|
<div class="feature-icon mb-4 rounded-4 d-inline-flex align-items-center justify-content-center bg-info bg-opacity-10 text-info" style="width: 50px; height: 50px;">
|
||||||
<i class="fas fa-headset fa-6x"></i>
|
<i class="fas fa-headset fa-lg"></i>
|
||||||
</div>
|
</div>
|
||||||
<div class="icon-box mb-4 bg-info bg-opacity-20 text-info rounded-4 d-inline-flex align-items-center justify-content-center shadow-sm" style="width: 70px; height: 70px;">
|
<h5 class="text-white fw-bold mb-3"><?php echo mt('24/7 Global Support'); ?></h5>
|
||||||
<i class="fas fa-comments fa-2x"></i>
|
<p class="text-muted small mb-4"><?php echo mt('Get help whenever you need it with our around-the-clock professional customer service.'); ?></p>
|
||||||
</div>
|
<ul class="list-unstyled text-muted x-small mt-auto">
|
||||||
<h4 class="text-white fw-bold mb-3"><?php echo mt('24/7 Global Support'); ?></h4>
|
|
||||||
<p class="text-muted mb-0"><?php echo mt('Get help whenever you need it with our around-the-clock professional customer service.'); ?></p>
|
|
||||||
<ul class="list-unstyled mt-4 text-muted small">
|
|
||||||
<li class="mb-2"><i class="fas fa-check-circle text-info me-2"></i> <?php echo mt('Multi-language Support'); ?></li>
|
<li class="mb-2"><i class="fas fa-check-circle text-info me-2"></i> <?php echo mt('Multi-language Support'); ?></li>
|
||||||
<li class="mb-2"><i class="fas fa-check-circle text-info me-2"></i> <?php echo mt('Live Chat'); ?></li>
|
<li class="mb-2"><i class="fas fa-check-circle text-info me-2"></i> <?php echo mt('Live Chat'); ?></li>
|
||||||
<li><i class="fas fa-check-circle text-info me-2"></i> <?php echo mt('Fast Response'); ?></li>
|
<li><i class="fas fa-check-circle text-info me-2"></i> <?php echo mt('Fast Response'); ?></li>
|
||||||
@ -143,157 +153,84 @@ include 'includes/header.php';
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<!-- Partners Section -->
|
<!-- Mobile App Section -->
|
||||||
<section class="py-5 bg-black bg-opacity-20 border-top border-bottom border-white border-opacity-5">
|
<section class="py-5 bg-darker border-top border-white border-opacity-5">
|
||||||
<div class="container py-4 text-center">
|
|
||||||
<h2 class="fw-bold text-white mb-2"><?php echo mt('Our Global Partners'); ?></h2>
|
|
||||||
<p class="text-muted mb-5"><?php echo mt('Trusted by industry leaders worldwide'); ?></p>
|
|
||||||
<div class="row row-cols-2 row-cols-md-3 row-cols-lg-6 g-4 align-items-center">
|
|
||||||
<div class="col">
|
|
||||||
<div class="partner-card p-4 rounded-4 hover-lift">
|
|
||||||
<i class="fab fa-apple fa-3x text-white mb-3"></i>
|
|
||||||
<h6 class="text-white mb-0">Apple Pay</h6>
|
|
||||||
<p class="text-muted small mt-2"><?php echo mt('Payment Partner'); ?></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="partner-card p-4 rounded-4 hover-lift">
|
|
||||||
<i class="fab fa-google-pay fa-3x text-white mb-3"></i>
|
|
||||||
<h6 class="text-white mb-0">Google Pay</h6>
|
|
||||||
<p class="text-muted small mt-2"><?php echo mt('Payment Partner'); ?></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="partner-card p-4 rounded-4 hover-lift">
|
|
||||||
<i class="fab fa-aws fa-3x text-white mb-3"></i>
|
|
||||||
<h6 class="text-white mb-0">AWS</h6>
|
|
||||||
<p class="text-muted small mt-2"><?php echo mt('Infrastructure'); ?></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="partner-card p-4 rounded-4 hover-lift">
|
|
||||||
<i class="fab fa-cc-visa fa-3x text-white mb-3"></i>
|
|
||||||
<h6 class="text-white mb-0">Visa</h6>
|
|
||||||
<p class="text-muted small mt-2"><?php echo mt('Financial Partner'); ?></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="partner-card p-4 rounded-4 hover-lift">
|
|
||||||
<i class="fab fa-cc-mastercard fa-3x text-white mb-3"></i>
|
|
||||||
<h6 class="text-white mb-0">Mastercard</h6>
|
|
||||||
<p class="text-muted small mt-2"><?php echo mt('Financial Partner'); ?></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<div class="partner-card p-4 rounded-4 hover-lift">
|
|
||||||
<i class="fab fa-paypal fa-3x text-white mb-3"></i>
|
|
||||||
<h6 class="text-white mb-0">PayPal</h6>
|
|
||||||
<p class="text-muted small mt-2"><?php echo mt('Payment Partner'); ?></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Download Section -->
|
|
||||||
<section class="py-5 overflow-hidden">
|
|
||||||
<div class="container py-5">
|
<div class="container py-5">
|
||||||
<div class="row align-items-center g-5">
|
<div class="row align-items-center">
|
||||||
<div class="col-lg-6">
|
<div class="col-lg-6 mb-5 mb-lg-0">
|
||||||
<h2 class="display-5 fw-bold text-white mb-4"><?php echo mt('Trade Anywhere, Anytime'); ?></h2>
|
<h2 class="display-5 fw-bold text-white mb-4"><?php echo mt('Trade Anywhere, Anytime'); ?></h2>
|
||||||
<p class="lead text-muted mb-5"><?php echo mt('Experience the full power of our exchange on your mobile device. Trade spot and futures with ease.'); ?></p>
|
<p class="text-muted lead mb-5"><?php echo mt('Experience the full power of our exchange on your mobile device. Trade spot and futures with ease.'); ?></p>
|
||||||
|
|
||||||
<div class="d-flex flex-wrap gap-3 mb-5">
|
<div class="d-flex flex-wrap gap-3 mb-5">
|
||||||
<div class="download-btn-modern">
|
<a href="#" class="btn btn-dark btn-lg px-4 py-3 rounded-4 border border-white border-opacity-10 d-flex align-items-center">
|
||||||
<i class="fab fa-apple fa-2x"></i>
|
<i class="fab fa-apple fa-2x me-3"></i>
|
||||||
<div>
|
<div class="text-start">
|
||||||
<div class="small-text"><?php echo mt('Download on the'); ?></div>
|
<div class="x-small text-muted opacity-75"><?php echo mt('Download on the'); ?></div>
|
||||||
<div class="bold-text">App Store</div>
|
<div class="fw-bold">App Store</div>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="download-btn-modern">
|
|
||||||
<i class="fab fa-google-play fa-2x"></i>
|
|
||||||
<div>
|
|
||||||
<div class="small-text"><?php echo mt('Get it on'); ?></div>
|
|
||||||
<div class="bold-text">Google Play</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
</a>
|
||||||
|
<a href="#" class="btn btn-dark btn-lg px-4 py-3 rounded-4 border border-white border-opacity-10 d-flex align-items-center">
|
||||||
|
<i class="fab fa-google-play fa-2x me-3"></i>
|
||||||
|
<div class="text-start">
|
||||||
|
<div class="x-small text-muted opacity-75"><?php echo mt('Get it on'); ?></div>
|
||||||
|
<div class="fw-bold">Google Play</div>
|
||||||
</div>
|
</div>
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="d-flex align-items-center gap-4 p-4 bg-white bg-opacity-5 rounded-4 border border-white border-opacity-10 shadow-sm" style="backdrop-filter: blur(10px);">
|
<div class="d-flex align-items-center gap-4">
|
||||||
<div class="bg-white p-2 rounded-3 shadow">
|
<div class="bg-white p-2 rounded-3">
|
||||||
<img src="https://api.qrserver.com/v1/create-qr-code/?size=100x100&data=https://bitcrypto.com/download&color=0046ff" alt="Download QR" width="100">
|
<img src="https://api.qrserver.com/v1/create-qr-code/?size=100x100&data=https://bitcrypto.com/download" width="80" height="80">
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div class="text-muted small">
|
||||||
<h6 class="text-white fw-bold mb-1"><?php echo mt('Scan to download'); ?></h6>
|
<div class="fw-bold text-white mb-1"><?php echo mt('Scan to download'); ?></div>
|
||||||
<p class="text-muted small mb-0"><?php echo mt('Compatible with iOS and Android devices.'); ?></p>
|
<?php echo mt('Compatible with iOS and Android devices.'); ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-6 text-center position-relative">
|
<div class="col-lg-6 text-center">
|
||||||
<div class="position-absolute top-50 start-50 translate-middle z-n1" style="width: 500px; height: 500px; background: radial-gradient(circle, rgba(0,70,255,0.2) 0%, rgba(0,255,150,0.1) 30%, transparent 70%); filter: blur(40px);"></div>
|
<div class="position-relative d-inline-block">
|
||||||
<img src="assets/images/mobile-app-mockup.jpg" alt="Mobile App" class="img-fluid floating-app rounded-5 shadow-lg border border-white border-opacity-10" style="max-width: 350px;">
|
<img src="assets/images/mobile-app-mockup.jpg" alt="Mobile App" class="img-fluid rounded-5 shadow-2xl border border-white border-opacity-10" style="max-height: 600px;">
|
||||||
|
<!-- Decorative Elements -->
|
||||||
|
<div class="position-absolute top-0 start-0 translate-middle p-3 bg-primary rounded-circle shadow-lg animate-bounce d-none d-md-block">
|
||||||
|
<i class="fas fa-bitcoin-sign text-white fa-2x"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<style>
|
<!-- Partners Section -->
|
||||||
.bg-gradient-dark { background: linear-gradient(135deg, #0b0e11 0%, #181a20 100%); }
|
<section class="py-5 bg-primary-bg">
|
||||||
.bg-gradient-blue { background: linear-gradient(135deg, #001a4d 0%, #0046ff 100%); }
|
<div class="container py-4">
|
||||||
|
<div class="text-center mb-5">
|
||||||
|
<h5 class="text-primary fw-bold text-uppercase mb-3" style="letter-spacing: 2px;"><?php echo mt('Global Trust'); ?></h5>
|
||||||
|
<h2 class="fw-bold text-white"><?php echo mt('Our Global Partners'); ?></h2>
|
||||||
|
</div>
|
||||||
|
<div class="row g-4 row-cols-2 row-cols-md-3 row-cols-lg-5 align-items-center opacity-75">
|
||||||
|
<div class="col text-center">
|
||||||
|
<i class="fab fa-ethereum fa-3x text-white mb-3"></i>
|
||||||
|
<div class="small text-muted"><?php echo mt('Smart Contracts'); ?></div>
|
||||||
|
</div>
|
||||||
|
<div class="col text-center">
|
||||||
|
<i class="fab fa-bitcoin fa-3x text-white mb-3"></i>
|
||||||
|
<div class="small text-muted"><?php echo mt('Primary Network'); ?></div>
|
||||||
|
</div>
|
||||||
|
<div class="col text-center">
|
||||||
|
<i class="fas fa-shield-halved fa-3x text-white mb-3"></i>
|
||||||
|
<div class="small text-muted"><?php echo mt('Security Audit'); ?></div>
|
||||||
|
</div>
|
||||||
|
<div class="col text-center">
|
||||||
|
<i class="fas fa-building-columns fa-3x text-white mb-3"></i>
|
||||||
|
<div class="small text-muted"><?php echo mt('Financial Partner'); ?></div>
|
||||||
|
</div>
|
||||||
|
<div class="col text-center">
|
||||||
|
<i class="fas fa-globe-asia fa-3x text-white mb-3"></i>
|
||||||
|
<div class="small text-muted"><?php echo mt('Strategic Advisor'); ?></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
.slide-up { animation: slideUp 0.8s ease-out; }
|
|
||||||
.slide-up-delayed { animation: slideUp 0.8s ease-out 0.2s both; }
|
|
||||||
.slide-up-more { animation: slideUp 0.8s ease-out 0.4s both; }
|
|
||||||
@keyframes slideUp {
|
|
||||||
from { opacity: 0; transform: translateY(30px); }
|
|
||||||
to { opacity: 1; transform: translateY(0); }
|
|
||||||
}
|
|
||||||
.floating-app {
|
|
||||||
animation: float 6s ease-in-out infinite;
|
|
||||||
}
|
|
||||||
@keyframes float {
|
|
||||||
0%, 100% { transform: translateY(0); }
|
|
||||||
50% { transform: translateY(-20px); }
|
|
||||||
}
|
|
||||||
.download-btn-modern {
|
|
||||||
background: rgba(255,255,255,0.05);
|
|
||||||
border: 1px solid rgba(255,255,255,0.1);
|
|
||||||
padding: 10px 20px;
|
|
||||||
border-radius: 12px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 12px;
|
|
||||||
color: white;
|
|
||||||
cursor: pointer;
|
|
||||||
transition: all 0.3s ease;
|
|
||||||
}
|
|
||||||
.download-btn-modern:hover {
|
|
||||||
background: rgba(255,255,255,0.1);
|
|
||||||
transform: translateY(-2px);
|
|
||||||
}
|
|
||||||
.download-btn-modern .small-text { font-size: 10px; opacity: 0.7; }
|
|
||||||
.download-btn-modern .bold-text { font-size: 16px; font-weight: bold; }
|
|
||||||
|
|
||||||
.hover-lift { transition: all 0.3s ease; }
|
|
||||||
.hover-lift:hover { transform: translateY(-10px); background: rgba(255,255,255,0.08); }
|
|
||||||
|
|
||||||
.partner-card {
|
|
||||||
background: rgba(255,255,255,0.03);
|
|
||||||
border: 1px solid rgba(255,255,255,0.05);
|
|
||||||
transition: all 0.3s ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
.skeleton {
|
|
||||||
background: linear-gradient(90deg, rgba(255,255,255,0.05) 25%, rgba(255,255,255,0.1) 50%, rgba(255,255,255,0.05) 75%);
|
|
||||||
background-size: 200% 100%;
|
|
||||||
animation: skeleton-loading 1.5s infinite;
|
|
||||||
}
|
|
||||||
@keyframes skeleton-loading {
|
|
||||||
0% { background-position: 200% 0; }
|
|
||||||
100% { background-position: -200% 0; }
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script src="assets/js/main.js"></script>
|
|
||||||
<?php include 'includes/footer.php'; ?>
|
<?php include 'includes/footer.php'; ?>
|
||||||
|
|||||||
44
login.php
44
login.php
@ -7,7 +7,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|||||||
$password = $_POST['password'] ?? '';
|
$password = $_POST['password'] ?? '';
|
||||||
|
|
||||||
if (empty($username) || empty($password)) {
|
if (empty($username) || empty($password)) {
|
||||||
$error = 'Please fill in all fields.';
|
$error = mt('Please fill in all fields.');
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
$stmt = db()->prepare("SELECT * FROM users WHERE username = ?");
|
$stmt = db()->prepare("SELECT * FROM users WHERE username = ?");
|
||||||
@ -19,42 +19,43 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|||||||
header('Location: index.php');
|
header('Location: index.php');
|
||||||
exit;
|
exit;
|
||||||
} else {
|
} else {
|
||||||
$error = 'Invalid username or password.';
|
$error = mt('Invalid username or password.');
|
||||||
}
|
}
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
$error = 'Login failed.';
|
$error = mt('Login failed.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div class="container my-5">
|
<div class="container my-5 py-5">
|
||||||
<div class="row justify-content-center">
|
<div class="row justify-content-center">
|
||||||
<div class="col-md-5">
|
<div class="col-md-5">
|
||||||
<div class="card bg-dark border-secondary p-4">
|
<div class="card bg-dark border-secondary p-4 shadow-lg" style="border-radius: 20px;">
|
||||||
<h2 class="text-center mb-4">Login to BITCrypto</h2>
|
<h2 class="text-center mb-4 fw-bold text-white"><?php echo mt('Login to BITCrypto'); ?></h2>
|
||||||
<?php if ($error): ?>
|
<?php if ($error): ?>
|
||||||
<div class="alert alert-danger"><?php echo $error; ?></div>
|
<div class="alert alert-danger border-0 small"><?php echo $error; ?></div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<form method="POST">
|
<form method="POST">
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">Username</label>
|
<label class="form-label text-muted small"><?php echo mt('Username'); ?></label>
|
||||||
<input type="text" name="username" class="form-control bg-dark text-white border-secondary" required placeholder="Enter username">
|
<input type="text" name="username" class="form-control bg-dark text-white border-secondary py-2" required placeholder="<?php echo mt('Enter username'); ?>">
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">Password</label>
|
<label class="form-label text-muted small"><?php echo mt('Password'); ?></label>
|
||||||
<input type="password" name="password" class="form-control bg-dark text-white border-secondary" required placeholder="Enter password">
|
<input type="password" name="password" class="form-control bg-dark text-white border-secondary py-2" required placeholder="<?php echo mt('Enter password'); ?>">
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 d-flex justify-content-between">
|
<div class="mb-4 d-flex justify-content-between align-items-center">
|
||||||
<div class="form-check">
|
<div class="form-check">
|
||||||
<input type="checkbox" class="form-check-input" id="remember">
|
<input type="checkbox" class="form-check-input" id="remember">
|
||||||
<label class="form-check-label small text-muted" for="remember">Remember me</label>
|
<label class="form-check-label small text-muted" for="remember"><?php echo mt('Remember me'); ?></label>
|
||||||
</div>
|
</div>
|
||||||
<a href="#" class="small text-accent text-decoration-none">Forgot password?</a>
|
<a href="#" class="small text-primary text-decoration-none fw-bold"><?php echo mt('Forgot password?'); ?></a>
|
||||||
</div>
|
</div>
|
||||||
<button type="submit" class="btn btn-accent w-100 py-2">Login</button>
|
<button type="submit" class="btn btn-primary w-100 py-3 fw-bold mb-3" style="background-color: var(--okx-blue); border: none; border-radius: 12px;"><?php echo mt('Login'); ?></button>
|
||||||
<div class="text-center mt-3">
|
<div class="text-center">
|
||||||
<span class="text-muted">Don't have an account?</span> <a href="register.php" class="text-accent text-decoration-none">Register</a>
|
<span class="text-muted small"><?php echo mt("Don't have an account?"); ?></span>
|
||||||
|
<a href="register.php" class="text-primary text-decoration-none fw-bold small ms-1"><?php echo mt('Register'); ?></a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
@ -62,4 +63,13 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.form-control:focus {
|
||||||
|
background-color: #2b2f36;
|
||||||
|
border-color: var(--okx-blue);
|
||||||
|
box-shadow: none;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
<?php require_once 'includes/footer.php'; ?>
|
<?php require_once 'includes/footer.php'; ?>
|
||||||
115
profile.php
115
profile.php
@ -23,11 +23,38 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['kyc_submit'])) {
|
|||||||
$real_name = $_POST['real_name'] ?? '';
|
$real_name = $_POST['real_name'] ?? '';
|
||||||
$id_number = $_POST['id_number'] ?? '';
|
$id_number = $_POST['id_number'] ?? '';
|
||||||
|
|
||||||
|
$upload_dir = 'assets/uploads/kyc/';
|
||||||
|
if (!is_dir($upload_dir)) {
|
||||||
|
mkdir($upload_dir, 0775, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
$id_front = $user['id_front'];
|
||||||
|
$id_back = $user['id_back'];
|
||||||
|
$id_handheld = $user['id_handheld'];
|
||||||
|
|
||||||
|
$files_uploaded = 0;
|
||||||
|
|
||||||
|
foreach (['id_front', 'id_back', 'id_handheld'] as $field) {
|
||||||
|
if (isset($_FILES[$field]) && $_FILES[$field]['error'] === UPLOAD_ERR_OK) {
|
||||||
|
$ext = pathinfo($_FILES[$field]['name'], PATHINFO_EXTENSION);
|
||||||
|
$filename = $user['id'] . '_' . $field . '_' . time() . '.' . $ext;
|
||||||
|
if (move_uploaded_file($_FILES[$field]['tmp_name'], $upload_dir . $filename)) {
|
||||||
|
$$field = $filename;
|
||||||
|
$files_uploaded++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$stmt = db()->prepare("UPDATE users SET real_name = ?, id_number = ?, kyc_status = 'pending' WHERE id = ?");
|
$stmt = db()->prepare("UPDATE users SET real_name = ?, id_number = ?, id_front = ?, id_back = ?, id_handheld = ?, kyc_status = 'pending' WHERE id = ?");
|
||||||
$stmt->execute([$real_name, $id_number, $user['id']]);
|
$stmt->execute([$real_name, $id_number, $id_front, $id_back, $id_handheld, $user['id']]);
|
||||||
$msg = mt('Identity verification submitted and is under review.');
|
$msg = mt('Identity verification submitted and is under review.');
|
||||||
$user['kyc_status'] = 'pending';
|
$user['kyc_status'] = 'pending';
|
||||||
|
$user['real_name'] = $real_name;
|
||||||
|
$user['id_number'] = $id_number;
|
||||||
|
$user['id_front'] = $id_front;
|
||||||
|
$user['id_back'] = $id_back;
|
||||||
|
$user['id_handheld'] = $id_handheld;
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
$error = mt('Error') . ': ' . $e->getMessage();
|
$error = mt('Error') . ': ' . $e->getMessage();
|
||||||
}
|
}
|
||||||
@ -109,15 +136,36 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['change_password'])) {
|
|||||||
.upload-area {
|
.upload-area {
|
||||||
border: 2px dashed #2b2f36;
|
border: 2px dashed #2b2f36;
|
||||||
border-radius: 16px;
|
border-radius: 16px;
|
||||||
padding: 30px;
|
padding: 20px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: all 0.3s;
|
transition: all 0.3s;
|
||||||
|
position: relative;
|
||||||
|
min-height: 150px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
background: rgba(255,255,255,0.02);
|
||||||
}
|
}
|
||||||
.upload-area:hover {
|
.upload-area:hover {
|
||||||
border-color: var(--okx-blue);
|
border-color: var(--okx-blue);
|
||||||
background: rgba(0, 70, 255, 0.05);
|
background: rgba(0, 70, 255, 0.05);
|
||||||
}
|
}
|
||||||
|
.upload-area img {
|
||||||
|
max-width: 100%;
|
||||||
|
max-height: 120px;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
.upload-area input[type="file"] {
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
opacity: 0;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
.asset-row {
|
.asset-row {
|
||||||
padding: 20px 0;
|
padding: 20px 0;
|
||||||
border-bottom: 1px solid #2b2f36;
|
border-bottom: 1px solid #2b2f36;
|
||||||
@ -202,8 +250,10 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['change_password'])) {
|
|||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<div class="stat-box">
|
<div class="stat-box">
|
||||||
<div class="small text-muted mb-2"><?php echo mt('Identity Verification'); ?></div>
|
<div class="small text-muted mb-2"><?php echo mt('Identity Verification'); ?></div>
|
||||||
<h4 class="fw-bold <?php echo $user['kyc_status'] == 'approved' ? 'text-success' : 'text-warning'; ?>">
|
<h4 class="fw-bold <?php
|
||||||
<?php echo mt($user['kyc_status'] ?: 'Unverified'); ?>
|
echo $user['kyc_status'] == 'approved' ? 'text-success' :
|
||||||
|
($user['kyc_status'] == 'pending' ? 'text-warning' : 'text-danger'); ?>">
|
||||||
|
<?php echo mt($user['kyc_status'] == 'none' ? 'Unverified' : ucfirst($user['kyc_status'])); ?>
|
||||||
</h4>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -319,42 +369,73 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['change_password'])) {
|
|||||||
<i class="fas fa-clock fa-5x text-warning mb-4"></i>
|
<i class="fas fa-clock fa-5x text-warning mb-4"></i>
|
||||||
<h4 class="text-white"><?php echo mt('Reviewing...'); ?></h4>
|
<h4 class="text-white"><?php echo mt('Reviewing...'); ?></h4>
|
||||||
<p class="text-muted"><?php echo mt('Your identity documents are being verified by our team.'); ?></p>
|
<p class="text-muted"><?php echo mt('Your identity documents are being verified by our team.'); ?></p>
|
||||||
|
<div class="mt-4 p-3 bg-dark rounded-3 text-start small">
|
||||||
|
<div class="text-white mb-2 fw-bold"><?php echo mt('Submitted Details'); ?>:</div>
|
||||||
|
<div class="text-muted"><?php echo mt('Name'); ?>: <span class="text-white"><?php echo htmlspecialchars($user['real_name']); ?></span></div>
|
||||||
|
<div class="text-muted"><?php echo mt('ID Number'); ?>: <span class="text-white"><?php echo htmlspecialchars($user['id_number']); ?></span></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php elseif ($user['kyc_status'] == 'approved'): ?>
|
<?php elseif ($user['kyc_status'] == 'approved'): ?>
|
||||||
<div class="text-center py-5">
|
<div class="text-center py-5">
|
||||||
<i class="fas fa-check-circle fa-5x text-success mb-4"></i>
|
<i class="fas fa-check-circle fa-5x text-success mb-4"></i>
|
||||||
<h4 class="text-white"><?php echo mt('Verified'); ?></h4>
|
<h4 class="text-white"><?php echo mt('Verified'); ?></h4>
|
||||||
<p class="text-muted"><?php echo mt('Your account is fully verified for all features.'); ?></p>
|
<p class="text-muted"><?php echo mt('Your account is fully verified for all features.'); ?></p>
|
||||||
|
<div class="mt-4 p-3 bg-dark rounded-3 text-start small">
|
||||||
|
<div class="text-white mb-2 fw-bold"><?php echo mt('Verified Identity'); ?>:</div>
|
||||||
|
<div class="text-muted"><?php echo mt('Name'); ?>: <span class="text-white"><?php echo htmlspecialchars($user['real_name']); ?></span></div>
|
||||||
|
<div class="text-muted"><?php echo mt('ID Number'); ?>: <span class="text-white"><?php echo htmlspecialchars($user['id_number']); ?></span></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<form action="" method="POST">
|
<form action="" method="POST" enctype="multipart/form-data" id="kycForm">
|
||||||
<div class="row g-4 mb-4">
|
<div class="row g-4 mb-4">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<label class="form-label text-muted small"><?php echo mt('Full Name'); ?></label>
|
<label class="form-label text-muted small"><?php echo mt('Full Name'); ?></label>
|
||||||
<input type="text" name="real_name" class="form-control" placeholder="<?php echo mt('Enter your real name'); ?>" required>
|
<input type="text" name="real_name" class="form-control" placeholder="<?php echo mt('Enter your real name'); ?>" required value="<?php echo htmlspecialchars($user['real_name'] ?? ''); ?>">
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<label class="form-label text-muted small"><?php echo mt('ID Number'); ?></label>
|
<label class="form-label text-muted small"><?php echo mt('ID Number'); ?></label>
|
||||||
<input type="text" name="id_number" class="form-control" placeholder="<?php echo mt('Enter ID/Passport Number'); ?>" required>
|
<input type="text" name="id_number" class="form-control" placeholder="<?php echo mt('Enter ID/Passport Number'); ?>" required value="<?php echo htmlspecialchars($user['id_number'] ?? ''); ?>">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row g-4 mb-5">
|
<div class="row g-4 mb-5">
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<div class="upload-area">
|
<div class="upload-area" onclick="document.getElementById('id_front').click()">
|
||||||
|
<input type="file" name="id_front" id="id_front" accept="image/*" required onchange="previewImage(this, 'preview_front')">
|
||||||
|
<div id="preview_front">
|
||||||
|
<?php if ($user['id_front']): ?>
|
||||||
|
<img src="assets/uploads/kyc/<?php echo $user['id_front']; ?>">
|
||||||
|
<?php else: ?>
|
||||||
<i class="fas fa-id-card fa-3x mb-3 text-muted opacity-25"></i>
|
<i class="fas fa-id-card fa-3x mb-3 text-muted opacity-25"></i>
|
||||||
<div class="small text-muted"><?php echo mt('Front Side'); ?></div>
|
<div class="small text-muted"><?php echo mt('Front Side'); ?></div>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<div class="upload-area">
|
<div class="upload-area" onclick="document.getElementById('id_back').click()">
|
||||||
|
<input type="file" name="id_back" id="id_back" accept="image/*" required onchange="previewImage(this, 'preview_back')">
|
||||||
|
<div id="preview_back">
|
||||||
|
<?php if ($user['id_back']): ?>
|
||||||
|
<img src="assets/uploads/kyc/<?php echo $user['id_back']; ?>">
|
||||||
|
<?php else: ?>
|
||||||
<i class="fas fa-id-card fa-3x mb-3 text-muted opacity-25"></i>
|
<i class="fas fa-id-card fa-3x mb-3 text-muted opacity-25"></i>
|
||||||
<div class="small text-muted"><?php echo mt('Back Side'); ?></div>
|
<div class="small text-muted"><?php echo mt('Back Side'); ?></div>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<div class="upload-area">
|
<div class="upload-area" onclick="document.getElementById('id_handheld').click()">
|
||||||
|
<input type="file" name="id_handheld" id="id_handheld" accept="image/*" required onchange="previewImage(this, 'preview_handheld')">
|
||||||
|
<div id="preview_handheld">
|
||||||
|
<?php if ($user['id_handheld']): ?>
|
||||||
|
<img src="assets/uploads/kyc/<?php echo $user['id_handheld']; ?>">
|
||||||
|
<?php else: ?>
|
||||||
<i class="fas fa-camera fa-3x mb-3 text-muted opacity-25"></i>
|
<i class="fas fa-camera fa-3x mb-3 text-muted opacity-25"></i>
|
||||||
<div class="small text-muted"><?php echo mt('Selfie with ID'); ?></div>
|
<div class="small text-muted"><?php echo mt('Selfie with ID'); ?></div>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -369,6 +450,18 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['change_password'])) {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function previewImage(input, previewId) {
|
||||||
|
if (input.files && input.files[0]) {
|
||||||
|
var reader = new FileReader();
|
||||||
|
reader.onload = function(e) {
|
||||||
|
document.getElementById(previewId).innerHTML = '<img src="' + e.target.result + '">';
|
||||||
|
}
|
||||||
|
reader.readAsDataURL(input.files[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
<!-- Modals -->
|
<!-- Modals -->
|
||||||
<div class="modal fade" id="loginPassModal" tabindex="-1">
|
<div class="modal fade" id="loginPassModal" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
|
|||||||
40
register.php
40
register.php
@ -9,11 +9,11 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|||||||
$agree = $_POST['agree'] ?? '';
|
$agree = $_POST['agree'] ?? '';
|
||||||
|
|
||||||
if (empty($username) || empty($password)) {
|
if (empty($username) || empty($password)) {
|
||||||
$error = 'Please fill in all fields.';
|
$error = mt('Please fill in all fields.');
|
||||||
} elseif ($password !== $confirm_password) {
|
} elseif ($password !== $confirm_password) {
|
||||||
$error = 'Passwords do not match.';
|
$error = mt('Passwords do not match.');
|
||||||
} elseif (!$agree) {
|
} elseif (!$agree) {
|
||||||
$error = 'You must agree to the terms and privacy policy.';
|
$error = mt('You must agree to the terms and privacy policy.');
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
$pdo = db();
|
$pdo = db();
|
||||||
@ -21,7 +21,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|||||||
$stmt = $pdo->prepare("SELECT id FROM users WHERE username = ?");
|
$stmt = $pdo->prepare("SELECT id FROM users WHERE username = ?");
|
||||||
$stmt->execute([$username]);
|
$stmt->execute([$username]);
|
||||||
if ($stmt->fetch()) {
|
if ($stmt->fetch()) {
|
||||||
$error = 'Username already exists.';
|
$error = mt('Username already exists.');
|
||||||
} else {
|
} else {
|
||||||
// Generate unique 6-digit UID
|
// Generate unique 6-digit UID
|
||||||
do {
|
do {
|
||||||
@ -40,7 +40,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
$error = 'Registration failed: ' . $e->getMessage();
|
$error = mt('Error') . ': ' . $e->getMessage();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -50,33 +50,34 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|||||||
<div class="row justify-content-center">
|
<div class="row justify-content-center">
|
||||||
<div class="col-md-5">
|
<div class="col-md-5">
|
||||||
<div class="card bg-dark border-secondary p-4 shadow-lg" style="border-radius: 20px;">
|
<div class="card bg-dark border-secondary p-4 shadow-lg" style="border-radius: 20px;">
|
||||||
<h2 class="text-center mb-4 fw-bold">Sign Up</h2>
|
<h2 class="text-center mb-4 fw-bold text-white"><?php echo mt('Sign Up'); ?></h2>
|
||||||
<p class="text-center text-muted mb-4">Join the world's leading crypto exchange</p>
|
<p class="text-center text-muted mb-4 small"><?php echo mt("Join the world's leading crypto exchange"); ?></p>
|
||||||
<?php if ($error): ?>
|
<?php if ($error): ?>
|
||||||
<div class="alert alert-danger"><?php echo $error; ?></div>
|
<div class="alert alert-danger border-0 small"><?php echo $error; ?></div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<form method="POST">
|
<form method="POST">
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">Username / Email</label>
|
<label class="form-label text-muted small"><?php echo mt('Username / Email'); ?></label>
|
||||||
<input type="text" name="username" class="form-control bg-dark text-white border-secondary py-2" required placeholder="Enter username">
|
<input type="text" name="username" class="form-control bg-dark text-white border-secondary py-2" required placeholder="<?php echo mt('Enter username'); ?>">
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">Password</label>
|
<label class="form-label text-muted small"><?php echo mt('Password'); ?></label>
|
||||||
<input type="password" name="password" class="form-control bg-dark text-white border-secondary py-2" required placeholder="Enter password">
|
<input type="password" name="password" class="form-control bg-dark text-white border-secondary py-2" required placeholder="<?php echo mt('Enter password'); ?>">
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label">Confirm Password</label>
|
<label class="form-label text-muted small"><?php echo mt('Confirm Password'); ?></label>
|
||||||
<input type="password" name="confirm_password" class="form-control bg-dark text-white border-secondary py-2" required placeholder="Repeat password">
|
<input type="password" name="confirm_password" class="form-control bg-dark text-white border-secondary py-2" required placeholder="<?php echo mt('Repeat password'); ?>">
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 form-check">
|
<div class="mb-4 form-check">
|
||||||
<input type="checkbox" name="agree" class="form-check-input" id="agree" required>
|
<input type="checkbox" name="agree" class="form-check-input" id="agree" required>
|
||||||
<label class="form-check-label small text-muted" for="agree">
|
<label class="form-check-label small text-muted" for="agree">
|
||||||
I have read and agree to the <a href="#" class="text-accent">Terms of Service</a> and <a href="#" class="text-accent">Privacy Policy</a>.
|
<?php echo mt('I have read and agree to the'); ?> <a href="#" class="text-primary fw-bold text-decoration-none"><?php echo mt('Terms of Service'); ?></a> <?php echo mt('and'); ?> <a href="#" class="text-primary fw-bold text-decoration-none"><?php echo mt('Privacy Policy'); ?></a>.
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<button type="submit" class="btn btn-primary w-100 py-3 fw-bold" style="border-radius: 12px; background-color: var(--okx-blue); border: none;">Create Account</button>
|
<button type="submit" class="btn btn-primary w-100 py-3 fw-bold mb-3" style="border-radius: 12px; background-color: var(--okx-blue); border: none;"><?php echo mt('Create Account'); ?></button>
|
||||||
<div class="text-center mt-4">
|
<div class="text-center">
|
||||||
<span class="text-muted">Already have an account?</span> <a href="login.php" class="text-accent text-decoration-none fw-bold">Login</a>
|
<span class="text-muted small"><?php echo mt('Already have an account?'); ?></span>
|
||||||
|
<a href="login.php" class="text-primary text-decoration-none fw-bold small ms-1"><?php echo mt('Login'); ?></a>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
@ -85,7 +86,6 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.text-accent { color: var(--okx-blue); }
|
|
||||||
.form-control:focus {
|
.form-control:focus {
|
||||||
background-color: #2b2f36;
|
background-color: #2b2f36;
|
||||||
border-color: var(--okx-blue);
|
border-color: var(--okx-blue);
|
||||||
|
|||||||
109
trade.php
109
trade.php
@ -6,13 +6,13 @@ $type = $_GET['type'] ?? 'spot';
|
|||||||
?>
|
?>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.trade-container { height: calc(100vh - 62px); overflow: hidden; background-color: #0b0e11; }
|
.trade-container { height: calc(100vh - 62px); overflow: hidden; background-color: var(--primary-bg); }
|
||||||
.market-list { height: 100%; overflow-y: auto; background-color: #0b0e11; border-right: 1px solid #2b2f36; }
|
.market-list { height: 100%; overflow-y: auto; background-color: var(--primary-bg); border-right: 1px solid #2b2f36; }
|
||||||
.trade-main { height: 100%; display: flex; flex-direction: column; background-color: #161a1e; }
|
.trade-main { height: 100%; display: flex; flex-direction: column; background-color: var(--primary-bg); }
|
||||||
.order-sidebar { height: 100%; overflow-y: auto; background-color: #0b0e11; border-left: 1px solid #2b2f36; }
|
.order-sidebar { height: 100%; overflow-y: auto; background-color: var(--primary-bg); border-left: 1px solid #2b2f36; }
|
||||||
|
|
||||||
.market-bar { background-color: #0b0e11; border-bottom: 1px solid #2b2f36; }
|
.market-bar { background-color: var(--primary-bg); border-bottom: 1px solid #2b2f36; }
|
||||||
.chart-container { flex-grow: 1; min-height: 400px; }
|
.chart-container { flex-grow: 1; min-height: 450px; background-color: var(--primary-bg); }
|
||||||
|
|
||||||
.trade-tabs .nav-link { color: #848e9c; border: none; font-weight: 600; padding: 10px 15px; font-size: 0.85rem; background: transparent; }
|
.trade-tabs .nav-link { color: #848e9c; border: none; font-weight: 600; padding: 10px 15px; font-size: 0.85rem; background: transparent; }
|
||||||
.trade-tabs .nav-link.active { color: var(--okx-blue); background: transparent; border-bottom: 2px solid var(--okx-blue); }
|
.trade-tabs .nav-link.active { color: var(--okx-blue); background: transparent; border-bottom: 2px solid var(--okx-blue); }
|
||||||
@ -28,7 +28,6 @@ $type = $_GET['type'] ?? 'spot';
|
|||||||
.depth-bg.ask { background-color: #f6465d; }
|
.depth-bg.ask { background-color: #f6465d; }
|
||||||
.depth-bg.bid { background-color: #0ecb81; }
|
.depth-bg.bid { background-color: #0ecb81; }
|
||||||
|
|
||||||
/* Shrinked Crypto Item Style */
|
|
||||||
.crypto-item { padding: 8px 12px; border-bottom: 1px solid rgba(255,255,255,0.03); cursor: pointer; transition: background 0.2s; }
|
.crypto-item { padding: 8px 12px; border-bottom: 1px solid rgba(255,255,255,0.03); cursor: pointer; transition: background 0.2s; }
|
||||||
.crypto-item:hover { background-color: #1e2329; }
|
.crypto-item:hover { background-color: #1e2329; }
|
||||||
.crypto-item.active { background-color: #1e2329; border-left: 2px solid var(--okx-blue); }
|
.crypto-item.active { background-color: #1e2329; border-left: 2px solid var(--okx-blue); }
|
||||||
@ -50,7 +49,7 @@ $type = $_GET['type'] ?? 'spot';
|
|||||||
.trade-container { height: auto; overflow: visible; }
|
.trade-container { height: auto; overflow: visible; }
|
||||||
.market-list { display: none; }
|
.market-list { display: none; }
|
||||||
.order-sidebar { border-left: none; border-top: 1px solid #2b2f36; padding-bottom: 80px; }
|
.order-sidebar { border-left: none; border-top: 1px solid #2b2f36; padding-bottom: 80px; }
|
||||||
.chart-container { min-height: 300px; }
|
.chart-container { min-height: 350px; }
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
@ -75,7 +74,7 @@ $type = $_GET['type'] ?? 'spot';
|
|||||||
<div class="market-bar p-2 d-flex align-items-center flex-wrap gap-4">
|
<div class="market-bar p-2 d-flex align-items-center flex-wrap gap-4">
|
||||||
<div class="d-flex align-items-center me-2 ps-2">
|
<div class="d-flex align-items-center me-2 ps-2">
|
||||||
<img id="current-coin-icon" src="https://static.okx.com/cdn/oksupport/asset/currency/icon/<?php echo strtolower($symbol); ?>.png" width="24" class="me-2">
|
<img id="current-coin-icon" src="https://static.okx.com/cdn/oksupport/asset/currency/icon/<?php echo strtolower($symbol); ?>.png" width="24" class="me-2">
|
||||||
<h5 class="mb-0 fw-bold text-white" style="font-size: 1.1rem;"><?php echo $symbol; ?>/USDT <span class="badge bg-secondary ms-2" style="font-size: 0.6rem; vertical-align: middle;"><?php echo mt(strtoupper($type)); ?></span></h5>
|
<h5 class="mb-0 fw-bold text-white" style="font-size: 1.1rem;"><?php echo $symbol; ?>/USDT <span class="badge bg-secondary ms-2" style="font-size: 0.6rem; vertical-align: middle;"><?php echo mt($type === 'contract' ? 'Perpetual' : 'Spot'); ?></span></h5>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div id="last-price" class="fw-bold text-success fs-5">--</div>
|
<div id="last-price" class="fw-bold text-success fs-5">--</div>
|
||||||
@ -101,15 +100,41 @@ $type = $_GET['type'] ?? 'spot';
|
|||||||
"autosize": true,
|
"autosize": true,
|
||||||
"symbol": "BINANCE:" + symbol + "USDT",
|
"symbol": "BINANCE:" + symbol + "USDT",
|
||||||
"interval": "15",
|
"interval": "15",
|
||||||
|
"timezone": "Etc/UTC",
|
||||||
"theme": "dark",
|
"theme": "dark",
|
||||||
"style": "1",
|
"style": "1",
|
||||||
"locale": "<?php echo ($lang == 'zh' ? 'zh_CN' : 'en'); ?>",
|
"locale": "<?php echo ($lang == 'zh' ? 'zh_CN' : 'en'); ?>",
|
||||||
"container_id": "tradingview_chart",
|
"toolbar_bg": "#101216",
|
||||||
|
"enable_publishing": false,
|
||||||
"hide_side_toolbar": false,
|
"hide_side_toolbar": false,
|
||||||
"allow_symbol_change": true,
|
"allow_symbol_change": true,
|
||||||
"save_image": false,
|
"container_id": "tradingview_chart",
|
||||||
"backgroundColor": "#161a1e",
|
"studies": [
|
||||||
"gridColor": "rgba(255, 255, 255, 0.05)"
|
"MASimple@tv-basicstudies",
|
||||||
|
"RSI@tv-basicstudies"
|
||||||
|
],
|
||||||
|
"show_popup_button": true,
|
||||||
|
"popup_width": "1000",
|
||||||
|
"popup_height": "650",
|
||||||
|
"backgroundColor": "#101216",
|
||||||
|
"gridColor": "rgba(255, 255, 255, 0.05)",
|
||||||
|
"overrides": {
|
||||||
|
"mainSeriesProperties.candleStyle.upColor": "#0ecb81",
|
||||||
|
"mainSeriesProperties.candleStyle.downColor": "#f6465d",
|
||||||
|
"mainSeriesProperties.candleStyle.drawWick": true,
|
||||||
|
"mainSeriesProperties.candleStyle.drawBorder": true,
|
||||||
|
"mainSeriesProperties.candleStyle.borderColor": "#378658",
|
||||||
|
"mainSeriesProperties.candleStyle.borderUpColor": "#0ecb81",
|
||||||
|
"mainSeriesProperties.candleStyle.borderDownColor": "#f6465d",
|
||||||
|
"mainSeriesProperties.candleStyle.wickUpColor": "#0ecb81",
|
||||||
|
"mainSeriesProperties.candleStyle.wickDownColor": "#f6465d",
|
||||||
|
"paneProperties.background": "#101216",
|
||||||
|
"paneProperties.vertGridProperties.color": "rgba(255, 255, 255, 0.05)",
|
||||||
|
"paneProperties.horzGridProperties.color": "rgba(255, 255, 255, 0.05)",
|
||||||
|
"symbolWatermarkProperties.transparency": 90,
|
||||||
|
"scalesProperties.textColor" : "#848e9c",
|
||||||
|
"mainSeriesProperties.showPriceLine": true
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
initChart("<?php echo $symbol; ?>");
|
initChart("<?php echo $symbol; ?>");
|
||||||
@ -117,7 +142,7 @@ $type = $_GET['type'] ?? 'spot';
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Orders/History (Bottom) -->
|
<!-- Orders/History (Bottom) -->
|
||||||
<div class="flex-grow-1 overflow-auto" style="background-color: #0b0e11;">
|
<div class="flex-grow-1 overflow-auto" style="background-color: var(--primary-bg);">
|
||||||
<ul class="nav nav-tabs trade-tabs border-bottom border-secondary sticky-top bg-dark" id="bottomTabs">
|
<ul class="nav nav-tabs trade-tabs border-bottom border-secondary sticky-top bg-dark" id="bottomTabs">
|
||||||
<li class="nav-item"><a class="nav-link active" data-bs-toggle="tab" href="#open-orders"><?php echo mt('Open Orders'); ?></a></li>
|
<li class="nav-item"><a class="nav-link active" data-bs-toggle="tab" href="#open-orders"><?php echo mt('Open Orders'); ?></a></li>
|
||||||
<li class="nav-item"><a class="nav-link" data-bs-toggle="tab" href="#order-history"><?php echo mt('Order History'); ?></a></li>
|
<li class="nav-item"><a class="nav-link" data-bs-toggle="tab" href="#order-history"><?php echo mt('Order History'); ?></a></li>
|
||||||
@ -149,9 +174,8 @@ $type = $_GET['type'] ?? 'spot';
|
|||||||
|
|
||||||
<!-- Order Sidepanel (Right) -->
|
<!-- Order Sidepanel (Right) -->
|
||||||
<div class="col-lg-3 order-sidebar">
|
<div class="col-lg-3 order-sidebar">
|
||||||
<!-- Order Book -->
|
|
||||||
<div class="order-book p-0 border-bottom border-secondary" style="height: 320px; display: flex; flex-direction: column;">
|
<div class="order-book p-0 border-bottom border-secondary" style="height: 320px; display: flex; flex-direction: column;">
|
||||||
<div class="p-2 d-flex justify-content-between small text-muted border-bottom border-secondary" style="background: #0b0e11; font-size: 0.65rem;">
|
<div class="p-2 d-flex justify-content-between small text-muted border-bottom border-secondary" style="background: var(--primary-bg); font-size: 0.65rem;">
|
||||||
<span><?php echo mt('Price'); ?> (USDT)</span>
|
<span><?php echo mt('Price'); ?> (USDT)</span>
|
||||||
<span><?php echo mt('Amount'); ?> (<?php echo $symbol; ?>)</span>
|
<span><?php echo mt('Amount'); ?> (<?php echo $symbol; ?>)</span>
|
||||||
</div>
|
</div>
|
||||||
@ -162,7 +186,6 @@ $type = $_GET['type'] ?? 'spot';
|
|||||||
<div id="order-book-bids" style="flex: 1; overflow: hidden;"></div>
|
<div id="order-book-bids" style="flex: 1; overflow: hidden;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Order Entry Form -->
|
|
||||||
<div class="p-3">
|
<div class="p-3">
|
||||||
<div class="d-flex justify-content-between align-items-center mb-3">
|
<div class="d-flex justify-content-between align-items-center mb-3">
|
||||||
<div class="nav nav-pills small bg-dark p-1 rounded-pill" id="order-type-tabs">
|
<div class="nav nav-pills small bg-dark p-1 rounded-pill" id="order-type-tabs">
|
||||||
@ -196,7 +219,7 @@ $type = $_GET['type'] ?? 'spot';
|
|||||||
|
|
||||||
<div class="mb-2" id="price-input-group">
|
<div class="mb-2" id="price-input-group">
|
||||||
<div class="input-group input-group-sm">
|
<div class="input-group input-group-sm">
|
||||||
<span class="input-group-text bg-dark border-secondary text-muted" style="min-width: 60px; font-size: 0.7rem;"><?php echo mt('Price'); ?></span>
|
<span class="input-group-text bg-dark border-secondary text-muted" style="min-width: 70px; font-size: 0.7rem;"><?php echo mt('Price'); ?></span>
|
||||||
<input type="number" id="order-price" class="form-control bg-dark text-white border-secondary shadow-none" step="0.01" style="font-size: 0.8rem;">
|
<input type="number" id="order-price" class="form-control bg-dark text-white border-secondary shadow-none" step="0.01" style="font-size: 0.8rem;">
|
||||||
<span class="input-group-text bg-dark border-secondary text-muted" style="font-size: 0.7rem;">USDT</span>
|
<span class="input-group-text bg-dark border-secondary text-muted" style="font-size: 0.7rem;">USDT</span>
|
||||||
</div>
|
</div>
|
||||||
@ -204,41 +227,39 @@ $type = $_GET['type'] ?? 'spot';
|
|||||||
|
|
||||||
<div class="mb-2">
|
<div class="mb-2">
|
||||||
<div class="input-group input-group-sm">
|
<div class="input-group input-group-sm">
|
||||||
<span class="input-group-text bg-dark border-secondary text-muted" style="min-width: 60px; font-size: 0.7rem;"><?php echo mt($type === 'contract' ? 'Lots' : 'Amount'); ?></span>
|
<span class="input-group-text bg-dark border-secondary text-muted" style="min-width: 70px; font-size: 0.7rem;"><?php echo mt($type === 'contract' ? 'Lots' : 'Amount'); ?></span>
|
||||||
<input type="number" id="order-amount" class="form-control bg-dark text-white border-secondary shadow-none" placeholder="0.00" style="font-size: 0.8rem;">
|
<input type="number" id="order-amount" class="form-control bg-dark text-white border-secondary shadow-none" placeholder="0.00" style="font-size: 0.8rem;">
|
||||||
<span class="input-group-text bg-dark border-secondary text-muted" style="font-size: 0.7rem;"><?php echo $symbol; ?></span>
|
<span class="input-group-text bg-dark border-secondary text-muted" style="font-size: 0.7rem;"><?php echo $symbol; ?></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="d-flex justify-content-between gap-1 mb-2">
|
<div class="d-flex justify-content-between gap-1 mb-3">
|
||||||
<button type="button" class="percent-btn flex-grow-1" onclick="setPercent(0.25)">25%</button>
|
<button type="button" class="percent-btn flex-grow-1" onclick="setPercent(0.25)">25%</button>
|
||||||
<button type="button" class="percent-btn flex-grow-1" onclick="setPercent(0.50)">50%</button>
|
<button type="button" class="percent-btn flex-grow-1" onclick="setPercent(0.50)">50%</button>
|
||||||
<button type="button" class="percent-btn flex-grow-1" onclick="setPercent(0.75)">75%</button>
|
<button type="button" class="percent-btn flex-grow-1" onclick="setPercent(0.75)">75%</button>
|
||||||
<button type="button" class="percent-btn flex-grow-1" onclick="setPercent(1.00)">100%</button>
|
<button type="button" class="percent-btn flex-grow-1" onclick="setPercent(1.00)">100%</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<?php if ($type === 'contract'): ?>
|
||||||
|
<div class="mb-2">
|
||||||
|
<div class="input-group input-group-sm">
|
||||||
|
<span class="input-group-text bg-dark border-secondary text-muted" style="min-width: 70px; font-size: 0.7rem;"><?php echo mt('Take-Profit'); ?></span>
|
||||||
|
<input type="number" id="take-profit" class="form-control bg-dark text-white border-secondary shadow-none" placeholder="0.00" style="font-size: 0.8rem;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3">
|
||||||
|
<div class="input-group input-group-sm">
|
||||||
|
<span class="input-group-text bg-dark border-secondary text-muted" style="min-width: 70px; font-size: 0.7rem;"><?php echo mt('Stop-Loss'); ?></span>
|
||||||
|
<input type="number" id="stop-loss" class="form-control bg-dark text-white border-secondary shadow-none" placeholder="0.00" style="font-size: 0.8rem;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
<div class="d-flex justify-content-between small text-muted mb-4 px-1" style="font-size: 0.7rem;">
|
<div class="d-flex justify-content-between small text-muted mb-4 px-1" style="font-size: 0.7rem;">
|
||||||
<span><?php echo mt('Available'); ?></span>
|
<span><?php echo mt('Available'); ?></span>
|
||||||
<span class="text-white"><?php echo number_format($user['balance_usdt'] ?? 0, 2); ?> USDT</span>
|
<span class="text-white"><?php echo number_format($user['balance_usdt'] ?? 0, 2); ?> USDT</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php if ($type === 'contract'): ?>
|
|
||||||
<div class="row g-2 mb-4">
|
|
||||||
<div class="col-6">
|
|
||||||
<div class="input-group input-group-sm">
|
|
||||||
<span class="input-group-text bg-dark border-secondary text-muted px-2" style="min-width: unset; font-size: 0.7rem;">TP</span>
|
|
||||||
<input type="number" id="tp-price" class="form-control bg-dark text-white border-secondary shadow-none" placeholder="<?php echo mt('Price'); ?>" style="font-size: 0.7rem;">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-6">
|
|
||||||
<div class="input-group input-group-sm">
|
|
||||||
<span class="input-group-text bg-dark border-secondary text-muted px-2" style="min-width: unset; font-size: 0.7rem;">SL</span>
|
|
||||||
<input type="number" id="sl-price" class="form-control bg-dark text-white border-secondary shadow-none" placeholder="<?php echo mt('Price'); ?>" style="font-size: 0.7rem;">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<?php endif; ?>
|
|
||||||
|
|
||||||
<button type="button" id="submit-btn" class="btn btn-buy w-100 py-3 mb-3 fs-6 rounded-3" onclick="submitOrder()">
|
<button type="button" id="submit-btn" class="btn btn-buy w-100 py-3 mb-3 fs-6 rounded-3" onclick="submitOrder()">
|
||||||
<?php echo mt('Buy'); ?> <?php echo $symbol; ?>
|
<?php echo mt('Buy'); ?> <?php echo $symbol; ?>
|
||||||
</button>
|
</button>
|
||||||
@ -278,9 +299,7 @@ function calculateMax() {
|
|||||||
if (document.getElementById('trade-type').value === 'contract') {
|
if (document.getElementById('trade-type').value === 'contract') {
|
||||||
max *= currentLeverage;
|
max *= currentLeverage;
|
||||||
}
|
}
|
||||||
// Save max to a hidden property or global for setPercent to use
|
|
||||||
window.currentMaxAmount = max;
|
window.currentMaxAmount = max;
|
||||||
|
|
||||||
if (isMarket) {
|
if (isMarket) {
|
||||||
priceInput.value = price.toFixed(2);
|
priceInput.value = price.toFixed(2);
|
||||||
}
|
}
|
||||||
@ -296,7 +315,7 @@ function setPercent(p) {
|
|||||||
function submitOrder() {
|
function submitOrder() {
|
||||||
const amount = document.getElementById('order-amount').value;
|
const amount = document.getElementById('order-amount').value;
|
||||||
if (!amount || amount <= 0) {
|
if (!amount || amount <= 0) {
|
||||||
alert('Please enter a valid amount.');
|
alert('<?php echo mt('Please enter a valid amount.'); ?>');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -305,7 +324,6 @@ function submitOrder() {
|
|||||||
const symbol = document.getElementById('current-symbol').value;
|
const symbol = document.getElementById('current-symbol').value;
|
||||||
const price = type === 'Limit' ? document.getElementById('order-price').value : 'Market';
|
const price = type === 'Limit' ? document.getElementById('order-price').value : 'Market';
|
||||||
|
|
||||||
// Add to simulated history
|
|
||||||
const list = document.getElementById('open-orders-list');
|
const list = document.getElementById('open-orders-list');
|
||||||
const row = `
|
const row = `
|
||||||
<tr class="border-secondary">
|
<tr class="border-secondary">
|
||||||
@ -316,25 +334,23 @@ function submitOrder() {
|
|||||||
<td>${price}</td>
|
<td>${price}</td>
|
||||||
<td>${amount}</td>
|
<td>${amount}</td>
|
||||||
<td>0%</td>
|
<td>0%</td>
|
||||||
<td><button class="btn btn-sm btn-link text-danger p-0 text-decoration-none">Cancel</button></td>
|
<td><button class="btn btn-sm btn-link text-danger p-0 text-decoration-none"><?php echo mt('Cancel'); ?></button></td>
|
||||||
</tr>
|
</tr>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
if (list.innerHTML.includes('No open orders') || list.innerHTML.includes('无挂单')) {
|
if (list.innerHTML.includes('No open orders') || list.innerHTML.includes('无挂单') || list.innerHTML.includes('暂无挂单')) {
|
||||||
list.innerHTML = row;
|
list.innerHTML = row;
|
||||||
} else {
|
} else {
|
||||||
list.innerHTML = row + list.innerHTML;
|
list.innerHTML = row + list.innerHTML;
|
||||||
}
|
}
|
||||||
|
|
||||||
alert('Order submitted successfully!');
|
alert('<?php echo mt('Order submitted successfully!'); ?>');
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
// Initial max calculation
|
|
||||||
setTimeout(calculateMax, 1000);
|
setTimeout(calculateMax, 1000);
|
||||||
setInterval(calculateMax, 3000);
|
setInterval(calculateMax, 3000);
|
||||||
|
|
||||||
// Limit/Market toggle
|
|
||||||
document.getElementById('tab-limit').addEventListener('click', function() {
|
document.getElementById('tab-limit').addEventListener('click', function() {
|
||||||
document.getElementById('price-input-group').style.display = 'block';
|
document.getElementById('price-input-group').style.display = 'block';
|
||||||
this.classList.add('active');
|
this.classList.add('active');
|
||||||
@ -349,7 +365,6 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
calculateMax();
|
calculateMax();
|
||||||
});
|
});
|
||||||
|
|
||||||
// Side coloring
|
|
||||||
document.querySelectorAll('input[name="side"]').forEach(radio => {
|
document.querySelectorAll('input[name="side"]').forEach(radio => {
|
||||||
radio.addEventListener('change', (e) => {
|
radio.addEventListener('change', (e) => {
|
||||||
const btn = document.getElementById('submit-btn');
|
const btn = document.getElementById('submit-btn');
|
||||||
|
|||||||
36
withdraw.php
36
withdraw.php
@ -15,15 +15,15 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|||||||
$security_password = $_POST['security_password'] ?? '';
|
$security_password = $_POST['security_password'] ?? '';
|
||||||
|
|
||||||
if ($amount <= 0) {
|
if ($amount <= 0) {
|
||||||
$error = mt('Error');
|
$error = mt('Please enter a valid amount.');
|
||||||
} elseif ($amount > $user['balance_usdt']) {
|
} elseif ($amount > $user['balance_usdt']) {
|
||||||
$error = mt('Error');
|
$error = mt('Insufficient balance.');
|
||||||
} elseif (!password_verify($security_password, $user['security_password'])) {
|
} elseif (!password_verify($security_password, $user['security_password'])) {
|
||||||
$error = mt('Current password incorrect.');
|
$error = mt('Current password incorrect.');
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
db()->prepare("UPDATE users SET balance_usdt = balance_usdt - ? WHERE id = ?")->execute([$amount, $user['id']]);
|
db()->prepare("UPDATE users SET balance_usdt = balance_usdt - ? WHERE id = ?")->execute([$amount, $user['id']]);
|
||||||
$success = mt('Success');
|
$success = mt('Withdrawal request submitted successfully.');
|
||||||
$user['balance_usdt'] -= $amount;
|
$user['balance_usdt'] -= $amount;
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
$error = mt('Error');
|
$error = mt('Error');
|
||||||
@ -40,14 +40,14 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|||||||
<button onclick="history.back()" class="btn btn-dark rounded-circle me-3 border-secondary" style="width: 40px; height: 40px;">
|
<button onclick="history.back()" class="btn btn-dark rounded-circle me-3 border-secondary" style="width: 40px; height: 40px;">
|
||||||
<i class="fas fa-arrow-left"></i>
|
<i class="fas fa-arrow-left"></i>
|
||||||
</button>
|
</button>
|
||||||
<h3 class="fw-bold mb-0 text-white"><i class="fas fa-arrow-up me-2 text-danger"></i> <?php echo mt('Withdraw'); ?></h3>
|
<h3 class="fw-bold mb-0 text-white"><i class="fas fa-arrow-up me-2 text-danger"></i> <?php echo mt('Withdrawal'); ?></h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?php if ($error): ?>
|
<?php if ($error): ?>
|
||||||
<div class="alert alert-danger bg-danger bg-opacity-10 border-0 text-danger" style="border-radius: 12px;"><?php echo $error; ?></div>
|
<div class="alert alert-danger bg-danger bg-opacity-10 border-0 text-danger small" style="border-radius: 12px;"><?php echo $error; ?></div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<?php if ($success): ?>
|
<?php if ($success): ?>
|
||||||
<div class="alert alert-success bg-success bg-opacity-10 border-0 text-success" style="border-radius: 12px;"><?php echo $success; ?></div>
|
<div class="alert alert-success bg-success bg-opacity-10 border-0 text-success small" style="border-radius: 12px;"><?php echo $success; ?></div>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<div class="bg-secondary bg-opacity-10 p-4 rounded-4 mb-4 border border-secondary border-opacity-25">
|
<div class="bg-secondary bg-opacity-10 p-4 rounded-4 mb-4 border border-secondary border-opacity-25">
|
||||||
@ -58,36 +58,46 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|||||||
<form method="POST">
|
<form method="POST">
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label text-muted small"><?php echo mt('Withdrawal Address'); ?></label>
|
<label class="form-label text-muted small"><?php echo mt('Withdrawal Address'); ?></label>
|
||||||
<input type="text" name="address" class="form-control bg-dark text-white border-secondary py-3 px-3 rounded-3" placeholder="USDT (TRC20)" required>
|
<input type="text" name="address" class="form-control bg-dark text-white border-secondary py-3 px-3 rounded-3 shadow-none" placeholder="USDT (TRC20)" required>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label text-muted small"><?php echo mt('Amount'); ?></label>
|
<label class="form-label text-muted small"><?php echo mt('Amount'); ?></label>
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="number" name="amount" class="form-control bg-dark text-white border-secondary py-3 px-3 rounded-start-3" placeholder="Min 10.00" step="0.01" required>
|
<input type="number" name="amount" class="form-control bg-dark text-white border-secondary py-3 px-3 rounded-start-3 shadow-none" placeholder="Min 10.00" step="0.01" required>
|
||||||
<span class="input-group-text bg-dark border-secondary text-white rounded-end-3">USDT</span>
|
<span class="input-group-text bg-dark border-secondary text-white rounded-end-3">USDT</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-4">
|
<div class="mb-4">
|
||||||
<label class="form-label text-muted small"><?php echo mt('Trading Password'); ?></label>
|
<label class="form-label text-muted small"><?php echo mt('Trading Password'); ?></label>
|
||||||
<input type="password" name="security_password" class="form-control bg-dark text-white border-secondary py-3 px-3 rounded-3" placeholder="6-digit" pattern="\d{6}" maxlength="6" required>
|
<input type="password" name="security_password" class="form-control bg-dark text-white border-secondary py-3 px-3 rounded-3 shadow-none" placeholder="6-digit" pattern="\d{6}" maxlength="6" required>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button type="submit" class="btn btn-danger w-100 py-3 fw-bold fs-5 rounded-3 shadow-sm"><?php echo mt('Withdraw'); ?></button>
|
<button type="submit" class="btn btn-danger w-100 py-3 fw-bold fs-5 rounded-3 shadow-sm" style="background-color: var(--danger); border: none;">
|
||||||
|
<?php echo mt('Withdrawal'); ?>
|
||||||
|
</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mt-4 p-4 bg-secondary bg-opacity-10 rounded-4 border border-secondary border-opacity-25">
|
<div class="mt-4 p-4 bg-secondary bg-opacity-10 rounded-4 border border-secondary border-opacity-25">
|
||||||
<h6 class="text-white fw-bold mb-3 small text-uppercase" style="letter-spacing: 1px;"><?php echo mt('Notes'); ?></h6>
|
<h6 class="text-white fw-bold mb-3 small text-uppercase" style="letter-spacing: 1px;"><?php echo mt('Notes'); ?></h6>
|
||||||
<ul class="text-muted small mb-0 ps-3">
|
<ul class="text-muted small mb-0 ps-3">
|
||||||
<li class="mb-2">Withdrawals are processed within 10-30 minutes.</li>
|
<li class="mb-2"><?php echo mt('Withdrawals are processed within 10-30 minutes.'); ?></li>
|
||||||
<li class="mb-2">Minimum withdrawal amount is 10 USDT.</li>
|
<li class="mb-2"><?php echo mt('Minimum withdrawal amount is 10 USDT.'); ?></li>
|
||||||
<li>Ensure the receiving address supports the TRC20 network.</li>
|
<li><?php echo mt('Ensure the receiving address supports the TRC20 network.'); ?></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.form-control:focus {
|
||||||
|
background-color: #2b2f36;
|
||||||
|
border-color: var(--danger);
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
<?php require_once 'includes/footer.php'; ?>
|
<?php require_once 'includes/footer.php'; ?>
|
||||||
Loading…
x
Reference in New Issue
Block a user