diff options
| author | polo <ordipolo@gmx.fr> | 2026-06-03 21:42:46 +0200 |
|---|---|---|
| committer | polo <ordipolo@gmx.fr> | 2026-06-03 21:42:46 +0200 |
| commit | 34c4d0d0c37c7f640a1a6373bba30ebe1129d6c4 (patch) | |
| tree | 5852421a6282dc95d2413dee34694691a53bd25a /src/service | |
| parent | a3f64de3eaaf1d9acbc82f7dfdf34a239411c0ba (diff) | |
| download | cms-34c4d0d0c37c7f640a1a6373bba30ebe1129d6c4.tar.gz cms-34c4d0d0c37c7f640a1a6373bba30ebe1129d6c4.tar.bz2 cms-34c4d0d0c37c7f640a1a6373bba30ebe1129d6c4.zip | |
téléchargement des fichiers media, un tout petit peu de responsive design
Diffstat (limited to 'src/service')
| -rw-r--r-- | src/service/Installation.php | 2 | ||||
| -rw-r--r-- | src/service/UserDataService.php | 46 | ||||
| -rw-r--r-- | src/service/router.php | 4 |
3 files changed, 51 insertions, 1 deletions
diff --git a/src/service/Installation.php b/src/service/Installation.php index 100001d..f7de2cf 100644 --- a/src/service/Installation.php +++ b/src/service/Installation.php | |||
| @@ -8,7 +8,7 @@ class Installation | |||
| 8 | static public function phpDependancies(): void | 8 | static public function phpDependancies(): void |
| 9 | { | 9 | { |
| 10 | $flag = false; | 10 | $flag = false; |
| 11 | $extensions = ['pdo_mysql', 'mbstring', 'ctype', 'json', 'tokenizer', 'imagick']; // les 5 premières sont pour doctrine | 11 | $extensions = ['pdo_mysql', 'mbstring', 'ctype', 'json', 'tokenizer', 'imagick', 'zip']; // les 5 premières sont pour doctrine |
| 12 | // ajouter plus tard zlib pour la compression des backups | 12 | // ajouter plus tard zlib pour la compression des backups |
| 13 | foreach($extensions as $extension){ | 13 | foreach($extensions as $extension){ |
| 14 | if(!extension_loaded($extension)){ | 14 | if(!extension_loaded($extension)){ |
diff --git a/src/service/UserDataService.php b/src/service/UserDataService.php new file mode 100644 index 0000000..5fa60d5 --- /dev/null +++ b/src/service/UserDataService.php | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | <?php | ||
| 2 | // src/service/UserDataService.php | ||
| 3 | |||
| 4 | declare(strict_types=1); | ||
| 5 | |||
| 6 | class UserDataService | ||
| 7 | { | ||
| 8 | static private string $var = '../var'; | ||
| 9 | |||
| 10 | static public function createZip(string $zip_name, array $source_directories, array $pattern_to_target_in_user_data = []): string | ||
| 11 | { | ||
| 12 | $file_path = self::$var . '/' . $zip_name; | ||
| 13 | $Zip = new ZipArchive(); | ||
| 14 | |||
| 15 | if($Zip->open($file_path, ZipArchive::CREATE | ZipArchive::OVERWRITE) !== TRUE){ // ou ZipArchive::FL_OVERWRITE, à comparer à ZipArchive::OVERWRITE | ||
| 16 | throw new RuntimeException("Création ou ouverture du fichier demandé impossible à cause d'une erreur de permissions sur le serveur."); | ||
| 17 | } | ||
| 18 | |||
| 19 | // recherche récursive dans les dossiers dans $source_directories, c'est comme le paramètre "-r" dans la console | ||
| 20 | $counter = 0; | ||
| 21 | foreach($source_directories as $path){ | ||
| 22 | $directory = new RecursiveDirectoryIterator($path); | ||
| 23 | $iterator = new RecursiveIteratorIterator($directory); | ||
| 24 | |||
| 25 | foreach($iterator as $info){ | ||
| 26 | if($info->getFilename() != "." && $info->getFilename() != ".."){ // chemins inutiles . et .. | ||
| 27 | $Zip->addGlob($info->getPathname(), 0, array('')); | ||
| 28 | $counter++; | ||
| 29 | } | ||
| 30 | } | ||
| 31 | } | ||
| 32 | // recherche à la racine avec des pattern de noms de fichiers (optionnel) | ||
| 33 | foreach($pattern_to_target_in_user_data as $one_pattern){ | ||
| 34 | $Zip->addGlob($one_pattern, 0, array('')); | ||
| 35 | } | ||
| 36 | |||
| 37 | $Zip->close(); | ||
| 38 | if($counter > 0){ | ||
| 39 | //chmod($file_path, 0666); | ||
| 40 | return $zip_name; | ||
| 41 | } | ||
| 42 | else{ | ||
| 43 | throw new RuntimeException("Téléchargement des fichiers impossible, aucun fichier n'a été trouvé sur le serveur."); | ||
| 44 | } | ||
| 45 | } | ||
| 46 | } \ No newline at end of file | ||
diff --git a/src/service/router.php b/src/service/router.php index 8ddaf7f..556651f 100644 --- a/src/service/router.php +++ b/src/service/router.php | |||
| @@ -49,6 +49,10 @@ if($request->getMethod() === 'GET'){ | |||
| 49 | MaintenanceController::getLastDump(); | 49 | MaintenanceController::getLastDump(); |
| 50 | die; | 50 | die; |
| 51 | } | 51 | } |
| 52 | if($request->query->has('action') && $request->query->get('action') === 'get_all_media'){ | ||
| 53 | MaintenanceController::getAllMedia(); | ||
| 54 | die; | ||
| 55 | } | ||
| 52 | } | 56 | } |
| 53 | 57 | ||
| 54 | // construction d'une page | 58 | // construction d'une page |
