userctrl
Anna BOUDOUL 2 years ago
commit edefb53549

@ -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;

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

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

@ -3,27 +3,27 @@ require_once('../model/UserModel.php');
class FrontController
{
private UserModel $ursMdl;
private $action_User;
//private UserModel $ursMdl;
//private $action_User;
function __construct(){
session_start();
$ursMdl = new UserModel();
try{
$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($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

@ -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*/
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)));
}
# 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;
}
$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;
}
}
?>

@ -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;
}
}
?>

@ -7,7 +7,7 @@ echo "<h1>2do test</h1>";
# 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()."<br>";
// }
# test find
/*$tasks=$tgt->find('idList','001');
@ -32,6 +36,18 @@ foreach($tasks as $i)
// foreach($tasks as $i)
// 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->modifList('2','nom','22do');
//mt->supList('2');
@ -60,10 +76,6 @@ require('../controller/UserCtrl.php');
// $mdl->modifLogin('Anna', 'Aeryn');
// $mdl->modifMdp('Aeryn', 'wtfmec');
// $mdl->supprimer('Aeryn');
// $mdl->connexion('Aeryn', 'wtfmec');
$usrctrl = new UserCtrl($con);
$usrctrl->loadListePriv();
?>

Loading…
Cancel
Save