123 lines
3.4 KiB
HTML
123 lines
3.4 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="fr">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Ajouter un article</title>
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css">
|
|
<script src="https://cdn.ckeditor.com/ckeditor5/39.0.1/classic/ckeditor.js"></script>
|
|
<script src="https://cdn.ckeditor.com/ckeditor5/39.0.1/classic/translations/fr.js"></script>
|
|
|
|
|
|
|
|
|
|
|
|
<style>
|
|
body {
|
|
background: #f4f6f9;
|
|
}
|
|
.container {
|
|
max-width: 700px;
|
|
margin: 40px auto;
|
|
}
|
|
.ck-editor__editable {
|
|
min-height: 350px;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<div class="container">
|
|
<h2 class="mb-5 text-center">Ajouter un article</h2>
|
|
<form id="ajouterArticleForm">
|
|
|
|
|
|
<!--Erreur titre vide-->
|
|
<div id="errorEmpty" class="alert alert-danger d-none">Le titre de l'article est obligatoire</div>
|
|
|
|
<!--Erreur image invalide-->
|
|
<div id="errorImage" class="alert alert-danger d-none">
|
|
Format d'image invalide. Formats acceptés : JPG, PNG
|
|
</div>
|
|
|
|
<!--Erreur titre existant-->
|
|
<div id="errorExists" class="alert alert-danger d-none">Ce titre existe déjà. Choisissez un autre titre.</div>
|
|
|
|
<!--Succès ajout article-->
|
|
<div id="successMsg" class="alert alert-success d-none">Article ajouté avec succès !</div>
|
|
|
|
<!-- Catégorie -->
|
|
<div class="mb-3">
|
|
<label class="form-label fw-bold">Catégorie de l'article</label>
|
|
<input list="categories" id="articleCategory" class="form-control" placeholder="Entrez une catégorie">
|
|
|
|
<datalist id="categories">
|
|
<option value="actualités">
|
|
<option value="chien">
|
|
<option value="chat">
|
|
<option value="boutique">
|
|
</datalist>
|
|
</div>
|
|
|
|
<!-- Titre -->
|
|
<div class="mb-4">
|
|
<label class="form-label fw-bold">Titre de l'article (obligatoire)</label>
|
|
<input type="text" id="articleTitle" class="form-control" placeholder="Entrez le titre de l'article">
|
|
</div>
|
|
|
|
<!-- Contenu -->
|
|
<div class="mb-3">
|
|
<label class="form-label fw-bold">Contenu de l'article</label>
|
|
<textarea id="articleContent" class="form-control" rows="5" placeholder="Entrez le contenu de l'article"></textarea>
|
|
</div>
|
|
|
|
<!-- Image -->
|
|
<div class="mb-4">
|
|
<label class="form-label fw-bold">Image de l'article</label>
|
|
<input type="file" id="articleImage" class="form-control" accept="image/*">
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<!--Publié-->
|
|
<div class="form-check mb-3">
|
|
<input class="form-check-input" type="checkbox" id="articlePublished">
|
|
<label class="form-check-label" for="articlePublished">Publié (sera publié sur le blog)</label>
|
|
</div>
|
|
|
|
|
|
<!--Boutons-->
|
|
<div class="d-flex gap-3 mt-4">
|
|
<a href="../html/liste_article.html" class="btn btn-secondary w-50">Annuler</a>
|
|
<button type="submit" class="btn btn-primary w-50">Ajouter</button>
|
|
</div>
|
|
|
|
</form>
|
|
</div>
|
|
|
|
<script src="../js/ajouter_article.js"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
|
|
<script>
|
|
|
|
ClassicEditor
|
|
.create(document.querySelector('#articleContent'), {
|
|
language: 'fr',
|
|
toolbar: [
|
|
'heading',
|
|
'bold', 'italic', 'underline',
|
|
'bulletedList', 'numberedList',
|
|
'undo', 'redo'
|
|
]
|
|
})
|
|
.catch(error => {
|
|
console.error(error);
|
|
});
|
|
|
|
|
|
|
|
</script>
|
|
|
|
</body>
|
|
</html> |