![]() Server : Apache/2 System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 User : gositeme ( 1004) PHP Version : 8.2.29 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/gositeme/.cursor-server/data/User/History/-291e82dd/ |
<?php
// Site Settings Admin Tab
$current_tab = 'site_settings';
// Handle form submission
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) {
$action = $_POST['action'];
switch ($action) {
case 'update_site_settings':
$ajax_enabled = isset($_POST['ajax_enabled']) ? 1 : 0;
$debug_mode = isset($_POST['debug_mode']) ? 1 : 0;
$stripe_enabled = isset($_POST['stripe_enabled']) ? 1 : 0;
$stripe_live_mode = isset($_POST['stripe_live_mode']) ? 1 : 0;
$paypal_enabled = isset($_POST['paypal_enabled']) ? 1 : 0;
$auto_refresh_payment_methods = isset($_POST['auto_refresh_payment_methods']) ? 1 : 0;
$global_player_enabled = isset($_POST['global_player_enabled']) ? 1 : 0;
$auto_play_enabled = isset($_POST['auto_play_enabled']) ? 1 : 0;
$shuffle_enabled = isset($_POST['shuffle_enabled']) ? 1 : 0;
// Update settings in database
$stmt = $pdo->prepare("
INSERT INTO site_settings (setting_key, setting_value, updated_at)
VALUES (?, ?, NOW())
ON DUPLICATE KEY UPDATE setting_value = VALUES(setting_value), updated_at = NOW()
");
$settings = [
'ajax_enabled' => $ajax_enabled,
'debug_mode' => $debug_mode,
'stripe_enabled' => $stripe_enabled,
'stripe_live_mode' => $stripe_live_mode,
'paypal_enabled' => $paypal_enabled,
'auto_refresh_payment_methods' => $auto_refresh_payment_methods,
'global_player_enabled' => $global_player_enabled,
'auto_play_enabled' => $auto_play_enabled,
'shuffle_enabled' => $shuffle_enabled
];
foreach ($settings as $key => $value) {
$stmt->execute([$key, $value]);
}
$success_message = "Site settings updated successfully!";
break;
}
}
// Get current settings
$stmt = $pdo->prepare("SELECT setting_key, setting_value FROM site_settings");
$stmt->execute();
$settings = [];
while ($row = $stmt->fetch()) {
$settings[$row['setting_key']] = $row['setting_value'];
}
$ajax_enabled = $settings['ajax_enabled'] ?? 1;
$debug_mode = $settings['debug_mode'] ?? 0;
$stripe_enabled = $settings['stripe_enabled'] ?? 1;
$stripe_live_mode = $settings['stripe_live_mode'] ?? 1;
$paypal_enabled = $settings['paypal_enabled'] ?? 0;
$auto_refresh_payment_methods = $settings['auto_refresh_payment_methods'] ?? 0;
$global_player_enabled = $settings['global_player_enabled'] ?? 1;
$auto_play_enabled = $settings['auto_play_enabled'] ?? 0;
$shuffle_enabled = $settings['shuffle_enabled'] ?? 0;
?>
<div class="admin-tab-content">
<div class="tab-header">
<h2><i class="fas fa-cogs"></i> Site Settings</h2>
<p>Configure global site settings and features</p>
</div>
<?php if (isset($success_message)): ?>
<div class="alert alert-success">
<i class="fas fa-check-circle"></i>
<?= htmlspecialchars($success_message) ?>
</div>
<?php endif; ?>
<div class="settings-grid">
<!-- AJAX Settings -->
<div class="settings-card">
<div class="card-header">
<h3><i class="fas fa-sync-alt"></i> AJAX & Dynamic Content</h3>
<p>Control dynamic content loading and real-time updates</p>
</div>
<div class="card-content">
<form method="POST" class="settings-form">
<input type="hidden" name="action" value="update_site_settings">
<div class="setting-item">
<label class="setting-label">
<input type="checkbox" name="ajax_enabled" value="1" <?= $ajax_enabled ? 'checked' : '' ?>>
<span class="setting-text">
<strong>Enable AJAX Sitewide</strong>
<small>Enable dynamic content loading and real-time updates across the site</small>
</span>
</label>
</div>
<div class="setting-item">
<label class="setting-label">
<input type="checkbox" name="auto_refresh_payment_methods" value="1" <?= $auto_refresh_payment_methods ? 'checked' : '' ?>>
<span class="setting-text">
<strong>Auto-Refresh Payment Methods</strong>
<small>Automatically refresh payment methods after adding cards (may cause display issues)</small>
</span>
</label>
</div>
<button type="submit" class="save-btn">
<i class="fas fa-save"></i> Save AJAX Settings
</button>
</form>
</div>
</div>
<!-- Debug Settings -->
<div class="settings-card">
<div class="card-header">
<h3><i class="fas fa-bug"></i> Debug & Development</h3>
<p>Development and troubleshooting settings</p>
</div>
<div class="card-content">
<form method="POST" class="settings-form">
<input type="hidden" name="action" value="update_site_settings">
<div class="setting-item">
<label class="setting-label">
<input type="checkbox" name="debug_mode" value="1" <?= $debug_mode ? 'checked' : '' ?>>
<span class="setting-text">
<strong>Enable Debug Mode</strong>
<small>Show detailed error messages and debug information</small>
</span>
</label>
</div>
<button type="submit" class="save-btn">
<i class="fas fa-save"></i> Save Debug Settings
</button>
</form>
</div>
</div>
<!-- Payment Settings -->
<div class="settings-card">
<div class="card-header">
<h3><i class="fas fa-credit-card"></i> Payment Processing</h3>
<p>Payment gateway and processing settings</p>
</div>
<div class="card-content">
<form method="POST" class="settings-form">
<input type="hidden" name="action" value="update_site_settings">
<div class="setting-item">
<label class="setting-label">
<input type="checkbox" name="stripe_enabled" value="1" <?= $stripe_enabled ? 'checked' : '' ?>>
<span class="setting-text">
<strong>Enable Stripe</strong>
<small>Show Stripe as a payment option in checkout</small>
</span>
</label>
</div>
<div class="setting-item">
<label class="setting-label">
<input type="checkbox" name="stripe_live_mode" value="1" <?= $stripe_live_mode ? 'checked' : '' ?>>
<span class="setting-text">
<strong>Stripe Live Mode</strong>
<small>Use live Stripe API keys (uncheck for test mode)</small>
</span>
</label>
</div>
<div class="setting-item">
<label class="setting-label">
<input type="checkbox" name="paypal_enabled" value="1" <?= $paypal_enabled ? 'checked' : '' ?>>
<span class="setting-text">
<strong>Enable PayPal</strong>
<small>Show PayPal as a payment option in checkout</small>
</span>
</label>
</div>
<button type="submit" class="save-btn">
<i class="fas fa-save"></i> Save Payment Settings
</button>
</form>
</div>
</div>
<!-- Global Player Settings -->
<div class="settings-card">
<div class="card-header">
<h3><i class="fas fa-music"></i> Global Music Player</h3>
<p>Configure the global music player behavior</p>
</div>
<div class="card-content">
<form method="POST" class="settings-form">
<input type="hidden" name="action" value="update_site_settings">
<div class="setting-item">
<label class="setting-label">
<input type="checkbox" name="global_player_enabled" value="1" <?= $global_player_enabled ? 'checked' : '' ?>>
<span class="setting-text">
<strong>Enable Global Player</strong>
<small>Show the global music player at the bottom of all pages</small>
</span>
</label>
</div>
<div class="setting-item">
<label class="setting-label">
<input type="checkbox" name="auto_play_enabled" value="1" <?= $auto_play_enabled ? 'checked' : '' ?>>
<span class="setting-text">
<strong>Auto-Play Music</strong>
<small>Automatically start playing music when the page loads</small>
</span>
</label>
</div>
<div class="setting-item">
<label class="setting-label">
<input type="checkbox" name="shuffle_enabled" value="1" <?= $shuffle_enabled ? 'checked' : '' ?>>
<span class="setting-text">
<strong>Enable Shuffle</strong>
<small>Start with shuffle mode enabled by default</small>
</span>
</label>
</div>
<button type="submit" class="save-btn">
<i class="fas fa-save"></i> Save Player Settings
</button>
</form>
</div>
</div>
<!-- System Info -->
<div class="settings-card">
<div class="card-header">
<h3><i class="fas fa-info-circle"></i> System Information</h3>
<p>Current system status and configuration</p>
</div>
<div class="card-content">
<div class="info-grid">
<div class="info-item">
<strong>PHP Version:</strong> <?= phpversion() ?>
</div>
<div class="info-item">
<strong>Database:</strong> MySQL
</div>
<div class="info-item">
<strong>Session Status:</strong> <?= session_status() === PHP_SESSION_ACTIVE ? 'Active' : 'Inactive' ?>
</div>
<div class="info-item">
<strong>AJAX Status:</strong>
<span class="status-badge <?= $ajax_enabled ? 'status-active' : 'status-inactive' ?>">
<?= $ajax_enabled ? 'Enabled' : 'Disabled' ?>
</span>
</div>
<div class="info-item">
<strong>Debug Mode:</strong>
<span class="status-badge <?= $debug_mode ? 'status-active' : 'status-inactive' ?>">
<?= $debug_mode ? 'Enabled' : 'Disabled' ?>
</span>
</div>
<div class="info-item">
<strong>Stripe Mode:</strong>
<span class="status-badge <?= $stripe_live_mode ? 'status-active' : 'status-inactive' ?>">
<?= $stripe_live_mode ? 'Live' : 'Test' ?>
</span>
</div>
<div class="info-item">
<strong>Global Player:</strong>
<span class="status-badge <?= $global_player_enabled ? 'status-active' : 'status-inactive' ?>">
<?= $global_player_enabled ? 'Enabled' : 'Disabled' ?>
</span>
</div>
<div class="info-item">
<strong>Auto-Play:</strong>
<span class="status-badge <?= $auto_play_enabled ? 'status-active' : 'status-inactive' ?>">
<?= $auto_play_enabled ? 'Enabled' : 'Disabled' ?>
</span>
</div>
<div class="info-item">
<strong>Shuffle Mode:</strong>
<span class="status-badge <?= $shuffle_enabled ? 'status-active' : 'status-inactive' ?>">
<?= $shuffle_enabled ? 'Enabled' : 'Disabled' ?>
</span>
</div>
</div>
</div>
</div>
</div>
</div>
<style>
.settings-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
gap: 2rem;
margin-top: 2rem;
}
.settings-card {
background: rgba(255, 255, 255, 0.03);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 16px;
padding: 2rem;
}
.card-header h3 {
color: white;
margin: 0 0 0.5rem 0;
display: flex;
align-items: center;
gap: 0.8rem;
font-size: 1.4rem;
}
.card-header p {
color: #a0aec0;
margin: 0;
font-size: 0.9rem;
}
.setting-item {
margin-bottom: 1.5rem;
}
.setting-label {
display: flex;
align-items: flex-start;
gap: 1rem;
cursor: pointer;
}
.setting-label input[type="checkbox"] {
margin-top: 0.2rem;
transform: scale(1.2);
}
.setting-text strong {
display: block;
color: white;
margin-bottom: 0.3rem;
}
.setting-text small {
color: #a0aec0;
font-size: 0.85rem;
line-height: 1.4;
}
.save-btn {
background: linear-gradient(135deg, #667eea, #764ba2);
color: white;
border: none;
padding: 0.8rem 1.5rem;
border-radius: 8px;
font-size: 1rem;
font-weight: 600;
cursor: pointer;
transition: all 0.3s ease;
display: flex;
align-items: center;
gap: 0.5rem;
}
.save-btn:hover {
transform: translateY(-2px);
box-shadow: 0 8px 25px rgba(102, 126, 234, 0.4);
}
.info-grid {
display: grid;
gap: 1rem;
}
.info-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0.8rem;
background: rgba(255, 255, 255, 0.05);
border-radius: 8px;
color: white;
}
.status-badge {
padding: 0.3rem 0.8rem;
border-radius: 20px;
font-size: 0.8rem;
font-weight: 600;
}
.status-active {
background: rgba(72, 187, 120, 0.2);
color: #48bb78;
border: 1px solid rgba(72, 187, 120, 0.3);
}
.status-inactive {
background: rgba(245, 101, 101, 0.2);
color: #f56565;
border: 1px solid rgba(245, 101, 101, 0.3);
}
</style>