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:
@ -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']);
|
||||
|
||||
|
||||
@ -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> 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> 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">
|
||||
|
||||
Reference in New Issue
Block a user