From a846fa104fe0c736683bc8584c64713c9d881317 Mon Sep 17 00:00:00 2001
From: Guillaume HESS
Date: Thu, 26 Feb 2026 16:24:47 +0100
Subject: [PATCH] Ajustement de la partie ajout/modif/suppression des projets
---
entities/project_entity.php | 16 +++++------
models/project_model.php | 29 ++++++++++----------
models/user_model.php | 5 +++-
uploads/projects/69a049e86a0f4.webp | Bin 0 -> 5946 bytes
uploads/projects/69a049e8834a4_gallery.webp | Bin 0 -> 3308 bytes
views/_partial/preview.tpl | 4 +--
views/home.tpl | 6 ++--
7 files changed, 31 insertions(+), 29 deletions(-)
create mode 100644 uploads/projects/69a049e86a0f4.webp
create mode 100644 uploads/projects/69a049e8834a4_gallery.webp
diff --git a/entities/project_entity.php b/entities/project_entity.php
index 6e7e944..b77c134 100644
--- a/entities/project_entity.php
+++ b/entities/project_entity.php
@@ -7,17 +7,17 @@ require_once("mother_entity.php");
class Project extends Entity{
- private ?int $_id = null;
- private string $_title = "";
- private string $_description = "";
- private ?string $_thumbnail = null;
- private string $_content = "";
+ private ?int $_id = null;
+ private string $_title = "";
+ private string $_description = "";
+ private ?string $_thumbnail = null;
+ private string $_content = "";
private string $_creation_date;
- private string $_status = "en_attente";
+ private string $_status = "en_attente";
private int $_user;
private int $_category = 0;
private string $_creatorname;
- private ?string $_user_image = null;
+ private ?string $_user_image = null;
/**
@@ -216,6 +216,4 @@ class Project extends Entity{
public function setUser_image($user_image){
$this->_user_image = $user_image;
}
-
-
}
\ No newline at end of file
diff --git a/models/project_model.php b/models/project_model.php
index 0a72059..d960674 100644
--- a/models/project_model.php
+++ b/models/project_model.php
@@ -140,14 +140,14 @@
/**
* Fonction de changement de status (accepter) d'un projet en BDD
- * @author Guillaume
* @param int $id l'id du projet
* @return bool Est-ce que la requête s'est bien passée
*/
public function accept(int $id){
$strRq = "UPDATE project
- SET project_status= 'publié'
+ SET project_status = 'publié',
+ project_edit_date = NOW()
WHERE project_id =".$id;
return $this->_db->query($strRq);
@@ -155,14 +155,14 @@
/**
* Fonction de changement de status (refusé) d'un projet en BDD
- * @author Guillaume
* @param int $id l'id du projet
* @return bool Est-ce que la requête s'est bien passée
*/
public function refuse(int $id){
$strRq = "UPDATE project
- SET project_status= 'refusé'
+ SET project_status = 'refusé',
+ project_edit_date = NOW()
WHERE project_id =".$id;
return $this->_db->query($strRq);
@@ -170,13 +170,13 @@
/**
* Fonction de suppression d'un projet en BDD
- * @author Guillaume
* @param int $id l'id du projet
* @return bool Est-ce que la requête s'est bien passée
*/
public function delete_soft_project(int $intId): bool {
$strRq = "UPDATE project
- SET project_deleted_at = NOW()
+ SET project_deleted_at = NOW(),
+ project_edit_date = NOW()
WHERE project_id = :id";
$rqPrep = $this->_db->prepare($strRq);
@@ -187,7 +187,6 @@
/**
* Fonction de mise à jour d'un projet en BDD
- * @author Guillaume
* @param object $objProject L'objet utilisateur
* @return bool Est-ce que la requête s'est bien passée
*/
@@ -197,7 +196,9 @@
SET project_title = :title,
project_description = :description,
project_content = :content,
- project_thumbnail = :thumbnail
+ project_thumbnail = :thumbnail,
+ project_status = 'en_attente',
+ project_edit_date = NOW()
WHERE project_id = :id";
$rqPrep = $this->_db->prepare($strRq);
@@ -213,7 +214,6 @@
/**
* Fonction de récupération d'image d'un projet en BDD
- * @author Guillaume
* @param int $objProject L'Id du projet choisit
* @return array Un tableau avec les informations de la bdd
*/
@@ -231,7 +231,6 @@
/**
* Fonction de récupération d'image d'un projet en BDD
- * @author Guillaume
* @param int $id L'Id de l'image choisit
* @return array Un tableau avec les informations de la bdd
*/
@@ -244,12 +243,13 @@
/**
* Fonction de modifications de status de l'image d'un projet en BDD
- * @author Guillaume
* @param int $id L'Id de l'image choisit, string $status le status choisit
* @return array Un tableau avec les informations de la bdd
*/
public function updateImageStatus(int $id, string $status): bool {
- $strRq = "UPDATE image SET image_status = :status WHERE image_id = :id";
+ $strRq = "UPDATE image
+ SET image_status = :status
+ WHERE image_id = :id";
$rqPrep = $this->_db->prepare($strRq);
$rqPrep->bindValue(':status', $status, PDO::PARAM_STR);
$rqPrep->bindValue(':id', $id, PDO::PARAM_INT);
@@ -258,12 +258,12 @@
/**
* Fonction de récupération d'image d'un projet en BDD
- * @author Guillaume
* @param int $id L'Id de l'image choisit
* @return array Un tableau avec les informations de la bdd
*/
public function findImage(int $id): array|bool {
- $strRq = "SELECT * FROM image WHERE image_id = :id";
+ $strRq = "SELECT * FROM image
+ WHERE image_id = :id";
$rqPrep = $this->_db->prepare($strRq);
$rqPrep->bindValue(':id', $id, PDO::PARAM_INT);
$rqPrep->execute();
@@ -273,7 +273,6 @@
/**
* Ajoute une image liée à un projet dans la table 'image'
- * @author Guillaume
* @param string $fileName Nom du fichier image
* @param int $projectId ID du projet parent
* @param string $alt Texte alternatif
diff --git a/models/user_model.php b/models/user_model.php
index 9c6c7ce..65ab6da 100644
--- a/models/user_model.php
+++ b/models/user_model.php
@@ -80,13 +80,16 @@
date('Y-m-d H:i:s', time() + (15*24*60*60))
, PDO::PARAM_STR);
return $rqPrep->execute();
-
}
+
+
public function getTokenUser(string $hash){
$strRq = $this->_db->prepare("SELECT token_user_id FROM tokens WHERE token_hash = :hash AND token_expire_at > NOW()");
$strRq->execute(['hash' => $hash]);
return $strRq->fetch();
}
+
+
public function deleteToken(string $hash){
$strRq = $this->_db->prepare("DELETE FROM tokens WHERE token_hash = :hash");
return $strRq->execute(['hash' => $hash]);
diff --git a/uploads/projects/69a049e86a0f4.webp b/uploads/projects/69a049e86a0f4.webp
new file mode 100644
index 0000000000000000000000000000000000000000..c504287d026c453676d10f8e6eb999e945b5f83f
GIT binary patch
literal 5946
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
literal 0
HcmV?d00001
diff --git a/views/_partial/preview.tpl b/views/_partial/preview.tpl
index 8aceddd..8204c4f 100644
--- a/views/_partial/preview.tpl
+++ b/views/_partial/preview.tpl
@@ -33,14 +33,14 @@
- Colmar
+ Colmar