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);
 }
Exemplo n.º 2
0
 public function Run()
 {
     //CREATE OBJECTS OF THE VIEWS
     $v = new \view\IndexView();
     $fv = new \view\FooterView();
     $lv = new \view\LayoutView();
     $nv = new \view\NavigationView();
     $pv = new \view\PerformanceView();
     $rcv = new \view\RatingChangeView();
     $esv = new \view\ExpectedScoreView();
     //CREATE OBJECT OF THE MODEL
     $pm = new \model\PlayerModel();
     /******
      ***
      *** Checks if performance link is pressed...
      *** Then checks if calculate button is pressed. If not, just renders performance calculator page...
      *** If calculate is pressed, checks user inputs in validation function, and then if everything is ok, renders result.
      ***
      ******/
     if ($nv->performancePressed()) {
         if ($pv->IsCalculatePosted()) {
             $flag = $pv->validation();
             if ($flag == "ok") {
                 $pv->getResultSucced($pm->CalculatePerformance($pv->getNumberOfWins(), $pv->getNumberOfDraws(), $pv->getNumberOfDefeats(), $pv->getAverageRating()));
             } else {
                 $pv->setResult($flag);
             }
         }
         $lv->render($nv, $pv, $fv);
     }
     /******
      ***
      *** Checks if rating change link is pressed...
      *** Then checks if calculate button is pressed. If not, just renders rating change calculator page...
      *** If calculate is pressed, checks user inputs in validation function, and then if everything is ok, renders result.
      ***
      ******/
     if ($nv->changePressed()) {
         if ($rcv->IsCalculatePosted()) {
             $flag = $rcv->validation();
             if ($flag == "ok") {
                 $rcv->getResultSucced($pm->CalculateRatingChange($rcv->getPOSTKFactor(), $rcv->getNumberOfPoints(), $pm->CalculateExpectedResult($rcv->getAverageRating(), $rcv->getPlayerRating(), $rcv->getNumberOfGames())));
             } else {
                 $rcv->setResult($flag);
             }
         }
         $lv->render($nv, $rcv, $fv);
     }
     /******
      ***
      *** Checks if expected score link is pressed...
      *** Then checks if calculate button is pressed. If not, just renders expected score calculator page...
      *** If calculate is pressed, checks user inputs in validation function, and then if everything is ok, renders result.
      ***
      ******/
     if ($nv->expectedscorePressed()) {
         if ($esv->IsCalculatePosted()) {
             $flag = $esv->validation();
             if ($flag == "ok") {
                 $esv->getResultSucced($pm->CalculateExpectedResult($esv->getAverageRating(), $esv->getPlayerRating(), $esv->getNumberOfGames()));
             } else {
                 $esv->setResult($flag);
             }
         }
         $lv->render($nv, $esv, $fv);
     } else {
         if (!$nv->IfCalculatorPosted()) {
             $lv->render($nv, $v, $fv);
         }
     }
 }