const form = document.getElementById("ajouterArticleForm"); const messages = document.getElementById("messages"); const imgField = document.getElementById("articleImage"); const titleField = document.getElementById("articleTitle"); const categoryField = document.getElementById("articleCategory"); const publishedField = document.getElementById("articlePublished"); // Simulation BDD const titresExistants = ["décoration noel", "coupe de chien"]; function showMessage(type, text) { messages.innerHTML = ""; const div = document.createElement("div"); div.className = `alert alert-${type}`; div.textContent = text; messages.appendChild(div); } function imageValide(file) { if (!file) return true; return ["image/jpeg", "image/png"].includes(file.type); } form.addEventListener("submit", function (e) { e.preventDefault(); messages.innerHTML = ""; const titre = titleField.value.trim(); const titreLower = titre.toLowerCase(); const contenu = tinymce.get("articleContent").getContent().trim(); const categorie = categoryField.value; const image = imgField.files[0]; const published = publishedField.checked; // Catégorie obligatoire if (!categorie) { showMessage("danger", "Veuillez choisir une catégorie."); return; } // Titre obligatoire if (!titre) { showMessage("danger", "Le titre de l'article est obligatoire."); return; } // Titre existant if (titresExistants.includes(titreLower)) { showMessage("danger", "Ce titre existe déjà. Choisissez-en un autre."); return; } // Contenu obligatoire if (!contenu) { showMessage("danger", "Le contenu de l'article ne peut pas être vide."); return; } // Image valide if (!imageValide(image)) { showMessage("danger", "Format d'image invalide. JPG ou PNG uniquement."); return; } // Enregistrement titre simulé titresExistants.push(titreLower); // Création article const nouvelArticle = { id: Date.now(), titre, contenu, categorie, published, date: new Date().toISOString() }; // LocalStorage const articles = JSON.parse(localStorage.getItem("articles")) || []; articles.push(nouvelArticle); localStorage.setItem("articles", JSON.stringify(articles)); showMessage("success", "Article ajouté avec succès !"); // Reset form.reset(); tinymce.get("articleContent").setContent(""); // Redirection setTimeout(() => { window.location.href = "../html/accueil_blog.html"; }, 1500); }); /* ========================= TinyMCE ========================= */ tinymce.init({ selector: "#articleContent", height: 400, language: "fr", plugins: "lists fullscreen", toolbar: "undo redo | bold italic underline | bullist numlist | fullscreen" });