![]() 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/domains/soundstudiopro.com/private_html/ |
<?php
session_start();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Global Player Audit - SoundStudioPro</title>
<style>
body {
font-family: 'Courier New', monospace;
background: #1a1a1a;
color: #fff;
padding: 2rem;
line-height: 1.6;
}
.section {
background: #2a2a2a;
padding: 2rem;
margin: 2rem 0;
border-radius: 8px;
border-left: 4px solid #667eea;
}
.error { color: #f87171; }
.success { color: #4ade80; }
.warning { color: #fbbf24; }
.info { color: #60a5fa; }
.test-btn {
background: #667eea;
color: white;
border: none;
padding: 1rem 2rem;
border-radius: 8px;
cursor: pointer;
margin: 0.5rem;
}
.test-btn:hover { background: #5a67d8; }
.log {
background: #333;
padding: 1rem;
border-radius: 8px;
font-family: monospace;
height: 300px;
overflow-y: auto;
margin: 1rem 0;
}
.status-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 1rem;
margin: 1rem 0;
}
.status-item {
background: #333;
padding: 1rem;
border-radius: 8px;
border: 1px solid #444;
}
</style>
</head>
<body>
<h1>๐ต Global Player Audit - SoundStudioPro</h1>
<div class="section">
<h2>๐ Audit Summary</h2>
<div id="auditSummary">
<p>Running comprehensive audit...</p>
</div>
</div>
<div class="section">
<h2>๐ Component Status</h2>
<div class="status-grid" id="componentStatus">
<!-- Status items will be populated by JavaScript -->
</div>
</div>
<div class="section">
<h2>๐งช Function Tests</h2>
<button class="test-btn" onclick="testGlobalPlayer()">Test Global Player</button>
<button class="test-btn" onclick="testPlayTrack()">Test playTrack Function</button>
<button class="test-btn" onclick="testHomepageIntegration()">Test Homepage Integration</button>
<button class="test-btn" onclick="testLibraryIntegration()">Test Library Integration</button>
<button class="test-btn" onclick="testVariationsModal()">Test Variations Modal</button>
</div>
<div class="section">
<h2>๐ Console Log</h2>
<div id="consoleLog" class="log"></div>
</div>
<div class="section">
<h2>๐ง Issues Found</h2>
<div id="issuesList">
<!-- Issues will be populated by JavaScript -->
</div>
</div>
<div class="section">
<h2>โ
Fixes Applied</h2>
<div id="fixesApplied">
<!-- Fixes will be populated by JavaScript -->
</div>
</div>
<script>
// Override console methods to capture logs
const originalLog = console.log;
const originalError = console.error;
const originalWarn = console.warn;
const logDiv = document.getElementById('consoleLog');
function addLog(message, type = 'info') {
const colors = {
info: '#60a5fa',
error: '#f87171',
success: '#4ade80',
warning: '#fbbf24'
};
const timestamp = new Date().toLocaleTimeString();
logDiv.innerHTML += `<div style="color: ${colors[type]}">[${timestamp}] ${message}</div>`;
logDiv.scrollTop = logDiv.scrollHeight;
}
console.log = function(...args) {
originalLog.apply(console, args);
addLog(args.join(' '), 'info');
};
console.error = function(...args) {
originalError.apply(console, args);
addLog('ERROR: ' + args.join(' '), 'error');
};
console.warn = function(...args) {
originalWarn.apply(console, args);
addLog('WARNING: ' + args.join(' '), 'warning');
};
// Audit results
const auditResults = {
issues: [],
fixes: [],
components: {}
};
function addIssue(component, issue, severity = 'error') {
auditResults.issues.push({ component, issue, severity });
}
function addFix(component, fix) {
auditResults.fixes.push({ component, fix });
}
function updateComponentStatus(component, status, details = '') {
auditResults.components[component] = { status, details };
}
function updateStatusDisplay() {
const statusDiv = document.getElementById('componentStatus');
const issuesDiv = document.getElementById('issuesList');
const fixesDiv = document.getElementById('fixesApplied');
// Update component status
statusDiv.innerHTML = '';
Object.entries(auditResults.components).forEach(([component, data]) => {
const color = data.status === 'success' ? '#4ade80' : data.status === 'warning' ? '#fbbf24' : '#f87171';
statusDiv.innerHTML += `
<div class="status-item">
<h3 style="color: ${color}">${component}</h3>
<p>Status: ${data.status}</p>
<p>${data.details}</p>
</div>
`;
});
// Update issues
issuesDiv.innerHTML = '';
auditResults.issues.forEach(issue => {
const color = issue.severity === 'error' ? '#f87171' : issue.severity === 'warning' ? '#fbbf24' : '#60a5fa';
issuesDiv.innerHTML += `<p style="color: ${color}">โข <strong>${issue.component}:</strong> ${issue.issue}</p>`;
});
// Update fixes
fixesDiv.innerHTML = '';
auditResults.fixes.forEach(fix => {
fixesDiv.innerHTML += `<p style="color: #4ade80">โข <strong>${fix.component}:</strong> ${fix.fix}</p>`;
});
}
// Test functions
function testGlobalPlayer() {
console.log('๐ต Testing Global Player...');
// Check if enhanced global player exists
if (typeof window.enhancedGlobalPlayer !== 'undefined') {
console.log('โ
Enhanced Global Player found');
updateComponentStatus('Enhanced Global Player', 'success', 'Available');
// Check functions
if (typeof window.enhancedGlobalPlayer.playTrack === 'function') {
console.log('โ
playTrack function available');
updateComponentStatus('playTrack Function', 'success', 'Available');
} else {
console.error('โ playTrack function missing');
updateComponentStatus('playTrack Function', 'error', 'Missing');
addIssue('Global Player', 'playTrack function not found', 'error');
}
if (typeof window.enhancedGlobalPlayer.showPlayer === 'function') {
console.log('โ
showPlayer function available');
updateComponentStatus('showPlayer Function', 'success', 'Available');
} else {
console.error('โ showPlayer function missing');
updateComponentStatus('showPlayer Function', 'error', 'Missing');
addIssue('Global Player', 'showPlayer function not found', 'error');
}
if (typeof window.enhancedGlobalPlayer.init === 'function') {
console.log('โ
init function available');
updateComponentStatus('init Function', 'success', 'Available');
} else {
console.error('โ init function missing');
updateComponentStatus('init Function', 'error', 'Missing');
addIssue('Global Player', 'init function not found', 'error');
}
} else {
console.error('โ Enhanced Global Player not found');
updateComponentStatus('Enhanced Global Player', 'error', 'Not Found');
addIssue('Global Player', 'Enhanced Global Player not loaded', 'error');
}
// Check for old global player references
if (typeof window.globalPlayer !== 'undefined') {
console.warn('โ ๏ธ Old globalPlayer found - should be removed');
updateComponentStatus('Old Global Player', 'warning', 'Should be removed');
addIssue('Global Player', 'Old globalPlayer reference found', 'warning');
}
updateStatusDisplay();
}
function testPlayTrack() {
console.log('๐ต Testing playTrack function...');
// Test with enhanced global player
if (typeof window.enhancedGlobalPlayer !== 'undefined' && typeof window.enhancedGlobalPlayer.playTrack === 'function') {
console.log('โ
Testing enhancedGlobalPlayer.playTrack');
try {
window.enhancedGlobalPlayer.playTrack('https://www.soundjay.com/misc/sounds/bell-ringing-05.wav', 'Test Track', 'Test Artist');
console.log('โ
playTrack test successful');
updateComponentStatus('playTrack Test', 'success', 'Working');
} catch (error) {
console.error('โ playTrack test failed:', error);
updateComponentStatus('playTrack Test', 'error', 'Failed: ' + error.message);
addIssue('playTrack', 'Function call failed: ' + error.message, 'error');
}
} else {
console.error('โ playTrack function not available');
updateComponentStatus('playTrack Test', 'error', 'Function not available');
addIssue('playTrack', 'Function not available', 'error');
}
updateStatusDisplay();
}
function testHomepageIntegration() {
console.log('๐ต Testing Homepage Integration...');
// Check if homepage functions exist
if (typeof window.playTrackWithGlobalPlayer === 'function') {
console.warn('โ ๏ธ Old playTrackWithGlobalPlayer found in homepage');
updateComponentStatus('Homepage Integration', 'warning', 'Using old function');
addIssue('Homepage', 'Using old playTrackWithGlobalPlayer function', 'warning');
} else {
console.log('โ
No old playTrackWithGlobalPlayer found');
updateComponentStatus('Homepage Integration', 'success', 'No old functions');
}
// Check if global playTrack function exists
if (typeof window.playTrack === 'function') {
console.log('โ
Global playTrack function found');
updateComponentStatus('Global playTrack', 'success', 'Available');
} else {
console.error('โ Global playTrack function missing');
updateComponentStatus('Global playTrack', 'error', 'Missing');
addIssue('Homepage', 'Global playTrack function missing', 'error');
}
updateStatusDisplay();
}
function testLibraryIntegration() {
console.log('๐ต Testing Library Integration...');
// Check if library functions exist
if (typeof window.showVariations === 'function') {
console.log('โ
showVariations function found');
updateComponentStatus('Library Variations', 'success', 'Available');
} else {
console.error('โ showVariations function missing');
updateComponentStatus('Library Variations', 'error', 'Missing');
addIssue('Library', 'showVariations function missing', 'error');
}
// Check if variations modal exists
const variationsModal = document.getElementById('variationsModal');
if (variationsModal) {
console.log('โ
Variations modal found');
updateComponentStatus('Variations Modal', 'success', 'Available');
} else {
console.error('โ Variations modal missing');
updateComponentStatus('Variations Modal', 'error', 'Missing');
addIssue('Library', 'Variations modal not found', 'error');
}
updateStatusDisplay();
}
function testVariationsModal() {
console.log('๐ต Testing Variations Modal...');
const modal = document.getElementById('variationsModal');
if (!modal) {
console.error('โ Variations modal not found');
updateComponentStatus('Variations Modal Test', 'error', 'Modal not found');
addIssue('Variations Modal', 'Modal element not found', 'error');
updateStatusDisplay();
return;
}
// Test modal functions
if (typeof window.showVariations === 'function') {
console.log('โ
showVariations function available');
} else {
console.error('โ showVariations function missing');
addIssue('Variations Modal', 'showVariations function missing', 'error');
}
if (typeof window.closeVariations === 'function') {
console.log('โ
closeVariations function available');
} else {
console.error('โ closeVariations function missing');
addIssue('Variations Modal', 'closeVariations function missing', 'error');
}
if (typeof window.playVariation === 'function') {
console.log('โ
playVariation function available');
} else {
console.error('โ playVariation function missing');
addIssue('Variations Modal', 'playVariation function missing', 'error');
}
updateComponentStatus('Variations Modal Test', 'success', 'Functions available');
updateStatusDisplay();
}
// Run initial audit
window.addEventListener('load', function() {
console.log('๐ต Starting Global Player Audit...');
// Update audit summary
const summaryDiv = document.getElementById('auditSummary');
summaryDiv.innerHTML = `
<p><strong>Audit Started:</strong> ${new Date().toLocaleString()}</p>
<p><strong>Page:</strong> ${window.location.href}</p>
<p><strong>User Agent:</strong> ${navigator.userAgent}</p>
`;
// Run all tests
setTimeout(() => {
testGlobalPlayer();
setTimeout(() => {
testPlayTrack();
setTimeout(() => {
testHomepageIntegration();
setTimeout(() => {
testLibraryIntegration();
setTimeout(() => {
testVariationsModal();
console.log('๐ต Audit complete!');
}, 500);
}, 500);
}, 500);
}, 500);
}, 1000);
});
</script>
<?php include 'includes/header.php'; ?>
<?php include 'includes/footer.php'; ?>
</body>
</html>