userctrl
Anna BOUDOUL 2 years ago
commit edefb53549

@ -3,8 +3,8 @@
private int $id; private int $id;
private string $nom; private string $nom;
private array $taches; private array $taches;
private string $owner; private $owner;
private int $dc; // done counter private int $dc; // done counter # juste visuelle??
function __construct($id, $nom, $owner="", $dc = 0) { function __construct($id, $nom, $owner="", $dc = 0) {
$this->id = $id; $this->id = $id;

@ -1,6 +1,6 @@
<?php <?php
class User{ class User{
private string $login; private string $login; // botar um id no final se der tempo
function __construct($login) { function __construct($login) {
$this->login = $login; $this->login = $login;

@ -1,10 +1,9 @@
<?php <?php
class CtrlUser{ class CtrlUser{
function __construct(){ function __construct(){
global $vues;
$rep=__DIR__.'/../'; $rep=__DIR__.'/../';
$dVueEreur = array (); $dVueErreur = array ();
try{ try{
$action=$_REQUEST['action']; $action=$_REQUEST['action'];

@ -3,27 +3,27 @@ require_once('../model/UserModel.php');
class FrontController class FrontController
{ {
private UserModel $ursMdl; //private UserModel $ursMdl;
private $action_User; //private $action_User;
function __construct(){ function __construct(){
session_start(); session_start();
$ursMdl = new UserModel();
try{ try{
$user = $this->usrMdl.isUser(); // cette fonction retourne quoi? $user = $this->usrMdl.isUser(); // cette fonction retourne quoi?
$action = $_GET['action']; $action = $_REQUEST['action'];
if(($i = array_search($action,$action_User)) !== false){ # si action dans la liste d'actions user if(($i = array_search($action,$action_User)) !== false){ # si action dans la liste d'actions user
if($user == null){ # si pas conncter if($user == null){ # si pas conncter
# appel controlleur visiteur avec action connecter # appel controlleur visiteur avec action connecter
require("VisitCtrl.php"); require("VisitCtrl.php");
$visitCtrl = new VisitCtrl(); $visitCtrl = new VisitCtrl();
$visitCtrl->goconnexion(); $visitCtrl.handleAction('connecter');
// inclure la vue de connexion
} else { # sinon } else { # sinon
# handle action avec controlleur user # handle action avec controlleur user
require("UserCtrl.php"); require("UserCtrl.php");
$userCtrl = new UserCtrl(); $userCtrl = new UserCtrl(); //action ici
$userCtrl.handleAction($action);
} }
} else { # sinon forcement action visiteur } else { # sinon forcement action visiteur

@ -0,0 +1,110 @@
<?php
require_once("../model/TaskModel");
class VisitCtrl
{
private $taskModel;
function __construct(){
$dvueErreur = array();
$taskModel = new TaskModel();
try{
$action = $_REQUEST['action'];
switch($action){
case null:
$this->loadHome();
# initialize la page home avec tout les listes
break;
case 'pageConnection':
$this->go_connection();
break;
case 'connecter':
$this->connection();
# charge la vue de connexion
break;
case 'pageListe':
$this->go_list();
break;
case 'creerListe':
$this->makeList();
# creer une liste publique
break;
case 'supprimerListe':
$this->eraseList();
# supprime une liste publique
break;
case 'pageTache':
$this->go_task();
break;
case 'ajouterTache':
$this->addTask();
# ajouter une tache a une liste pub
break;
case 'supprimerTache':
$this->eraseTask();
# supprimer une tache
break;
default:
#
$dvueErreur[] = 'Erreur inattendue';
require($rep.$vues['']);
break;
}
} catch (Exception $e) {
require("../view/erreur.php");
}
function loadHome(){
# instancie tableau / donnees
# requere vue
# dans vue check if isset
# display content
$public_lists = $this->taskModel.loadPublicList();
}
function go_connection(){
}
function connection(){
}
function go_list(){
}
function makeList(){
}
function eraseList(){
}
function go_task(){
}
function addTask(){
}
function eraseTask(){
}
}
}
?>

@ -51,27 +51,52 @@ class TaskGateway
} }
/*si on veut trouver une liste, juste chercher toutes les taches avec idList= id_de_la_liste*/ /*si on veut trouver une liste, juste chercher toutes les taches avec idList= id_de_la_liste*/
public function find($element="", $valeur=""){ # pour toutes les listes d'un user specifique, appeller 2 fois la fonction:
if(strcmp($element,"")==0) # une fois pour prendre toutes les listes qui ont l'id de l'user
{ # pour toutes ces listes (foreach), find toutes chaque tache associé
$query='SELECT * FROM Tache'; public function find($table, $element="", $valeur=""){
$this->con->executeQuery($query); if($table =='task'){
} if(strcmp($element,"")==0)
else {
{ $query='SELECT * FROM Tache';
$query='SELECT * FROM Tache WHERE '.$element.'=:'.$element; $this->con->executeQuery($query);
$this->con->executeQuery($query, array( }
':'.$element =>array($valeur,PDO::PARAM_STR))); else
} {
$query='SELECT * FROM Tache WHERE '.$element.'=:'.$element;
$results=$this->con->getResults(); $this->con->executeQuery($query, array(
foreach($results as $row) ':'.$element =>array($valeur,PDO::PARAM_STR)));
{ }
$tabTaches[]=new Task($row['id'],$row['titre'],$row['description'],$row['priorite'],
$row['idList'],$row['dateDebut'],$row['dateFin'],$row['isDone']); $results=$this->con->getResults();
} foreach($results as $row)
return $tabTaches; {
} $tabTaches[]=new Task($row['id'],$row['titre'],$row['description'],$row['priorite'],
$row['idList'],$row['dateDebut'],$row['dateFin'],$row['isDone']);
}
return $tabTaches;
} else if($table == 'list'){
if(strcmp($element,"")==0)
{
$query='SELECT * FROM uList';
$this->con->executeQuery($query);
}
else
{
$query='SELECT * FROM uList WHERE '.$element.'=:'.$element;
$this->con->executeQuery($query, array(
':'.$element =>array($valeur,PDO::PARAM_STR)));
}
$results=$this->con->getResults();
foreach($results as $row)
{
$tabList[]=new ListTask($row['id'],$row['nom'],$row['user'],$row['dc']);
}
return $tabList;
}
}
/* # LIST FUNCTIONS */ /* # LIST FUNCTIONS */
/*create, update, delete, read(select info)*/ /*create, update, delete, read(select info)*/
@ -82,5 +107,52 @@ class TaskGateway
':nom'=> array($l->get_nom(),PDO::PARAM_STR), ':nom'=> array($l->get_nom(),PDO::PARAM_STR),
':user'=> array($l->get_owner(),PDO::PARAM_STR))); ':user'=> array($l->get_owner(),PDO::PARAM_STR)));
} }
public function findUserList($user){
# pas réussit a faire une jointure optimale donc
# decomposé en plusieurs foncitons:
# findUserList
# findTacheList
$query='SELECT * from uList where user = :user';
$this->con->executeQuery($query, array(
':user' => array($user,PDO::PARAM_STR)
));
$results = $this->con->getResults();
foreach($results as $row){
$tabLists[]= new ListTask($row[0],$row[1],$row[2],$row[3]);
}
return $tabLists;
}
public function findListTask($list){
$query='SELECT * from Tache where idList = :idList';
$this->con->executeQuery($query, array(
':idList' => array($list->get_id(),PDO::PARAM_STR)
));
$results = $this->con->getResults();
foreach($results as $row){
$taches[]= new Task($row['id'],$row['titre'],$row['description'],$row['priorite'],
$row['idList'],$row['dateDebut'],$row['dateFin'],$row['isDone']);
}
if(!empty($taches))
$list->set_taches($taches);
return $list;
}
public function findPublicList(){
$query='SELECT * from uList where user is NULL';
$this->con->executeQuery($query);
$results = $this->con->getResults();
foreach($results as $row){
$tabLists[]= new ListTask($row[0],$row[1],$row[2],$row[3]);
}
return $tabLists;
}
} }
?> ?>

@ -32,12 +32,12 @@ class TaskModel
public function getAllTask() public function getAllTask()
{ {
return $this->gtw->find(); return $this->gtw->find('task');
} }
public function getTaskBy($element,$valeur) public function getTaskBy($element,$valeur)
{ {
return $this->gtw->find($element,$valeur); return $this->gtw->find('task',$element,$valeur);
} }
/* LIST FUNCTIONS */ /* LIST FUNCTIONS */
@ -57,5 +57,27 @@ class TaskModel
{ {
$this->gtw->delete('list',$id); $this->gtw->delete('list',$id);
} }
function loadPublicLists()
{
$lists = $this->gtw->findPublicList();
foreach($lists as &$row){
$row = $this->gtw->findListTask($row);
}
return $lists;
}
function loadPrivateLists($user){
# prend toutes les listes de l'user
$lists = $this->gtw->findUserList($user);
# pour chacune de ses listes, charge les taches
foreach($lists as &$row){
$row = $this->gtw->findListTask($row);
}
return $lists;
}
} }
?> ?>

@ -7,7 +7,7 @@ echo "<h1>2do test</h1>";
# Test de la Gateway Tache # Test de la Gateway Tache
# nouvelle tache # nouvelle tache
$t = new Task(5,'tacheNotErr','desc.','urgent','001'); # $t = new Task(5,'tacheNotErr','desc.','urgent','001');
# connection # connection
include("credentials.php"); include("credentials.php");
@ -17,6 +17,10 @@ $con = new Connection('mysql:host=localhost;dbname=dbanboudoul', 'anboudoul', 'a
// $tgt = new TaskGateway($con); // $tgt = new TaskGateway($con);
//$tgt->insert($t); //$tgt->insert($t);
//$tgt->delete('10'); //$tgt->delete('10');
//$taches = $tgt->findUserList('nifranco');
// foreach($taches as $t){
// echo $t->get_id()." ".$t->get_idList()."<br>";
// }
# test find # test find
/*$tasks=$tgt->find('idList','001'); /*$tasks=$tgt->find('idList','001');
@ -32,6 +36,18 @@ foreach($tasks as $i)
// foreach($tasks as $i) // foreach($tasks as $i)
// echo $i->get_id()."<br>"; // echo $i->get_id()."<br>";
# Test LOAD PRIVATE TASKS
$mt= new TaskModel($con);
$lists = $mt->loadPublicLists();
foreach($lists as $l){
echo 'List: '.$l->get_id()."<br>";
echo "Tasks: <br>";
foreach($l->get_taches() as $t){
echo $t->get_id()."<br>";
}
}
// $mt->addList('002','todo2','nifranco'); // $mt->addList('002','todo2','nifranco');
// $mt->modifList('2','nom','22do'); // $mt->modifList('2','nom','22do');
//mt->supList('2'); //mt->supList('2');
@ -59,11 +75,7 @@ require('../controller/UserCtrl.php');
// $mdl->ajouter('Anna', 'unmdptrescomplique'); // $mdl->ajouter('Anna', 'unmdptrescomplique');
// $mdl->modifLogin('Anna', 'Aeryn'); // $mdl->modifLogin('Anna', 'Aeryn');
// $mdl->modifMdp('Aeryn', 'wtfmec'); // $mdl->modifMdp('Aeryn', 'wtfmec');
// $mdl->supprimer('Aeryn'); // $mdl->supprimer('Aeryn');
// $mdl->connexion('Aeryn', 'wtfmec');
$usrctrl = new UserCtrl($con);
$usrctrl->loadListePriv();
?> ?>

Loading…
Cancel
Save