Merge pull request #4 from Yasder5/laura

Laura
This commit is contained in:
Yass 2026-01-19 13:06:13 +01:00 committed by GitHub
commit 046bce1849
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 206 additions and 40 deletions

View file

@ -1,17 +1,19 @@
<?php
require("../app/models/project_model.php");
require("../app/entities/project_entity.php");
require("../app/models/category_model.php");
require("../app/entities/category_entity.php");
/**
* Le controler des Project
* @author Yasser
* @author Yasser & Laura
*/
class ProjectCtrl{
/**
* Fonction d'affichage de la page d'acceuil
*/
public function home(){
$objProjectModel = new ProjectModel;
@ -29,16 +31,27 @@
}
/**
* Fonction d'affichage de la barre de recherche
*/
public function search(){
// inclusion du header
include('../app/views/partials/header.php');
//Récupérer les informations du Formulaire
$strKeywords = $_GET['keywords']??'';
$intAuthor = $_GET['author']??0;
$intPeriod = $_GET['period']??0;
$strDate = $_GET['date']??'';
$strStartDate = $_GET['startdate']??'';
$strEndDate = $_GET['enddate']??'';
$intCategory = $_GET['category']??0;
// Récupération des Projects
$objProjectModel = new ProjectModel;
//$arrProject = findAll(0, $strKeywords, $intAuthor, $intPeriod, $strDate, $strStartDate, $strEndDate);
// Depuis PHP 8 - accès direct aux paramètres
$arrProject = $objProjectModel->findAll();
@ -53,11 +66,27 @@
}
// Récupération des utilisateurs
require("../app/models/user_model.php");
require_once("../app/models/user_model.php");
$objUserModel = new UserModel;
$arrUser = $objUserModel->findAllUsers();
// Récupération des catégories
require_once("../app/models/category_model.php");
$objCategoryModel = new CategoryModel;
$arrCategory = $objCategoryModel->findAllCategory();
include('../app/views/search.php');
include('../app/views/partials/footer.php');
}
/**
* Fonction d'affichage de la page projet
*/
public function project (){
include("../app/views/partials/header.php");
include('../app/views/project.php');
include('../app/views/partials/footer.php');
}
}

View file

@ -32,18 +32,11 @@ class UserCtrl{
$arrError[] = "Mail ou mot de passe invalide";
}else{
// Ajoute l'utilisateur en session
/*$_SESSION['firstname'] = $arrResult['user_firstname'];
$_SESSION['name'] = $arrResult['user_name'];
$_SESSION['id'] = $arrResult['user_id'];*/
// j'enlève le mot de passe avant la session
//unset($arrResult['user_pwd']);
$_SESSION['user'] = $arrResult;
$_SESSION['success'] = "Bienvenue, vous êtes bien connecté";
header("Location:index.php");
exit;
//var_dump($_SESSION);
//var_dump("Connecté");
}
}
}
@ -55,8 +48,6 @@ class UserCtrl{
public function logout(){
session_start();
/*session_destroy();
session_start();*/
// on supprime l'utilisateur en session
unset($_SESSION['user']);

View file

@ -0,0 +1,55 @@
<?php
require_once("mother_entity.php");
/**
* Classe d'un objet Projet
* @author Laura
*/
class Category extends Entity{
private int $_id;
protected string $_name = '';
/**
* Constructeur (j'ai toujours pas compris à quoi ça sert)
*/
public function __construct(){
$this->_prefix = 'category_';
}
// Méthode Getter et Setter
/**
* Récuperation de l'id du Projet
* @return int l'id de la catégorie
*/
public function getId():int{
return $this->_id;
}
/**
* Mise à jour de l'id de la catégorie
* @param int le nouvelle id
*/
public function setId($id){
$this->_id = $id;
}
/**
* Récuperation du nom de la catégorie
* @return string nom de la catégorie
*/
public function getName(){
return $this->_name;
}
/**
* Mise à jour du nom de la catégorie
* @param string le nouveau nom de la catégorie
*/
public function setName($name){
$this->_name = $name;
}
}

View file

@ -19,4 +19,11 @@
}
}
protected function nettoyer(string $strText){
$strText = trim($strText);
$strText = str_replace("<script>", "", $strText);
$strText = str_replace("</script>", "", $strText);
return $strText;
}
}

View file

@ -0,0 +1,25 @@
<?php
require_once('../config/database.php');
/**
* Classe d'un objet Projet
* @author Laura
*/
class CategoryModel extends Connect{
public function findAllCategory(int $intLimit=0):array{
// Ecrire la requête
$strRq = "SELECT category.*
FROM category";
if ($intLimit > 0){
$strRq .= " LIMIT ".$intLimit;
}
// Lancer la requête et récupérer les résultats
return $this->_db->query($strRq)->fetchAll();
}
}

View file

@ -58,11 +58,6 @@
public function insert(object $objUser):bool{
// 2. Construire la requête
/*$strRq = "INSERT INTO users (user_name, user_firstname, user_mail, user_pwd)
VALUES ('".$objUser->getName()."',
'".$objUser->getFirstname()."',
'".$objUser->getMail()."',
'".$objUser->getPwdHash()."')";*/
$strRq = "INSERT INTO users (user_name, user_firstname, user_mail, user_pwd)
VALUES (:name, :firstname, :mail, :pwd)";
// Préparer la requête
@ -74,8 +69,6 @@
$rqPrep->bindValue(":pwd", $objUser->getPwdHash(), PDO::PARAM_STR);
// 3. Executer la requête
//var_dump($strRq);die;
//return $db->exec($strRq);
return $rqPrep->execute();
}
}

View file

@ -11,7 +11,7 @@
<div class="row mb-2">
<?php
foreach($arrProjectToDiplay as $objProject){
include("../app/views/partials/project.php");
include("../app/views/partials/preview.php");
}
?>
</section>

31
app/views/project.php Normal file
View file

@ -0,0 +1,31 @@
<body>
<section class="container mt-5 p-5 d-flex flex-column align-items-center">
<div>
<h2>Alimenter votre projet</h2>
<button type="button" class="btn btn-primary btn-lg">+</button>
</div>
<div>
<h3>Description</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</div>
<div>
<h3>Photos behind the scene</h3>
<div class="row mb-2">
<img >
</div>
</div>
<div>
<h3>Other projects</h3>
<div class="row mb-2">
<?php
foreach($arrProjectToDiplay as $objProject){
include("../app/views/partials/preview.php");
}
?>
</div>
</div>
</div>
<section>
</body>

View file

@ -27,13 +27,23 @@
<div class="col-md-6">
<label for="author" class="form-label">Auteur</label>
<select class="form-select" id="author" name="author">
<option value="0">Tous les auteurs</option>
<option value="0" <?php echo ($intAuthor == 0)?'selected':''; ?>>Tous les auteurs</option>
<?php
foreach($arrUser as $arrDetUser){
?>
<option value="<?php echo $arrDetUser['user_id']; ?>"
<?php echo ($intAuthor == $arrDetUser['user_id'])?'selected':''; ?>
>
<?php echo $arrDetUser['user_firstname'].' '.$arrDetUser['user_name']; ?>
</option>
<?php
}
?>
</select>
</div>
<div class="col-12">
<div class="col-6">
<fieldset>
<legend class="form-label">Type de recherche par date</legend>
<div class="form-check form-check-inline">
@ -43,6 +53,7 @@
name="period"
id="period-exact"
value="0"
<?php echo ($intPeriod == 0)?'checked':'' ; ?>
aria-controls="date-exact date-range">
<label class="form-check-label" for="period-exact">
Date exacte
@ -55,6 +66,7 @@
name="period"
id="period-range"
value="1"
<?php echo ($intPeriod == 1)?'checked':'' ; ?>
aria-controls="date-exact date-range">
<label class="form-check-label" for="period-range">
Période
@ -62,6 +74,29 @@
</div>
</fieldset>
</div>
<!-- AJOUT RECHERCHE PAR CATEGORIE -->
<div class="col-6">
<fieldset>
<legend class="form-label">Type de recherche par catégories</legend>
<div class="col-md-6">
<label for="author" class="form-label">Catégorie</label>
<select class="form-select" id="category" name="category">
<option value="0" <?php echo ($intCategory == 0)?'selected':''; ?>>Toutes les catégories</option>
<?php
foreach($arrCategory as $arrDetCategory){
?>
<option value="<?php echo $arrDetCategory['category_id']; ?>"
<?php echo ($intCategory == $arrDetCategory['category_id'])?'selected':''; ?>
>
<?php echo $arrDetCategory['category_name']; ?>
</option>
<?php
}
?>
</select>
</div>
</fieldset>
</div>
<div class="col-md-6" id="date-exact">
<label for="date" class="form-label">Date</label>
@ -71,7 +106,7 @@
id="date"
name="date"
aria-describedby="date-help"
value="" >
value="<?php echo $strDate; ?>" >
<small id="date-help" class="form-text text-muted">
Format: JJ/MM/AAAA
</small>
@ -86,7 +121,7 @@
class="form-control"
id="startdate"
name="startdate"
value="" >
value="<?php echo $strStartDate; ?>" >
</div>
<div class="col-md-6">
<label for="enddate" class="form-label">Date de fin</label>
@ -95,7 +130,7 @@
class="form-control"
id="enddate"
name="enddate"
value="" >
value="<?php echo $strEndDate; ?>" >
</div>
</div>
</div>
@ -127,9 +162,9 @@
<?php
}
foreach($arrProjectToDisplay as $objProject){
include("../app/views/partials/project.php");
include("../app/views/partials/preview.php");
} ?>
</div>
</section>
</div>
</section>
</section>

0
sfq.txt Normal file
View file