/** * Implements the abstract method * * @access public * * @param \UJM\ExoBundle\Entity\InteractionOpen $originalInterOpen * * Return boolean */ public function processUpdate($originalInterOpen) { $originalWrs = array(); $originalHints = array(); foreach ($originalInterOpen->getWordResponses() as $wr) { $originalWrs[] = $wr; } foreach ($originalInterOpen->getInteraction()->getHints() as $hint) { $originalHints[] = $hint; } if ($this->request->getMethod() == 'POST') { $this->form->handleRequest($this->request); if ($this->form->isValid()) { $this->onSuccessUpdate($this->form->getData(), $originalWrs, $originalHints); return true; } } return false; }
/** * Implements the abstract method. * * * @param \UJM\ExoBundle\Entity\InteractionOpen $originalInterOpen * * Return boolean */ public function processUpdate($originalInterOpen) { $originalWrs = []; $originalHints = []; foreach ($originalInterOpen->getWordResponses() as $wr) { $originalWrs[] = $wr; } foreach ($originalInterOpen->getQuestion()->getHints() as $hint) { $originalHints[] = $hint; } if ($this->request->getMethod() == 'POST') { $this->form->handleRequest($this->request); // Uses the default category if no category selected $this->checkCategory(); if ($this->form->isValid()) { $this->onSuccessUpdate($this->form->getData(), $originalWrs, $originalHints); return true; } } return false; }
/** * Get score for an open question with short answer * * @access private * * @param String $response * @param \UJM\ExoBundle\Entity\InteractionOpen $interOpen * * @return float */ private function getScoreShortResponse($response, $interOpen) { $score = 0; foreach ($interOpen->getWordResponses() as $wr) { $pattern = '/' . $wr->getResponse() . '/'; if (!$wr->getCaseSensitive()) { $pattern .= 'i'; } $subject = '/' . $response . '/'; if (preg_match($pattern, $subject)) { $score += $wr->getScore(); } } return $score; }