Merge branch 'main' of ssh://git.nwb.fr:22050/modules-communs-php/multi-downloader-client

This commit is contained in:
2024-03-15 08:35:08 +00:00
7 changed files with 58 additions and 10 deletions

View File

@@ -126,10 +126,25 @@ class MultiDownloaderClient
* sous forme de chaîne de caractères. Utilisée pour générer dynamiquement
* un formulaire de téléchargement dans une page web.
*
* @param string $fileName Nom du fichier zip à télécharger. Si non spécifié, le nom du fichier sera généré automatiquement.
* @return string Le formulaire HTML généré pour le téléchargement.
*/
public function htmlForm(): string
public function htmlForm($fileName = null): string
{
$zipName = ''; // Utilisé dans htmlForm.php
if (!empty($fileName)) {
$zipName = trim($fileName);
// Si le nom du fichier ne se termine pas par .zip, on l'ajoute
if (substr($zipName, -4) !== '.zip') {
$zipName .= '.zip';
}
// Si le nom du fichier ne commence pas par un slash, on l'ajoute
if (substr($zipName, 0, 1) !== '/') {
$zipName = '/' . $zipName;
}
}
$json_string = addslashes(json_encode($this->buildRequest()));
ob_start();
include __DIR__ . '/htmlForm.php';

View File

@@ -19,23 +19,42 @@ use Nwb\MultiDownloaderClient\MultiDownloaderClient;
body {
display: inline;
}
#message {
text-align: center;
margin-top: 20px;
}
</style>
</head>
<body>
<div id="button_div" class="modal-dialog-buttons">
<form name="f" id="f" method="POST" action="<?= $this->url ?>/v2/form/zip" enctype="multipart/form-data">
<form name="f" id="f" method="POST" action="<?= $this->url ?>/v2/form/zip<?= $zipName ?>" enctype="multipart/form-data">
<input type="hidden" name="json" value='<?= json_encode($this->buildRequest()) ?>' />
<noscript>
<button id="submit_approve_access" type="submit" tabindex="1" style="overflow:visible;">Continue</button>
</noscript>
</form>
</div>
<div id="message"></div>
<script type="text/javascript">
var messages = {
'en': 'Your download will begin shortly. This page will close automatically.',
'fr': 'Votre téléchargement va commencer. Cette page se fermera automatiquement.'
};
var userLang = navigator.language || navigator.userLanguage;
userLang = userLang.split('-')[0];
document.getElementById('message').innerText = messages[userLang] || messages['en'];
document.forms['f'].submit();
window.setTimeout(function() {
window.close();
}, 2000); // 2 secondes
</script>
</body>
</html>
</html>