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",
|
"ms-azuretools.vscode-docker",
|
||||||
"GitHub.copilot-nightly",
|
"GitHub.copilot-nightly",
|
||||||
"GitHub.copilot-chat",
|
"GitHub.copilot-chat",
|
||||||
"Gruntfuggly.todo-tree"
|
"Gruntfuggly.todo-tree",
|
||||||
|
"eamodio.gitlens"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,3 +2,4 @@
|
|||||||
.phpunit.result.cache
|
.phpunit.result.cache
|
||||||
vendor
|
vendor
|
||||||
composer.lock
|
composer.lock
|
||||||
|
.DS_Store
|
||||||
|
@ -65,6 +65,10 @@ Pour utiliser cette fonctionnalité, vous appelez simplement la méthode htmlFor
|
|||||||
```php
|
```php
|
||||||
$form = $client->htmlForm();
|
$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
|
### 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é.
|
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",
|
"name": "nwb/multi-downloader-client",
|
||||||
"description": "Client for multi-downloader-service",
|
"description": "Client for multi-downloader-service",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"version": "0.0.8",
|
"version": "0.1.10",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"Nwb\\MultiDownloaderClient\\": "src/"
|
"Nwb\\MultiDownloaderClient\\": "src/"
|
||||||
|
@ -126,10 +126,25 @@ class MultiDownloaderClient
|
|||||||
* sous forme de chaîne de caractères. Utilisée pour générer dynamiquement
|
* 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.
|
* 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.
|
* @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()));
|
$json_string = addslashes(json_encode($this->buildRequest()));
|
||||||
ob_start();
|
ob_start();
|
||||||
include __DIR__ . '/htmlForm.php';
|
include __DIR__ . '/htmlForm.php';
|
||||||
|
@ -19,22 +19,41 @@ use Nwb\MultiDownloaderClient\MultiDownloaderClient;
|
|||||||
body {
|
body {
|
||||||
display: inline;
|
display: inline;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#message {
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div id="button_div" class="modal-dialog-buttons">
|
<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()) ?>' />
|
<input type="hidden" name="json" value='<?= json_encode($this->buildRequest()) ?>' />
|
||||||
|
|
||||||
<noscript>
|
<noscript>
|
||||||
<button id="submit_approve_access" type="submit" tabindex="1" style="overflow:visible;">Continue</button>
|
<button id="submit_approve_access" type="submit" tabindex="1" style="overflow:visible;">Continue</button>
|
||||||
</noscript>
|
</noscript>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="message"></div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<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();
|
document.forms['f'].submit();
|
||||||
|
window.setTimeout(function() {
|
||||||
|
window.close();
|
||||||
|
}, 2000); // 2 secondes
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
@ -49,8 +49,16 @@ class MultiDownloaderClientTest extends TestCase
|
|||||||
{
|
{
|
||||||
$client = new MultiDownloaderClient(['apiKey' => 'test', 'apiSecret' => 'test']);
|
$client = new MultiDownloaderClient(['apiKey' => 'test', 'apiSecret' => 'test']);
|
||||||
$client->setFiles($this->testFiles());
|
$client->setFiles($this->testFiles());
|
||||||
|
// echo $client->htmlForm();
|
||||||
echo $client->htmlForm();
|
|
||||||
$this->assertTrue(true);
|
$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