<?php
// ###### HOME DASHBOARD WIDGET 
function register_admin_dashboard_widget()
{
	wp_add_dashboard_widget('admin_dashboard_widget', 'Consulter les statistiques', 'render_admin_dashboard_widget_content');
}
add_action('wp_dashboard_setup', 'register_admin_dashboard_widget');


function render_admin_dashboard_widget_content()
{
	get_template_part('template-parts/statistics/dashboard-widget');
}


// ###### STATISTICS OPTION PAGE

function register_statistics_option_page()
{
	add_menu_page(
		'Statistiques des jeux',
		'Statistiques des jeux',
		'read',
		'session-datas-options',
		'render_statistics_option_page',
		'dashicons-chart-area'

	);
}
add_action('admin_menu', 'register_statistics_option_page');

function render_statistics_option_page()
{
	get_template_part('template-parts/statistics/dashboard');
}

// ###### EXPORT PDF
function render_game_statistics_print_page()
{
	get_template_part('template-parts/statistics/game-print-stats');
}

add_action('admin_post_download_pdf', 'handle_download_pdf_request');
add_action('admin_post_nopriv_download_pdf', 'handle_download_pdf_request');

function handle_download_pdf_request()
{
	// Vérifier les autorisations ou les conditions nécessaires
	if (!current_user_can('read')) {
		wp_die('Access Denied');
	}

	// Générer le contenu HTML à partir de votre page d'options
	ob_start();
	render_game_statistics_print_page();
	$html_content = ob_get_clean();

	// Générer et télécharger le PDF
	generate_pdf_from_html($html_content);
}

function generate_pdf_from_html($html_content, $filename = 'export.pdf')
{
	// Inclure la bibliothèque TCPDF
	require_once(get_template_directory() . '/vendor/autoload.php');

	// Créer une instance de TCPDF
	$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

	// Définir les informations du document
	$pdf->SetCreator(PDF_CREATOR);
	$pdf->SetAuthor('Your Name');
	$pdf->SetTitle('Title');
	$pdf->SetSubject('Subject');
	$pdf->SetKeywords('Keywords');

	// Définir l'en-tête et le pied de page
	$pdf->setHeaderData('', PDF_HEADER_LOGO_WIDTH, 'Statistiques de jeu ', 'Lhoist Stay safe');
	$pdf->setFooterData(array(0, 64, 0), array(0, 64, 128));

	// Définir la police
	$pdf->SetFont('helvetica', '', 12);

	// Ajouter une page
	$pdf->AddPage();

	// Écrire le contenu HTML dans le PDF
	$pdf->writeHTML($html_content, true, false, true, false, '');


	// Sortie PDF
	$pdf->Output($filename, 'I');
	// $pdf->Output('report.pdf', 'F',);
}
// ###### EXPORT IN CSV

add_action('admin_post_export_csv', 'handle_export_csv_request');
add_action('admin_post_nopriv_export_csv', 'handle_export_csv_request');

function handle_export_csv_request()
{
	// Vérifier les autorisations ou les conditions nécessaires
	if (!current_user_can('read')) {
		wp_die('Access Denied');
	}

	// Appeler la fonction pour exporter les données vers CSV
	export_data_to_csv();
}


function export_data_to_csv()
{
	global $wpdb;
	$table_name = "wp_app_users_statistics";

	// Récupérer les données de la base de données
	$data = $wpdb->get_results("SELECT * FROM $table_name", ARRAY_A);

	// Vérifier s'il y a des données à exporter
	if ($data) {
		// Nom du fichier CSV
		$filename = 'export.csv';

		// Entête du fichier CSV
		$header_row = array_keys($data[0]);

		// Ouvrir le fichier en écriture
		$file = fopen($filename, 'w');

		// Écrire l'entête dans le fichier CSV
		fputcsv($file, $header_row);

		// Écrire les données dans le fichier CSV
		foreach ($data as $row) {
			// $row["level_completion_time"] = $row["level_completion_time"] / 100;

			fputcsv($file, $row);
		}

		// Fermer le fichier
		fclose($file);

		// Télécharger le fichier CSV
		header("Content-Disposition: attachment; filename=\"$filename\"");
		header("Content-Type: application/csv");
		readfile($filename);

		// Supprimer le fichier après téléchargement
		unlink($filename);

		exit();
	} else {
		// Aucune donnée à exporter
		echo 'Aucune donnée à exporter.';
	}
}
