![]() 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;
$genres_modal_enabled = isset($_POST['genres_modal_enabled']) ? 1 : 0;
$genres_modal_delay = isset($_POST['genres_modal_delay']) ? intval($_POST['genres_modal_delay']) : 15;
$genres_modal_frequency = isset($_POST['genres_modal_frequency']) ? $_POST['genres_modal_frequency'] : 'once_per_session';
// 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,
'genres_modal_enabled' => $genres_modal_enabled,
'genres_modal_delay' => $genres_modal_delay,
'genres_modal_frequency' => $genres_modal_frequency
];
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;
$genres_modal_enabled = $settings['genres_modal_enabled'] ?? 1;
$genres_modal_delay = $settings['genres_modal_delay'] ?? 15;
$genres_modal_frequency = $settings['genres_modal_frequency'] ?? 'once_per_session';
?>
<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>
<!-- Genres Modal Settings -->
<div class="settings-card">
<div class="card-header">
<h3><i class="fas fa-window-restore"></i> Homepage Genres Modal</h3>
<p>Configure the genres popup modal on the homepage</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="genres_modal_enabled" value="1" <?= $genres_modal_enabled ? 'checked' : '' ?>>
<span class="setting-text">
<strong>Enable Genres Modal</strong>
<small>Show the genres selection popup on the homepage</small>
</span>
</label>
</div>
<div class="setting-item">
<label class="setting-label">
<span class="setting-text">
<strong>Show Delay (seconds)</strong>
<small>How many seconds to wait before showing the modal</small>
</span>
</label>
<input type="number" name="genres_modal_delay" value="<?= htmlspecialchars($genres_modal_delay) ?>" min="0" max="300" step="1" style="width: 100px; padding: 0.5rem; border-radius: 6px; border: 1px solid rgba(255, 255, 255, 0.2); background: rgba(255, 255, 255, 0.05); color: white; margin-top: 0.5rem;">
</div>
<div class="setting-item">
<label class="setting-label">
<span class="setting-text">
<strong>Show Frequency</strong>
<small>How often the modal should appear</small>
</span>
</label>
<select name="genres_modal_frequency" style="width: 100%; padding: 0.5rem; border-radius: 6px; border: 1px solid rgba(255, 255, 255, 0.2); background: rgba(255, 255, 255, 0.05); color: white; margin-top: 0.5rem;">
<option value="never" <?= $genres_modal_frequency === 'never' ? 'selected' : '' ?>>Never Show</option>
<option value="once_per_session" <?= $genres_modal_frequency === 'once_per_session' ? 'selected' : '' ?>>Once Per Session</option>
<option value="once_per_day" <?= $genres_modal_frequency === 'once_per_day' ? 'selected' : '' ?>>Once Per Day</option>
<option value="every_page_load" <?= $genres_modal_frequency === 'every_page_load' ? 'selected' : '' ?>>Every Page Load</option>
</select>
</div>
<button type="submit" class="save-btn">
<i class="fas fa-save"></i> Save Modal 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 class="info-item">
<strong>Genres Modal:</strong>
<span class="status-badge <?= $genres_modal_enabled ? 'status-active' : 'status-inactive' ?>">
<?= $genres_modal_enabled ? 'Enabled' : 'Disabled' ?>
</span>
</div>
<div class="info-item">
<strong>Modal Delay:</strong>
<span style="color: #a0aec0;"><?= htmlspecialchars($genres_modal_delay) ?> seconds</span>
</div>
<div class="info-item">
<strong>Modal Frequency:</strong>
<span style="color: #a0aec0; text-transform: capitalize;"><?= str_replace('_', ' ', htmlspecialchars($genres_modal_frequency)) ?></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>