From 8d3a08c420e22284e59785a56743142490629cd5 Mon Sep 17 00:00:00 2001 From: Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de> Date: Wed, 17 Apr 2024 15:07:56 +0200 Subject: [PATCH] allow `|` in cloze_exercise, re #138 --- exercises/cloze_exercise.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/exercises/cloze_exercise.php b/exercises/cloze_exercise.php index 23d7d05..b2852d5 100644 --- a/exercises/cloze_exercise.php +++ b/exercises/cloze_exercise.php @@ -369,7 +369,7 @@ class cloze_exercise extends Exercise foreach ($this->task['answers'][$blank] as $answer) { $answer_text = $answer['text']; - if (preg_match('/^([":*~]|$)/', $answer_text)) { + if (preg_match('/^([":*~]|$|.*\|)/', $answer_text)) { $answer_text = '"' . $answer_text . '"'; } @@ -424,7 +424,9 @@ class cloze_exercise extends Exercise } if ($part !== '') { - foreach (explode('|', $part) as $answer) { + preg_match_all('/( *[*~]?".*?" *|[^|]*)\|/', $part . '|', $matches); + + foreach ($matches[1] as $answer) { $answer = trim($answer); $points = 1; -- GitLab