コード例 #1
0
ファイル: CMEQuizPage.php プロジェクト: nrfredrickson/Cme
    protected function initResponse()
    {
        $this->response = $this->quiz->getResponseByAccount($this->app->session->account);
        if ($this->response instanceof InquisitionResponse) {
            // efficiently load question options for response values
            $this->response->values->loadAllSubDataObjects('question_option', $this->app->db, 'select * from InquisitionQuestionOption where id in (%s)', SwatDBClassMap::get('InquisitionQuestionOptionWrapper'));
            // efficiently load question bindings for response values
            $question_bindings = $this->response->values->loadAllSubDataObjects('question_binding', $this->app->db, 'select * from InquisitionInquisitionQuestionBinding
					where id in (%s)', SwatDBClassMap::get('InquisitionInquisitionQuestionBindingWrapper'));
            // efficiently load questions for question bindings
            if ($question_bindings instanceof InquisitionInquisitionQuestionBindingWrapper) {
                $question_bindings->loadAllSubDataObjects('question', $this->app->db, 'select * from InquisitionQuestion where id in (%s)', SwatDBClassMap::get('InquisitionQuestionWrapper'));
            }
            // index responses by question binding id
            foreach ($this->response->values as $value) {
                $binding_id = $value->question_binding->id;
                $this->response_values_by_binding_id[$binding_id] = $value;
            }
        }
    }
コード例 #2
0
 protected function getResponse(InquisitionInquisition $quiz)
 {
     $response = $quiz->getResponseByAccount($this->app->session->account);
     // get new response
     if (!$response instanceof CMEQuizResponse) {
         $class_name = SwatDBClassMap::get('CMEQuizResponse');
         $response = new $class_name();
         $response->account = $this->app->session->account;
         $response->inquisition = $quiz;
         $response->createdate = new SwatDate();
         $response->createdate->toUTC();
         $wrapper = SwatDBClassMap::get('InquisitionResponseValueWrapper');
         $response->values = new $wrapper();
         $response->setDatabase($this->app->db);
     }
     return $response;
 }