From a625ee63d376a1cc81a579210b306bee0f8c9ea2 Mon Sep 17 00:00:00 2001 From: Esenjin Date: Tue, 18 Feb 2025 00:20:13 +0100 Subject: [PATCH] =?UTF-8?q?cette=20fois=20les=20urls=20sont=20vraiment=20b?= =?UTF-8?q?ien=20trait=C3=A9es=20partout?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/api/about-image-upload.php | 3 ++- assets/js/options.js | 21 ++++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/admin/api/about-image-upload.php b/admin/api/about-image-upload.php index fbbd2ea..49c5bdb 100644 --- a/admin/api/about-image-upload.php +++ b/admin/api/about-image-upload.php @@ -82,7 +82,8 @@ class AboutImageUploadHandler { // Retourner le chemin relatif pour l'éditeur return [ 'success' => true, - 'url' => 'assets/images/about/' . $filename, + 'url' => $filename, + 'storage_url' => 'assets/images/about/' . $filename, 'width' => $needsResize ? $newWidth : $width, 'height' => $needsResize ? $newHeight : $height ]; diff --git a/assets/js/options.js b/assets/js/options.js index 0553da9..87dedd2 100644 --- a/assets/js/options.js +++ b/assets/js/options.js @@ -24,25 +24,36 @@ document.addEventListener('DOMContentLoaded', function() { input.setAttribute('type', 'file'); input.setAttribute('accept', 'image/*'); input.click(); - + input.onchange = async () => { const file = input.files[0]; if (file) { const formData = new FormData(); formData.append('image', file); - + try { const response = await fetch('api/about-image-upload.php', { method: 'POST', body: formData }); - + if (!response.ok) throw new Error('Upload failed'); - + const result = await response.json(); if (result.success) { const range = aboutEditor.getSelection(true); - aboutEditor.insertEmbed(range.index, 'image', result.url); + // Utiliser le chemin complet pour l'affichage + aboutEditor.insertEmbed(range.index, 'image', '../' + result.storage_url); + + // Mettre à jour le contenu Delta si nécessaire + const insertOp = aboutEditor.getContents().ops.find(op => + op.insert && op.insert.image === '../' + result.storage_url + ); + if (insertOp) { + // Stocker le chemin relatif + insertOp.insert.image = result.storage_url; + } + aboutEditor.setSelection(range.index + 1); } else { showNotification(result.error || 'Erreur lors de l\'upload', 'error');