diff --git a/business/ListTask.php b/business/ListTask.php index a2c1789..6b696ba 100644 --- a/business/ListTask.php +++ b/business/ListTask.php @@ -3,8 +3,8 @@ private int $id; private string $nom; private array $taches; - private string $owner; - private int $dc; // done counter + private $owner; + private int $dc; // done counter # juste visuelle?? function __construct($id, $nom, $owner="", $dc = 0) { $this->id = $id; diff --git a/business/User.php b/business/User.php index 7de66c5..3c3c203 100644 --- a/business/User.php +++ b/business/User.php @@ -1,6 +1,6 @@ login = $login; diff --git a/controller/CtrlUser.php b/controller/CtrlUser.php index 0a2359a..b5b97c0 100644 --- a/controller/CtrlUser.php +++ b/controller/CtrlUser.php @@ -1,10 +1,9 @@ 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($user == null){ # si pas conncter # appel controlleur visiteur avec action connecter require("VisitCtrl.php"); $visitCtrl = new VisitCtrl(); - $visitCtrl->goconnexion(); + $visitCtrl.handleAction('connecter'); + // inclure la vue de connexion } else { # sinon # handle action avec controlleur user require("UserCtrl.php"); - $userCtrl = new UserCtrl(); + $userCtrl = new UserCtrl(); //action ici + $userCtrl.handleAction($action); } } else { # sinon forcement action visiteur diff --git a/controller/VisitorCtrl.php b/controller/VisitorCtrl.php new file mode 100644 index 0000000..d366498 --- /dev/null +++ b/controller/VisitorCtrl.php @@ -0,0 +1,110 @@ +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(){ + + } + + } + + +} +?> \ No newline at end of file diff --git a/dal/TaskGateway.php b/dal/TaskGateway.php index a5e0b72..5c7f374 100644 --- a/dal/TaskGateway.php +++ b/dal/TaskGateway.php @@ -51,27 +51,52 @@ class TaskGateway } /*si on veut trouver une liste, juste chercher toutes les taches avec idList= id_de_la_liste*/ - public function find($element="", $valeur=""){ - if(strcmp($element,"")==0) - { - $query='SELECT * FROM Tache'; - $this->con->executeQuery($query); - } - else - { - $query='SELECT * FROM Tache WHERE '.$element.'=:'.$element; - $this->con->executeQuery($query, array( - ':'.$element =>array($valeur,PDO::PARAM_STR))); - } - - $results=$this->con->getResults(); - foreach($results as $row) - { - $tabTaches[]=new Task($row['id'],$row['titre'],$row['description'],$row['priorite'], - $row['idList'],$row['dateDebut'],$row['dateFin'],$row['isDone']); - } - return $tabTaches; - } + # pour toutes les listes d'un user specifique, appeller 2 fois la fonction: + # une fois pour prendre toutes les listes qui ont l'id de l'user + # pour toutes ces listes (foreach), find toutes chaque tache associé + public function find($table, $element="", $valeur=""){ + if($table =='task'){ + if(strcmp($element,"")==0) + { + $query='SELECT * FROM Tache'; + $this->con->executeQuery($query); + } + else + { + $query='SELECT * FROM Tache WHERE '.$element.'=:'.$element; + $this->con->executeQuery($query, array( + ':'.$element =>array($valeur,PDO::PARAM_STR))); + } + + $results=$this->con->getResults(); + foreach($results as $row) + { + $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 */ /*create, update, delete, read(select info)*/ @@ -82,5 +107,52 @@ class TaskGateway ':nom'=> array($l->get_nom(),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; + } } ?> diff --git a/model/TaskModel.php b/model/TaskModel.php index a505afa..b3ea54b 100644 --- a/model/TaskModel.php +++ b/model/TaskModel.php @@ -32,12 +32,12 @@ class TaskModel public function getAllTask() { - return $this->gtw->find(); + return $this->gtw->find('task'); } public function getTaskBy($element,$valeur) { - return $this->gtw->find($element,$valeur); + return $this->gtw->find('task',$element,$valeur); } /* LIST FUNCTIONS */ @@ -57,5 +57,27 @@ class TaskModel { $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; + } } ?> diff --git a/tests/test.php b/tests/test.php index 7927c18..2c4112e 100644 --- a/tests/test.php +++ b/tests/test.php @@ -7,7 +7,7 @@ echo "

2do test

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