--- quiz/quiz.install +++ quiz/quiz.install @@ -633,6 +633,9 @@ function quiz_schema() { 'not null' => TRUE, 'default' => 1, ), + 'resultoptions' => array( + 'type' => 'text', + ), ), 'primary key' => array('uid'), ); --- quiz/quiz.module +++ quiz/quiz.module @@ -2278,7 +2278,7 @@ function quiz_take_question_view($questi * ['set_msg'] - Sets a message if the last question was skipped. */ function quiz_store_question_result($quiz, $result, $options) { - //drupal_set_message('
'. print_r($result, 1) .'
'); + //drupal_set_message('
'. print_($result, 1) .'
'); if (isset($result->is_skipped) && $result->is_skipped == TRUE) { if ($options['set_msg']) { drupal_set_message(t('Last question skipped.'), 'status'); @@ -4140,7 +4140,24 @@ function _quiz_load_user_settings($uid = if (!empty($res)) { foreach ($res as $key => $value) { if (!in_array($key, array('nid', 'vid', 'uid'))) { - $settings[$key] = $value; + + if ($key == 'resultoptions' && !empty($value)) { + $resultoptions = unserialize($value); + $resultoptionsKeys = array_keys($resultoptions); + + if ($resultoptionsKeys && $resultoptions) { + foreach ($resultoptionsKeys as $rskey => $rsvalue) { + if ($resultoptions[$rsvalue]['option_summary']['value']) { + $resultoptions[$rsvalue]['option_summary_format'] = $resultoptions[$rsvalue]['option_summary']['format']; + $resultoptions[$rsvalue]['option_summary'] = $resultoptions[$rsvalue]['option_summary']['value']; + } + } + $settings[$key] = $resultoptions; + } + } + else { + $settings[$key] = $value; + } } } // TODO : Reviews this later. @@ -4209,6 +4226,7 @@ function _quiz_save_user_settings($node) 'allow_resume' => $node->allow_resume, 'allow_jumping' => $node->allow_jumping, 'show_passed' => $node->show_passed, + 'resultoptions' => isset($node->resultoptions) ? serialize($node->resultoptions) : '', )) ->execute(); drupal_set_message(t('Default settings have been saved'));