MSIN-3487 — Update QR code generation for event results to support inline PNG rendering, enhancing user experience by allowing direct downloads. Simplify access control and improve code organization with public settings. Increment version code.

This commit is contained in:
2026-07-22 07:12:28 -04:00
parent 22f45f98ff
commit 215d3777db
2 changed files with 32 additions and 21 deletions

View File

@ -1,21 +1,23 @@
<?php
/**
* MSIN-3487 — PNG QR résultats événement (logo MS1).
* Endpoint léger (sans inc_manager) pour téléchargement direct.
*
* Affichage : eve_resultats_qr.php?eve_id=760
* Téléchargement : eve_resultats_qr.php?eve_id=760&dl=1
* Affichage / DL : eve_resultats_qr.php?eve_id=760[&dl=1]
*/
session_start();
require_once __DIR__ . '/php/inc_functions.php';
require_once dirname(__FILE__) . '/../php/inc_fx_eve_extra.php';
if (empty($_SESSION['usa_id']) || empty($_SESSION['usa_info'])) {
if (empty($_SESSION['usa_id'])) {
http_response_code(403);
header('Content-Type: text/plain; charset=utf-8');
echo 'Accès refusé.';
exit;
}
// Settings publics pour $vDomaine uniquement (pas tout le stack superadm).
require_once dirname(__FILE__) . '/../php/inc_settings.php';
require_once dirname(__FILE__) . '/../php/inc_fx_eve_extra.php';
$intEveId = isset($_GET['eve_id']) ? intval($_GET['eve_id']) : 0;
$blnDownload = !empty($_GET['dl']);

View File

@ -1165,23 +1165,32 @@ if ($strAction == 'mod') {
— si vide → <code>https://ms1.ca</code>
</small>
<?php if ($intEveIdForm > 0) {
$strEveQrImg = 'eve_resultats_qr.php?eve_id=' . intval($intEveIdForm);
$strEveQrDl = $strEveQrImg . '&dl=1';
?>
<div class="mt-3">
<div class="mb-2">
<img src="<?php echo htmlspecialchars($strEveQrImg, ENT_QUOTES, 'UTF-8'); ?>"
alt="QR résultats événement <?php echo intval($intEveIdForm); ?>"
width="220" height="220"
class="border bg-white p-1"
loading="lazy">
// MSIN-3487 — génération inline (évite 403/404 sur l'endpoint séparé)
$binEveQrPng = fxKcEveResultatsQrPngBinary($intEveIdForm, null, 8, true);
if ($binEveQrPng !== false) {
$strEveQrDataUri = 'data:image/png;base64,' . base64_encode($binEveQrPng);
$strEveQrFilename = 'qr_resultats_eve_' . intval($intEveIdForm) . '.png';
?>
<div class="mt-3">
<div class="mb-2">
<img src="<?php echo htmlspecialchars($strEveQrDataUri, ENT_QUOTES, 'UTF-8'); ?>"
alt="QR résultats événement <?php echo intval($intEveIdForm); ?>"
width="220" height="220"
class="border bg-white p-1">
</div>
<a class="btn btn-outline-secondary btn-sm rounded-0"
href="<?php echo htmlspecialchars($strEveQrDataUri, ENT_QUOTES, 'UTF-8'); ?>"
download="<?php echo htmlspecialchars($strEveQrFilename, ENT_QUOTES, 'UTF-8'); ?>">
<i class="fa fa-download" aria-hidden="true"></i>&nbsp;Télécharger le QR (PNG)
</a>
</div>
<a class="btn btn-outline-secondary btn-sm rounded-0"
href="<?php echo htmlspecialchars($strEveQrDl, ENT_QUOTES, 'UTF-8'); ?>">
<i class="fa fa-download" aria-hidden="true"></i>&nbsp;Télécharger le QR (PNG)
</a>
</div>
<?php } ?>
<?php
} else {
?>
<div class="mt-3 text-danger small">Impossible de générer le QR (GD / phpqrcode).</div>
<?php
}
} ?>
</div>
</div>
<div class="form-group row">