Merge branch 'main' of ssh://git.nwb.fr:22050/modules-communs-php/multi-downloader-client
This commit is contained in:
commit
3e98d387ac
@ -18,7 +18,8 @@
|
||||
"ms-azuretools.vscode-docker",
|
||||
"GitHub.copilot-nightly",
|
||||
"GitHub.copilot-chat",
|
||||
"Gruntfuggly.todo-tree"
|
||||
"Gruntfuggly.todo-tree",
|
||||
"eamodio.gitlens"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,4 +1,5 @@
|
||||
.idea
|
||||
.phpunit.result.cache
|
||||
vendor
|
||||
composer.lock
|
||||
composer.lock
|
||||
.DS_Store
|
||||
|
@ -65,6 +65,10 @@ Pour utiliser cette fonctionnalité, vous appelez simplement la méthode htmlFor
|
||||
```php
|
||||
$form = $client->htmlForm();
|
||||
```
|
||||
Par défaut le nom du fichier ZIP généré sera "download.zip". Vous pouvez le personnaliser en passant un paramètre à la méthode htmlForm() :
|
||||
```php
|
||||
$form = $client->htmlForm('mon-zip.zip');
|
||||
```
|
||||
|
||||
### Renommer les Fichiers dans le ZIP
|
||||
Par défaut, les fichiers téléchargés sont nommés en fonction de leur URL. Vous pouvez cependant personnaliser le nom des fichiers dans le ZIP en utilisant la méthode `name` de l'objet `FileOptions`. Cette option peut être utile lorsque plusieurs fichiers ont le même nom ou lorsque vous souhaitez simplement renommer les fichiers pour une meilleure lisibilité.
|
||||
|
@ -2,7 +2,7 @@
|
||||
"name": "nwb/multi-downloader-client",
|
||||
"description": "Client for multi-downloader-service",
|
||||
"type": "library",
|
||||
"version": "0.0.8",
|
||||
"version": "0.1.10",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Nwb\\MultiDownloaderClient\\": "src/"
|
||||
@ -24,4 +24,4 @@
|
||||
"scripts": {
|
||||
"test": "phpunit"
|
||||
}
|
||||
}
|
||||
}
|
@ -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';
|
||||
|
@ -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>
|
@ -49,8 +49,16 @@ class MultiDownloaderClientTest extends TestCase
|
||||
{
|
||||
$client = new MultiDownloaderClient(['apiKey' => 'test', 'apiSecret' => 'test']);
|
||||
$client->setFiles($this->testFiles());
|
||||
|
||||
echo $client->htmlForm();
|
||||
// echo $client->htmlForm();
|
||||
$this->assertTrue(true);
|
||||
}
|
||||
|
||||
public function testFormDlZipNameSpecified()
|
||||
{
|
||||
$client = new MultiDownloaderClient(['apiKey' => 'test', 'apiSecret' => 'test']);
|
||||
$client->setFiles($this->testFiles());
|
||||
|
||||
$output = $client->htmlForm("test123");
|
||||
$this->assertStringContainsString('action="https://multi-dl.kub.nwb.fr/v2/form/zip/test123.zip"', $output);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user