public function execute($request) { if ($request->getMethod() === coreRequest::POST) { // validate post parameters and save user's review session info $validator = new coreValidator($this->getContext()->getActionName()); $this->forward404Unless($validator->validate($request->getParameterHolder()->getAll())); $this->saveReviewSessionInfo($request->getParameterHolder()); // update review stats for the active members list ActiveMembersPeer::updateFlashcardInfo($this->getUser()->getUserId()); } else { // grab the user's most recent review session info from db $params = ActiveMembersPeer::getReviewSummaryInfo($this->getUser()->getUserId()); $this->forward404Unless($params); $request->getParameterHolder()->add($params); } // template vars $this->ts_start = $request->getParameter('ts_start', 0); $this->numRemembered = (int) $request->getParameter('fc_pass', 0); $this->numForgotten = (int) $request->getParameter('fc_fail', 0); $this->numTotal = $this->numRemembered + $this->numForgotten; if ($this->numRemembered == $this->numTotal) { $this->title = 'Hurrah! All remembered!'; } elseif ($this->numForgotten == $this->numTotal && $this->numTotal > 1) { $this->title = 'Eek! All forgotten!'; } else { $this->title = 'Remembered ' . $this->numRemembered . ' of ' . $this->numTotal . ' kanji.'; } }