$(document).ready(function () {avideoToastError("No data available for the specified period and campaign")});'; return false; } // Get the campaign name and sanitize it $campaign = new VastCampaigns($vast_campaigns_id); $name = $campaign->getName(); $safeName = preg_replace('/[^a-zA-Z0-9_-]/', '', $name); // Set the headers for the CSV file download header('Content-Type: text/csv'); header('Content-Disposition: attachment;filename="campaign_logs_' . $vast_campaigns_id . '_' . $safeName . '.csv"'); // Open the output stream $output = fopen('php://output', 'w'); // Write the header row fputcsv($output, ['Ad Start Time', 'Ad Video ID', 'Ad Played On Video', 'Publisher Channel', 'Viewer ID', 'Viewer Name', 'Viewer IP', 'Viewer Browser', 'Viewer Operating System', 'Viewer Device']); // Write the data rows foreach ($logs as $log) { // Fetch the video details $video = new Video('', '', $log['videos_id']); $video_owners_users_id = $video->getUsers_id(); $video_owner_name = User::getNameIdentificationById($video_owners_users_id); // Fetch the user/client details $client_name = User::getNameIdentificationById($log['users_id']); $browser = get_browser_name($log['user_agent']); $os = getOS($log['user_agent']); $device = isMobile($log['user_agent']) ? "Mobile" : "PC"; fputcsv($output, [ $log['created'], // Ad start time $log['campaign_videos_id'], // Ad video ID $log['videos_id'], $video_owner_name, // Video played on $log['users_id'], // Client ID $client_name, // Client name $log['ip'], // Client IP $browser, // Browser $os, // Operating System $device // Device type ]); } // Close the output stream fclose($output); return true; } // Get the current date $today = date('Y-m-d 00:00:00'); $end_of_today = date('Y-m-d 23:59:59'); // Parameters passed via GET or POST request (ensure they are sanitized in real-world applications) $vast_campaigns_id = isset($_REQUEST['vast_campaigns_id']) ? intval($_REQUEST['vast_campaigns_id']) : 0; $start_date = isset($_REQUEST['start_date']) ? $_REQUEST['start_date'] : $today; $end_date = isset($_REQUEST['end_date']) ? $_REQUEST['end_date'] : $end_of_today; $success = false; if (!empty($_REQUEST['downloadNow'])) { $success = generateCSV($vast_campaigns_id, $start_date, $end_date); } if (!$success) { $_page = new Page(array('Download Campaign Logs')); ?>