From bd1bb9bb360351abc48637ad609b3a9ebf453ab9 Mon Sep 17 00:00:00 2001 From: Esenjin Date: Mon, 30 Dec 2024 20:17:09 +0100 Subject: [PATCH] ajout de la partie publique --- albums.php | 100 +++++++++ favicon.png | Bin 0 -> 69525 bytes fonctions.php | 204 ++++++++++++++++++ galeries.php | 110 ++++++++++ index.php | 79 +++++++ liste_albums/infos.txt | 2 + partage.php | 200 ++++++++++++++++++ styles.css | 460 +++++++++++++++++++++++++++++++++++++++++ 8 files changed, 1155 insertions(+) create mode 100644 albums.php create mode 100644 favicon.png create mode 100644 fonctions.php create mode 100644 galeries.php create mode 100644 index.php create mode 100644 liste_albums/infos.txt create mode 100644 partage.php create mode 100644 styles.css diff --git a/albums.php b/albums.php new file mode 100644 index 0000000..80449b5 --- /dev/null +++ b/albums.php @@ -0,0 +1,100 @@ +isDot()) continue; + if ($item->isDir()) { + $albumPath = $item->getPathname(); + $info = getAlbumInfo($albumPath); + + $images = hasSubfolders($albumPath) ? + getImagesRecursively($albumPath) : + getLatestImages($albumPath); + + $albums[] = [ + 'path' => str_replace('\\', '/', $albumPath), + 'title' => $info['title'], + 'description' => $info['description'], + 'images' => $images, + 'hasSubfolders' => hasSubfolders($albumPath), + 'hasImages' => hasImages($albumPath) + ]; + } +} + +// Déterminer le chemin parent pour le bouton retour +$parentPath = dirname($currentPath); +if (!isSecurePath($parentPath)) { + $parentPath = null; +} +?> + + + + + Albums - ICO + + + + + + Retour + + Retour + + +
+ + +
+ +
+ + $image): ?> +
+ + +
+ + +
+
+

+
+
+ +
+ + + + \ No newline at end of file diff --git a/favicon.png b/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..d7a4106e1bff23e50552bdee71a15f4eb67373cf GIT binary patch literal 69525 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 basename($albumPath), + 'description' => '' + ]; + + if (file_exists($infoFile)) { + $content = file_get_contents($infoFile); + $lines = explode("\n", $content); + if (isset($lines[0])) $info['title'] = trim($lines[0]); + if (isset($lines[1])) $info['description'] = trim($lines[1]); + } + + return $info; +} + +/** + * Récupère les dernières images d'un dossier + * @param string $albumPath Chemin vers l'album + * @param int $limit Nombre d'images à récupérer + * @return array Tableau des URLs des images + */ +function getLatestImages($albumPath, $limit = 4) { + $images = []; + $baseUrl = getBaseUrl(); + + if (!is_dir($albumPath)) return $images; + + foreach (new DirectoryIterator($albumPath) as $file) { + if ($file->isDot()) continue; + if ($file->isFile()) { + $extension = strtolower($file->getExtension()); + if (in_array($extension, ALLOWED_EXTENSIONS)) { + $relativePath = str_replace('\\', '/', substr($file->getPathname(), strlen(realpath('./')))); + $images[] = $baseUrl . '/' . ltrim($relativePath, '/'); + } + } + } + + usort($images, function($a, $b) { + $pathA = realpath('.') . str_replace(getBaseUrl(), '', $a); + $pathB = realpath('.') . str_replace(getBaseUrl(), '', $b); + return filectime($pathB) - filectime($pathA); + }); + + return array_slice($images, 0, $limit); +} + +/** + * Récupère les images de manière récursive dans tous les sous-dossiers + * @param string $albumPath Chemin vers l'album + * @param int $limit Nombre d'images à récupérer + * @return array Tableau des URLs des images + */ +function getImagesRecursively($albumPath, $limit = 4) { + $images = []; + $baseUrl = getBaseUrl(); + + if (!is_dir($albumPath)) return $images; + + $iterator = new RecursiveIteratorIterator( + new RecursiveDirectoryIterator($albumPath), + RecursiveIteratorIterator::SELF_FIRST + ); + + foreach ($iterator as $file) { + if ($file->isFile()) { + $extension = strtolower($file->getExtension()); + if (in_array($extension, ALLOWED_EXTENSIONS)) { + $relativePath = str_replace('\\', '/', substr($file->getPathname(), strlen(realpath('./')))); + $images[] = $baseUrl . '/' . ltrim($relativePath, '/'); + } + } + } + + usort($images, function($a, $b) { + $pathA = realpath('.') . str_replace(getBaseUrl(), '', $a); + $pathB = realpath('.') . str_replace(getBaseUrl(), '', $b); + return filectime($pathB) - filectime($pathA); + }); + + return array_slice($images, 0, $limit); +} + +/** + * Vérifie si un dossier contient des sous-dossiers + * @param string $path Chemin du dossier + * @return bool True si le dossier contient des sous-dossiers + */ +function hasSubfolders($path) { + if (!is_dir($path)) return false; + + foreach (new DirectoryIterator($path) as $item) { + if ($item->isDot()) continue; + if ($item->isDir()) return true; + } + return false; +} + +/** + * Vérifie si un dossier contient des images + * @param string $path Chemin du dossier + * @return bool True si le dossier contient des images + */ +function hasImages($path) { + if (!is_dir($path)) return false; + + foreach (new DirectoryIterator($path) as $item) { + if ($item->isDot()) continue; + if ($item->isFile()) { + $extension = strtolower($item->getExtension()); + if (in_array($extension, ALLOWED_EXTENSIONS)) return true; + } + } + return false; +} + +/** + * Vérifie si le chemin est sécurisé (dans le dossier liste_albums) + * @param string $path Chemin à vérifier + * @return bool True si le chemin est sécurisé + */ +function isSecurePath($path) { + $realPath = realpath($path); + $rootPath = realpath('./liste_albums'); + return $realPath && strpos($realPath, $rootPath) === 0; +} + +/** + * Formate la taille d'un fichier en format lisible + * @param int $bytes Taille en octets + * @return string Taille formatée (ex: "1.2 MB") + */ +function formatFileSize($bytes) { + $units = ['B', 'KB', 'MB', 'GB', 'TB']; + $bytes = max($bytes, 0); + $pow = floor(($bytes ? log($bytes) : 0) / log(1024)); + $pow = min($pow, count($units) - 1); + $bytes /= pow(1024, $pow); + return round($bytes, 1) . ' ' . $units[$pow]; +} + +/** + * Récupère les dimensions d'une image de manière sécurisée + * @param string $path Chemin vers l'image + * @return array|false Tableau contenant width et height ou false en cas d'erreur + */ +function getSecureImageSize($path) { + try { + if (!file_exists($path)) return false; + $imageInfo = getimagesize($path); + if ($imageInfo === false) return false; + return [ + 'width' => $imageInfo[0], + 'height' => $imageInfo[1] + ]; + } catch (Exception $e) { + return false; + } +} + +/** + * Génère un identifiant unique sécurisé + * @param int $length Longueur de l'identifiant + * @return string Identifiant unique + */ +function generateSecureId($length = 32) { + return bin2hex(random_bytes($length / 2)); +} + +/** + * Nettoie et sécurise un nom de fichier + * @param string $filename Nom du fichier à nettoyer + * @return string Nom de fichier sécurisé + */ +function sanitizeFilename($filename) { + // Supprime les caractères spéciaux + $filename = preg_replace('/[^a-zA-Z0-9._-]/', '-', $filename); + // Évite les noms de fichiers commençant par un point + $filename = ltrim($filename, '.'); + // Limite la longueur du nom de fichier + return substr($filename, 0, 255); +} +?> \ No newline at end of file diff --git a/galeries.php b/galeries.php new file mode 100644 index 0000000..188ba13 --- /dev/null +++ b/galeries.php @@ -0,0 +1,110 @@ +isDot()) continue; + if ($file->isFile()) { + $extension = strtolower($file->getExtension()); + if (in_array($extension, ['jpg', 'jpeg', 'png', 'gif'])) { + $relativePath = str_replace('\\', '/', substr($file->getPathname(), strlen(realpath('./')))); + $url = $baseUrl . '/' . ltrim($relativePath, '/'); + $images[] = $url; + } + } +} + +usort($images, function($a, $b) { + $pathA = realpath('.') . str_replace(getBaseUrl(), '', $a); + $pathB = realpath('.') . str_replace(getBaseUrl(), '', $b); + return filectime($pathB) - filectime($pathA); +}); + +$headerImage = !empty($images) ? $images[0] : null; + +$parentPath = dirname($currentPath); +if (!isSecurePath($parentPath)) { + $parentPath = './liste_albums'; +} +?> + + + + + <?php echo htmlspecialchars($albumInfo['title']); ?> - ICO + + + + + Retour + + + + + + + + + + + + + + \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..c2c4d82 --- /dev/null +++ b/index.php @@ -0,0 +1,79 @@ +isFile()) { + $extension = strtolower($file->getExtension()); + if (in_array($extension, ['jpg', 'jpeg', 'png', 'gif'])) { + $images[] = str_replace('\\', '/', $file->getPathname()); + } + } + } + + usort($images, function($a, $b) { + return filectime($b) - filectime($a); + }); + + return array_slice($images, 0, $limit); +} + +$latestImages = getLatestImages(); +?> + + + + + + + ICO - Galerie d'images + + + + + + +
+

ICO

+

ICO est la galerie d'images de l'association Camélia Studio.

+ Accéder aux galeries +
+ + + + \ No newline at end of file diff --git a/liste_albums/infos.txt b/liste_albums/infos.txt new file mode 100644 index 0000000..22a4746 --- /dev/null +++ b/liste_albums/infos.txt @@ -0,0 +1,2 @@ +Titre +Description sur la seconde ligne. \ No newline at end of file diff --git a/partage.php b/partage.php new file mode 100644 index 0000000..fd5daff --- /dev/null +++ b/partage.php @@ -0,0 +1,200 @@ + + + + + + + + Image - ICO + + + + + + + + + + + + + + + + Partager l'image - ICO + + + + + + + + + + + \ No newline at end of file diff --git a/styles.css b/styles.css new file mode 100644 index 0000000..1b85ee9 --- /dev/null +++ b/styles.css @@ -0,0 +1,460 @@ +/* Accessibilité */ +@media (prefers-reduced-motion: reduce) { + * { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + scroll-behavior: auto !important; + } +}/* Reset et styles de base */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Segoe UI', system-ui, sans-serif; + background-color: #121212; + color: #ffffff; + min-height: 100vh; + overflow-x: hidden; + position: relative; +} + +/* Styles de la page d'accueil */ +.carousel { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100vh; + z-index: 1; +} + +.carousel-slide { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + opacity: 0; + transition: opacity 1s ease-in-out; + pointer-events: none; +} + +.carousel-slide.active { + opacity: 1; + z-index: 2; +} + +.carousel-slide img { + width: 100%; + height: 100vh; + object-fit: cover; + filter: brightness(0.6); +} + +/* Overlay contenu */ +.overlay { + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + text-align: center; + z-index: 20; + width: 90%; + max-width: 600px; + padding: 2rem; + background-color: rgba(0, 0, 0, 0.7); + border-radius: 1rem; + backdrop-filter: blur(10px); +} + +h1 { + font-size: 4rem; + margin-bottom: 1rem; + font-weight: 700; + letter-spacing: 0.2rem; +} + +p { + font-size: 1.2rem; + margin-bottom: 2rem; + line-height: 1.6; + color: #e0e0e0; +} + +.cta-button { + display: inline-block; + padding: 1rem 2rem; + background-color: #2196f3; + color: white; + text-decoration: none; + border-radius: 2rem; + font-size: 1.1rem; + font-weight: 500; + transition: all 0.3s ease; + border: 2px solid transparent; +} + +.cta-button:hover { + background-color: #1976d2; + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(33, 150, 243, 0.3); +} + +/* Styles pour la page des albums */ +.albums-page { + background-color: #121212; + min-height: 100vh; + padding: 2rem; + overflow-y: auto; +} + +.albums-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); + gap: 2rem; + max-width: 1800px; + margin: 4rem auto 2rem auto; +} + +.album-card { + background-color: #1e1e1e; + border-radius: 1rem; + overflow: hidden; + text-decoration: none; + color: white; + opacity: 0; + transform: translateY(20px); + transition: opacity 0.5s ease, transform 0.5s ease; +} + +.album-card.visible { + opacity: 1; + transform: translateY(0); +} + +.album-card:hover { + transform: translateY(-5px); + box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3); +} + +.album-images { + position: relative; + display: grid; + grid-template-columns: repeat(2, 1fr); + grid-template-rows: repeat(2, 1fr); + aspect-ratio: 1; + gap: 2px; + background-color: #2a2a2a; +} + +.album-image { + width: 100%; + height: 100%; + background-size: cover; + background-position: center; + background-repeat: no-repeat; +} + +.empty-image { + width: 100%; + height: 100%; + background-color: #2a2a2a; +} + +.empty-album { + width: 100%; + height: 100%; + background-color: #2a2a2a; + grid-column: 1 / -1; + grid-row: 1 / -1; +} + +.album-info { + padding: 1rem; +} + +.album-info h2 { + font-size: 1.2rem; + margin: 0; + font-weight: 500; +} + +/* Styles pour la page galerie */ +.gallery-page { + background-color: #121212; + min-height: 100vh; + padding: 0; + margin: 0; +} + +.gallery-header { + width: 100%; + height: 500px; + overflow: hidden; + position: relative; +} + +.header-image { + width: 100%; + height: 100%; + object-fit: cover; +} + +.gallery-info { + padding: 2rem; + max-width: 1800px; + margin: 0 auto; +} + +.gallery-grid { + padding: 2rem; + max-width: 1800px; + margin: 0 auto; +} + +.gallery-grid.is-loading .gallery-item { + opacity: 0; +} + +.gallery-grid .gallery-item { + opacity: 1; + transition: opacity 0.3s ease; +} + +.gallery-item { + width: calc((100% - (7 * 20px)) / 8); + min-width: 200px; + margin-bottom: 20px; + border-radius: 8px; + overflow: hidden; + background-color: #1e1e1e; + transition: transform 0.3s ease; +} + +.gallery-item:hover { + transform: translateY(-5px); +} + +.gallery-item img { + width: 100%; + height: auto; + min-height: 150px; + object-fit: cover; + display: block; +} + +/* Bouton retour commun */ +.back-button { + position: fixed; + top: 2rem; + left: 2rem; + padding: 0.8rem 1.5rem; + background-color: rgba(0, 0, 0, 0.7); + color: white; + text-decoration: none; + border-radius: 2rem; + backdrop-filter: blur(10px); + z-index: 100; + transition: all 0.3s ease; +} + +.back-button:hover { + background-color: rgba(0, 0, 0, 0.9); + transform: translateY(-2px); +} + +/* Media Queries */ +@media (min-width: 1400px) { + .albums-grid { + grid-template-columns: repeat(5, 1fr); + } +} + +@media (max-width: 1600px) { + .gallery-item { + width: calc((100% - (5 * 20px)) / 6); + } +} + +@media (max-width: 1200px) { + .albums-grid { + grid-template-columns: repeat(4, 1fr); + } + .gallery-item { + width: calc((100% - (3 * 20px)) / 5); + } +} + +@media (max-width: 992px) { + .albums-grid { + grid-template-columns: repeat(3, 1fr); + } + .gallery-item { + width: calc((100% - (3 * 20px)) / 4); + } +} + +@media (max-width: 768px) { + .albums-grid { + grid-template-columns: repeat(2, 1fr); + gap: 1rem; + } + + .albums-page { + padding: 1rem; + } + + .gallery-item { + width: calc((100% - (2 * 20px)) / 3); + } + + .gallery-header { + height: 300px; + } + + .gallery-info { + padding: 1.5rem; + } + + .gallery-info h1 { + font-size: 2rem; + } + + h1 { + font-size: 3rem; + } + + p { + font-size: 1rem; + } + + .cta-button { + padding: 0.8rem 1.6rem; + font-size: 1rem; + } +} + +@media (max-width: 480px) { + .albums-grid { + grid-template-columns: 1fr; + } + + .gallery-item { + width: calc((100% - 20px) / 2); + } + + .gallery-grid { + padding: 0.5rem; + } + + .gallery-header { + height: 200px; + } + + .back-button { + top: 1rem; + left: 1rem; + padding: 0.6rem 1.2rem; + font-size: 0.9rem; + } +} + +.share-page { + background-color: rgba(0, 0, 0, 0.9); + min-height: 100vh; + display: flex; + justify-content: center; + align-items: center; +} + +.share-container { + max-width: 90vw; + max-height: 90vh; + position: relative; +} + +.share-image { + border-radius: 8px; + overflow: hidden; + background-color: #1e1e1e; + box-shadow: 0 4px 24px rgba(0, 0, 0, 0.5); +} + +.share-image img { + max-width: 100%; + max-height: 90vh; + display: block; + object-fit: contain; +} + +.share-actions { + position: fixed; + bottom: 2rem; + left: 50%; + transform: translateX(-50%); + display: flex; + gap: 1rem; + background-color: rgba(0, 0, 0, 0.8); + padding: 1rem; + border-radius: 2rem; + backdrop-filter: blur(10px); +} + +/* Ajuster .action-button pour la page de partage */ +.share-actions .action-button { + display: inline-flex; + align-items: center; + gap: 0.5rem; + padding: 0.8rem 1.5rem; + background-color: #2196f3; + color: white; + border: none; + border-radius: 2rem; + cursor: pointer; + font-size: 1rem; + text-decoration: none; + transition: all 0.3s ease; +} + +.share-actions .action-button:hover { + background-color: #1976d2; + transform: translateY(-2px); +} + +.share-actions .action-button .icon { + width: 1.2em; + height: 1.2em; +} + +/* Protection par mot de passe */ +.protected-indicator { + display: inline-block; + margin-left: 0.5rem; + font-size: 0.8em; + vertical-align: middle; +} + +/* Media queries pour la page de partage */ +@media (max-width: 768px) { + .share-actions { + flex-direction: column; + padding: 0.8rem; + } + + .share-actions .action-button { + padding: 0.6rem 1.2rem; + font-size: 0.9rem; + } +} +@media (prefers-reduced-motion: reduce) { + * { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + scroll-behavior: auto !important; + } +} \ No newline at end of file