1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| <?php
session_start();
class controller{
private $model; // 2 attributs pour pointer sur les 2 autres classes.
private $view;
public function __construct() {
/* création du modèle et de la vue ; la vue doit connaître aussi le modèle */
$this->model=new model();
$this->view=new view($this->model);
/* l'action est positionnée soit par GET (see_doc), soit par POST (formulaires) */
$action="";
if (isset($_GET['action'])) $action=$_GET['action'];
if (isset($_POST['action'])) $action=$_POST['action'];
if (!isset($_SESSION['Account'])) $action="connect"; // Si pas connecté, l'action est forcée à "connect"
$res_updateM=$this->updateModel($action);
$this->showView($action,$res_updateM);
}
public function updateModel($action) {
switch($action) {
case "insert":$res=$this->model->insertOperation(new Operation($_POST['DateISO'],$_POST['intitule'],$_POST['montant'],NULL,$_POST['id']));break;
case "remove" : $res=$this->model->removeOperation(array_keys($_POST['suppr'])) ; break;
case "update": $res=$this->model->updateOperation(new Operation($_POST['DateISO'],$_POST['intitule'],$_POST['montant'],NULL,$_POST['id']));break;
case "connect" : $res=(isset($_POST['login']))&&($this->model->actionFormConnect($_POST['login'],$_POST['pwd'])); break;
default : $res=true; break;
}
return($res); // true si OK, false sinon
}
public function showView($action, $res_updateM) {
switch($action) {
case "see_doc" : $vue="doc"; break;
case "insert" :
case "update" :
case "remove" : if ($res_updateM) $vue="list"; else $vue="err"; break;
case "connect" : if ($res_updateM) $vue="list"; else $vue="authentif"; break;
default :$vue="list"; break;
}
$this->view->show($vue); // affichage des différentes vues (formulaires ou msg d'erreur)
}
} |
Partager