예제 #1
0
 public function doControl()
 {
     // setup everything for the login
     $userDAL = new \model\UserDAL();
     $sessionHandler = new \common\SessionHandler();
     $cookieHandler = new \view\CookieHandler();
     $loginModel = new \model\LoginModel($sessionHandler, $userDAL);
     $loginView = new \view\LoginView($sessionHandler, $cookieHandler, $loginModel);
     $loginController = new \controller\LoginController($loginModel, $loginView);
     $isLoggedIn = $loginController->doLoginAction();
     // The first view is always the AdminView
     $this->view = new \view\AdminView($loginView, $this->navView, $isLoggedIn);
     // Don't want to continue further down if not logged in
     if (!$isLoggedIn) {
         return;
     }
     if ($this->navView->adminWantsToAddBeer()) {
         $this->view = new \view\AddBeerView($sessionHandler, $this->adminFacade->getPubs());
         if ($this->view->adminPressedSave()) {
             $beer = $this->view->getBeer();
             if ($beer == null) {
                 return;
             }
             $pubBeer = $this->view->getPubBeer($beer->getId());
             $this->adminFacade->addBeer($beer);
             $this->adminFacade->addPubBeer($pubBeer);
             $this->navView->redirectToBeer($beer->getId());
         }
     } elseif ($this->navView->adminWantsToAddPub()) {
         $this->view = new \view\AddPubView($sessionHandler);
         if ($this->view->adminPressedSave()) {
             $pub = $this->view->getPub();
             if ($pub == null) {
                 return;
             }
             $this->adminFacade->addPub($pub);
             $this->navView->redirectToPub($pub->getId());
         }
     }
 }
 public function run()
 {
     $dateTimeView = new \view\DateTimeView();
     $layoutView = new \view\LayoutView();
     $navigationView = new \view\NavigationView();
     $sessionHandler = new \common\SessionHandler();
     $isLoggedIn = false;
     if ($navigationView->userWantsToRegister()) {
         $registerModel = new \model\RegisterModel($this->userDAL);
         $registerView = new \view\RegisterView($sessionHandler, $registerModel);
         $registerController = new \controller\RegisterController($registerModel, $registerView);
         $registerController->doRegisterAction();
         $html = $registerController->getView()->response();
     } else {
         $cookieHandler = new \view\CookieHandler();
         $loginModel = new \model\LoginModel($sessionHandler, $this->userDAL);
         $loginView = new \view\LoginView($sessionHandler, $cookieHandler, $loginModel);
         $loginController = new \controller\LoginController($loginModel, $loginView);
         $isLoggedIn = $loginController->doLoginAction();
         $html = $loginController->getView()->response();
     }
     $layoutView->render($isLoggedIn, $html, $dateTimeView, $navigationView);
 }