示例#1
0
 /**
  * This function stores the options of the questions in the table
  *
  * @param array $form_content
  * @author Patrick Cool <*****@*****.**>, Ghent University
  * @version January 2007
  *
  * @todo writing the update statement when editing a question
  */
 public static function save_question_options($form_content, $survey_data)
 {
     $course_id = api_get_course_int_id();
     // A percentage question type has options 1 -> 100
     if ($form_content['type'] == 'percentage') {
         for ($i = 1; $i < 101; $i++) {
             $form_content['answers'][] = $i;
         }
     }
     if (is_numeric($survey_data['survey_share']) && $survey_data['survey_share'] != 0) {
         SurveyManager::save_shared_question_options($form_content, $survey_data);
     }
     // Table definition
     $table_survey_question_option = Database::get_course_table(TABLE_SURVEY_QUESTION_OPTION);
     // We are editing a question so we first have to remove all the existing options from the database
     if (is_numeric($form_content['question_id'])) {
         $sql = "DELETE FROM {$table_survey_question_option}\n\t\t\t        WHERE c_id = {$course_id} AND question_id = '" . intval($form_content['question_id']) . "'";
         Database::query($sql);
     }
     $counter = 1;
     if (isset($form_content['answers']) && is_array($form_content['answers'])) {
         for ($i = 0; $i < count($form_content['answers']); $i++) {
             $values = isset($form_content['values']) ? $form_content['values'][$i] : '';
             $params = ['c_id' => $course_id, 'question_id' => $form_content['question_id'], 'survey_id' => $form_content['survey_id'], 'option_text' => $form_content['answers'][$i], 'value' => $values, 'sort' => $counter];
             $insertId = Database::insert($table_survey_question_option, $params);
             if ($insertId) {
                 $sql = "UPDATE {$table_survey_question_option}\n                            SET question_option_id = {$insertId}\n                            WHERE iid = {$insertId}";
                 Database::query($sql);
                 $counter++;
             }
         }
     }
 }