167 lines
No EOL
5.8 KiB
PHP
167 lines
No EOL
5.8 KiB
PHP
<?php
|
|
require("./models/project_model.php");
|
|
require("./entities/project_entity.php");
|
|
require("./models/category_model.php");
|
|
require("./entities/category_entity.php");
|
|
require("./models/image_model.php");
|
|
require("./entities/image_entity.php");
|
|
require("./models/user_model.php");
|
|
require("./entities/user_entity.php");
|
|
require("mother_controller.php");
|
|
|
|
/**
|
|
* Le controler des Project
|
|
* @author Yasser & Laura
|
|
*/
|
|
class ProjectCtrl extends MotherCtrl{
|
|
|
|
/**
|
|
* Fonction d'affichage de la page d'acceuil
|
|
*/
|
|
|
|
public function home(){
|
|
|
|
$objProjectModel = new ProjectModel;
|
|
$arrProject = $objProjectModel->findAll();
|
|
$arrProjectToDisplay = array();
|
|
foreach($arrProject as $arrDetProject){
|
|
$objProject = new Project;
|
|
$objProject->hydrate($arrDetProject);
|
|
$arrProjectToDisplay[] = $objProject;
|
|
}
|
|
|
|
$this->_arrData['arrProjectToDisplay'] = $arrProjectToDisplay;
|
|
|
|
|
|
$this->_display("home");
|
|
|
|
}
|
|
|
|
/**
|
|
* Fonction d'affichage de la barre de recherche
|
|
*/
|
|
|
|
public function search(){
|
|
//Récupérer les informations du formulaire
|
|
$strKeywords = $_POST['keywords']??'';
|
|
$intAuthor = $_POST['author']??0;
|
|
$intPeriod = $_POST['period']??0;
|
|
$strDate = $_POST['date']??'';
|
|
$strStartDate = $_POST['startdate']??'';
|
|
$strEndDate = $_POST['enddate']??'';
|
|
$intCategory = $_POST['category']??0;
|
|
// Récupération des projetc
|
|
$objProjectModel = new ProjectModel;
|
|
$arrProject = $objProjectModel->findAll(intAuthor:$intAuthor, intPeriod:$intPeriod, strDate:$strDate,
|
|
strKeywords:$strKeywords, strStartDate:$strStartDate, strEndDate:$strEndDate, intCategory:$intCategory);
|
|
|
|
// Initialisation d'un tableau => objets
|
|
$arrProjectToDisplay = array();
|
|
// Boucle de transformation du tableau de tableau en tableau d'objets
|
|
foreach($arrProject as $arrDetProject){
|
|
$objProject = new Project;
|
|
$objProject->hydrate($arrDetProject);
|
|
|
|
$arrProjectToDisplay[] = $objProject;
|
|
}
|
|
|
|
$objUserModel = new UserModel;
|
|
$arrUser = $objUserModel->findAllUsers();
|
|
|
|
|
|
$objCategoryModel = new CategoryModel;
|
|
$arrCategory = $objCategoryModel->findAllCategory();
|
|
|
|
$this->_arrData['arrProjectToDisplay'] = $arrProjectToDisplay;
|
|
$this->_arrData['arrCategory'] = $arrCategory;
|
|
$this->_arrData['arrUser'] = $arrUser;
|
|
|
|
|
|
|
|
|
|
$this->_display("search");
|
|
}
|
|
|
|
/**
|
|
* Fonction d'affichage de la page projet
|
|
*/
|
|
|
|
|
|
public function project (){
|
|
|
|
$objProjectModel = new ProjectModel;
|
|
$arrProject = $objProjectModel->findAll(4);
|
|
$arrProjectToDiplay = array();
|
|
foreach($arrProject as $arrDetProject){
|
|
$objProject = new Project;
|
|
$objProject->hydrate($arrDetProject);
|
|
$arrProjectToDiplay[] = $objProject;
|
|
}
|
|
|
|
$objImageModel = new ImageModel;
|
|
$arrImage = $objImageModel->findAllImage(4);
|
|
$arrImageToDiplay = array();
|
|
foreach($arrImage as $arrDetImage){
|
|
$objImage = new Image;
|
|
$objImage->hydrate($arrDetImage);
|
|
$arrImageToDiplay[] = $objImage;
|
|
}
|
|
//Variable data
|
|
$_SESSION['title'] = $_POST['titleProject']??"";
|
|
$_SESSION['description'] = $_POST['descProject']??"";
|
|
$_SESSION['content'] = $_POST['textProject']??"";
|
|
$_SESSION['thumbnail'] = $_FILES['imageProject']['name']??"";
|
|
$_SESSION['status'] = 'en_attente';
|
|
|
|
|
|
$objProject = new Project();
|
|
|
|
/**
|
|
/* Créer par Besnik le GOAT et l'autre GOAT de Guillaume
|
|
/*
|
|
/* @return bool pour savoir si le fichier existe,
|
|
/* puis déplace vers le fichier uploads avec les images projet des utilisateurs
|
|
/* Communication avec la BDD
|
|
*/
|
|
if (($_SESSION['thumbnail'] != null)){
|
|
$strDest = "";
|
|
if ((count($_FILES) > 0) && ($_FILES['imageProject']['error'] != 4)){
|
|
$strDest = '../public/uploads/projects/'.$_FILES['imageProject']['name'];
|
|
var_dump($strDest);
|
|
move_uploaded_file($_FILES['imageProject']['tmp_name'], $strDest);
|
|
}
|
|
}
|
|
|
|
/** En cas d'appuis sur le bouton d'envoie ou celui de remettre a plus tard
|
|
/* 1. Changement de status
|
|
/* 2. Hydratation avec les informations récupéré de l'utilisateur
|
|
/* 3. Envoie des données à la BDD
|
|
*/
|
|
if (isset($_POST['sendMessage'])) {
|
|
$_SESSION['status'] = 'publié';
|
|
$objProject->hydrate($_SESSION);
|
|
$objProject->setThumbnail($strDest);
|
|
$objProjectModel->insert($objProject);
|
|
|
|
} else if (isset($_POST['toContinue'])) {
|
|
$objProject->hydrate($_SESSION);
|
|
$objProject->setThumbnail($strDest);
|
|
$objProjectModel->insert($objProject);
|
|
}
|
|
|
|
//Débuggage
|
|
var_dump($_SESSION);
|
|
var_dump($objProject);
|
|
$this->_arrData['arrProjectToDiplay'] = $arrProjectToDiplay;
|
|
$this->_arrData['arrImageToDiplay'] = $arrImageToDiplay;
|
|
|
|
$this->_display("project");
|
|
|
|
}
|
|
|
|
public function admin(){
|
|
|
|
$this->_display("admin");
|
|
|
|
}
|
|
} |