protected function getReplacementMarkerText($marker_id)
 {
     $locale = SwatI18NLocale::get();
     switch ($marker_id) {
         case 'account-full-name':
             return $this->account->getFullName();
         case 'cme-certificate-link':
             return $this->getCertificateLinkURI();
         case 'quiz-passing-grade':
             return $locale->formatNumber($this->front_matter->passing_grade * 100) . '%';
         case 'quiz-grade':
             $grade = $this->response->getGrade();
             return $locale->formatNumber(round($grade * 1000) / 10) . '%';
         default:
             return parent::getReplacementMarkerText($marker_id);
     }
 }
 protected function saveResponseValue(CMEQuizResponse $response, InquisitionResponseValue $response_value)
 {
     // save new response object if it wasn't already saved
     $response->save();
     // set response on value and save value
     $response_value->response = $response->id;
     $response_value->save();
 }