Permalink
Browse files

Merge branch 'MDL-30760_22' of git://github.com/timhunt/moodle into M…

…OODLE_22_STABLE
  • Loading branch information...
2 parents 6005434 + 9660c98 commit 9f83ba0887bd0ed0cc7ea9bd86e0eed9a743cfe4 Sam Hemelryk committed Dec 20, 2011
View
@@ -42,6 +42,8 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
abstract class question_bank {
+ const MAX_SUMMARY_LENGTH = 65000;
+
/** @var array question type name => question_type subclass. */
private static $questiontypes = array();
@@ -89,6 +89,11 @@ public function insert_question_attempt(question_attempt $qa, $context) {
$record->minfraction = $qa->get_min_fraction();
$record->flagged = $qa->is_flagged();
$record->questionsummary = $qa->get_question_summary();
+ if (textlib::strlen($record->questionsummary) > question_bank::MAX_SUMMARY_LENGTH) {
+ // It seems some people write very long quesions! MDL-30760
+ $record->questionsummary = textlib::substr($record->questionsummary,
+ 0, question_bank::MAX_SUMMARY_LENGTH - 3) . '...';
+ }
$record->rightanswer = $qa->get_right_answer_summary();
$record->responsesummary = $qa->get_response_summary();
$record->timemodified = time();
@@ -245,6 +245,11 @@ public function save_usage($preferredbehaviour, $attempt, $qas, $quizlayout) {
$qa = $qas[$questionid];
$qa->questionusageid = $attempt->uniqueid;
$qa->slot = $i;
+ if (textlib::strlen($qa->questionsummary) > question_bank::MAX_SUMMARY_LENGTH) {
+ // It seems some people write very long quesions! MDL-30760
+ $qa->questionsummary = textlib::substr($qa->questionsummary,
+ 0, question_bank::MAX_SUMMARY_LENGTH - 3) . '...';
+ }
$this->insert_record('question_attempts', $qa);
$layout[$questionkeys[$questionid]] = $qa->slot;
@@ -404,7 +404,7 @@ function qtype_multianswer_extract_question($text) {
&& preg_match('~'.NUMERICAL_ALTERNATIVE_REGEX.'~',
$altregs[ANSWER_ALTERNATIVE_REGEX_ANSWER], $numregs)) {
$wrapped->answer[] = $numregs[NUMERICAL_CORRECT_ANSWER];
- if ($numregs[NUMERICAL_ABS_ERROR_MARGIN]) {
+ if (array_key_exists(NUMERICAL_ABS_ERROR_MARGIN, $numregs)) {
$wrapped->tolerance["$answerindex"] =
$numregs[NUMERICAL_ABS_ERROR_MARGIN];
} else {

0 comments on commit 9f83ba0

Please sign in to comment.