Ajout de la modifications des XP/Projets en admin (fonctionnel)
This commit is contained in:
+73
-1
@@ -14,7 +14,7 @@ function listeXP() {
|
||||
// Essayer
|
||||
try {
|
||||
// Requête SQL qui récupère titre, type, tags, description, durée, image_url
|
||||
$stmt = $dbh->prepare('SELECT title, xptype, tags, description, duration, image_url FROM experiences ORDER BY id DESC');
|
||||
$stmt = $dbh->prepare('SELECT id, title, xptype, tags, description, duration, image_url FROM experiences ORDER BY id DESC');
|
||||
// Execution de la requête SQL
|
||||
$stmt->execute();
|
||||
// Retourne toutes les données collectés dans un ARRAY
|
||||
@@ -25,6 +25,23 @@ function listeXP() {
|
||||
}
|
||||
}
|
||||
|
||||
// Fonction qui permet de récupérer les experiences par id et donc de modifier une xp en particulier en ciblant l'id
|
||||
function recupererXPParId($id) {
|
||||
global $dbh;
|
||||
|
||||
try {
|
||||
// Préparation de la requête préparée
|
||||
$stmt = $dbh->prepare('SELECT id, title, xptype, tags, description, duration, image_url FROM experiences WHERE id = :id');
|
||||
$stmt->bindValue(':id', $id, PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
return $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
// En cas d'erreur => renvoyer un message avec l'erreur
|
||||
} catch (PDOException $e) {
|
||||
die("Erreur de connexion à la base de donnée portfolio :" . $e->getMessage());
|
||||
// Retourner false en cas d'eerreur
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Fonction qui va afficher les experiences
|
||||
function afficherXP() {
|
||||
@@ -91,5 +108,60 @@ function afficherXP() {
|
||||
}
|
||||
|
||||
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
// Fonction identique à celle en haut mais ajout de bouton
|
||||
function afficherXPAdmin() {
|
||||
$experiences = listeXP();
|
||||
|
||||
echo '<div class="projects-list">';
|
||||
|
||||
foreach ($experiences as $experience) {
|
||||
$id = (int) $experience['id'];
|
||||
$titre = htmlspecialchars($experience['title']);
|
||||
$xptype = htmlspecialchars($experience['xptype']);
|
||||
$description = nl2br(htmlspecialchars($experience['description']));
|
||||
$duration = htmlspecialchars($experience['duration']);
|
||||
$image = htmlspecialchars($experience['image_url']);
|
||||
$tags = [];
|
||||
|
||||
if (!empty($experience['tags'])) {
|
||||
$tags = array_filter(array_map('trim', explode(',', $experience['tags'])));
|
||||
}
|
||||
|
||||
echo '<article class="project-card">';
|
||||
|
||||
if (!empty($image)) {
|
||||
echo '<div class="project-banner">';
|
||||
echo '<img src="' . $image . '" alt="Image de l experience ' . $titre . '">';
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
echo '<div class="project-content">';
|
||||
echo '<h2>' . $titre . '</h2>';
|
||||
echo '<p><strong>Type :</strong> ' . $xptype . '</p>';
|
||||
echo '<p><strong>Durée :</strong> ' . $duration . '</p>';
|
||||
|
||||
if (!empty($tags)) {
|
||||
echo '<div class="project-tags">';
|
||||
foreach ($tags as $tag) {
|
||||
echo '<span class="tag">' . htmlspecialchars($tag) . '</span>';
|
||||
}
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
echo '<p>' . $description . '</p>';
|
||||
|
||||
// Boutons qui vont permettrent la modification / Suppresion
|
||||
echo '<div class="admin-actions">';
|
||||
echo '<a class="btn-submit btn-edit" href="./admin.php?edit_xp=' . $id . '">Modifier</a>';
|
||||
echo '<a class="btn-submit btn-delete" href="../scripts/removeXP.php?id=' . $id . '" onclick="return confirm(\'Voulez-vous vraiment supprimer cette expérience ?\');">Supprimer</a>';
|
||||
echo '</div>';
|
||||
|
||||
echo '</div>';
|
||||
echo '</article>';
|
||||
}
|
||||
|
||||
echo '</div>';
|
||||
}
|
||||
Reference in New Issue
Block a user