From 91da8c1c600d5ae75293894844009ebdb3f69db4 Mon Sep 17 00:00:00 2001 From: Esenjin Date: Sun, 5 Jan 2025 12:32:54 +0100 Subject: [PATCH] =?UTF-8?q?ajout=20de=20la=20fonctionnalit=C3=A9=20de=20g?= =?UTF-8?q?=C3=A9n=C3=A9ration=20de=20liens?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- arbre-prive.php | 85 ++++++++++++++++++++++++++++++++++++++++++++++-- styles-admin.css | 26 +++++++++++++++ 2 files changed, 109 insertions(+), 2 deletions(-) diff --git a/arbre-prive.php b/arbre-prive.php index 124ada3..bc6b0bf 100644 --- a/arbre-prive.php +++ b/arbre-prive.php @@ -7,6 +7,37 @@ if (!isset($_SESSION['admin_id'])) { exit; } +// Gérer la génération de lien de partage +if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'generate_link') { + $albumPath = $_POST['path'] ?? ''; + $duration = intval($_POST['duration'] ?? 24); + $comment = $_POST['comment'] ?? ''; + + if ($albumPath && isSecurePrivatePath($albumPath)) { + // Récupérer ou créer l'identifiant unique de l'album + $albumIdentifier = ensureAlbumIdentifier($albumPath); + + if ($albumIdentifier) { + // Créer la clé de partage + $shareKey = createShareKey($albumIdentifier, $duration, $comment); + + if ($shareKey) { + $shareUrl = getBaseUrl() . '/galeries-privees.php?key=' . urlencode($shareKey); + $_SESSION['success_message'] = "Lien de partage généré avec succès. URL : " . $shareUrl; + } else { + $_SESSION['error_message'] = "Erreur lors de la génération du lien de partage."; + } + } else { + $_SESSION['error_message'] = "Erreur lors de la création de l'identifiant de l'album."; + } + } else { + $_SESSION['error_message'] = "Chemin d'album invalide."; + } + + header('Location: arbre-prive.php'); + exit; +} + if ($_SERVER['REQUEST_METHOD'] === 'POST') { $action = $_POST['action'] ?? ''; $path = $_POST['path'] ?? ''; @@ -116,6 +147,7 @@ function generatePrivateTree($path, $currentPath) { $info = getAlbumInfo($fullPath); $isCurrentPath = realpath($fullPath) === $currentPath; $hasSubfolders = hasSubfolders($fullPath); + $hasImages = hasImages($fullPath); $output .= '
  • '; $output .= '
    '; @@ -128,6 +160,12 @@ function generatePrivateTree($path, $currentPath) { $output .= '
    '; if (!$hasSubfolders) { $output .= '🖼️'; + // Ajout du bouton de génération de lien si le dossier contient des images + if ($hasImages) { + $output .= ''; + } } if (!$hasSubfolders) { $output .= ''; } else { $output .= ''; } - if (!hasImages($fullPath)) { + if (!$hasImages) { $output .= ''; } if ($fullPath !== './liste_albums_prives') { @@ -279,6 +317,42 @@ function generatePrivateTree($path, $currentPath) {
    + + + \ No newline at end of file diff --git a/styles-admin.css b/styles-admin.css index a958f63..5545d3d 100644 --- a/styles-admin.css +++ b/styles-admin.css @@ -754,6 +754,32 @@ body { border-color: #1976d2; } +/* Style de la modale des clés de partage */ +.tree-button-share { + background-color: rgba(33, 150, 243, 0.2) !important; + color: #2196f3 !important; +} + +.tree-button-share:hover { + background-color: rgba(33, 150, 243, 0.4) !important; +} + +.action-button-share { + background-color: #2196f3 !important; +} + +.action-button-share:hover { + background-color: #1976d2 !important; +} + +.share-info { + margin-bottom: 1.5rem; + padding: 1rem; + background-color: rgba(33, 150, 243, 0.1); + border-radius: 0.5rem; + border-left: 4px solid #2196f3; +} + /* Styles spécifiques pour la page de gestion du carrousel */ body[data-page="carrousel"] .upload-zone { border-color: #ff8c00;