Skip to content

Commit 5aa0106

Browse files
committed
Merge branch 'MDL-66136-37' of git://github.com/mihailges/moodle into MOODLE_37_STABLE
2 parents 2b4ff27 + a84e91d commit 5aa0106

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

mod/assign/submission/onlinetext/locallib.php

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -599,12 +599,17 @@ public function delete_instance() {
599599
public function is_empty(stdClass $submission) {
600600
$onlinetextsubmission = $this->get_onlinetext_submission($submission->id);
601601
$wordcount = 0;
602+
$hasinsertedresources = false;
602603

603604
if (isset($onlinetextsubmission->onlinetext)) {
604605
$wordcount = count_words(trim($onlinetextsubmission->onlinetext));
606+
// Check if the online text submission contains video, audio or image elements
607+
// that can be ignored and stripped by count_words().
608+
$hasinsertedresources = preg_match('/<\s*((video|audio)[^>]*>(.*?)<\s*\/\s*(video|audio)>)|(img[^>]*>(.*?))/',
609+
trim($onlinetextsubmission->onlinetext));
605610
}
606611

607-
return $wordcount == 0;
612+
return $wordcount == 0 && !$hasinsertedresources;
608613
}
609614

610615
/**
@@ -621,12 +626,17 @@ public function submission_is_empty(stdClass $data) {
621626
return true;
622627
}
623628
$wordcount = 0;
629+
$hasinsertedresources = false;
624630

625631
if (isset($data->onlinetext_editor['text'])) {
626632
$wordcount = count_words(trim((string)$data->onlinetext_editor['text']));
633+
// Check if the online text submission contains video, audio or image elements
634+
// that can be ignored and stripped by count_words().
635+
$hasinsertedresources = preg_match('/<\s*((video|audio)[^>]*>(.*?)<\s*\/\s*(video|audio)>)|(img[^>]*>(.*?))/',
636+
trim((string)$data->onlinetext_editor['text']));
627637
}
628638

629-
return $wordcount == 0;
639+
return $wordcount == 0 && !$hasinsertedresources;
630640
}
631641

632642
/**

mod/assign/submission/onlinetext/tests/locallib_test.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,10 @@ public function submission_is_empty_testcases() {
103103
'Empty submission null' => [null, true],
104104
'Value 0' => [0, false],
105105
'String 0' => ['0', false],
106-
'Text' => ['Ai! laurië lantar lassi súrinen, yéni únótimë ve rámar aldaron!', false]
106+
'Text' => ['Ai! laurië lantar lassi súrinen, yéni únótimë ve rámar aldaron!', false],
107+
'Image' => ['<img src="test.jpg" />', false],
108+
'Video' => ['<video controls="true"><source src="test.mp4"></video>', false],
109+
'Audio' => ['<audio controls="true"><source src="test.mp3"></audio>', false],
107110
];
108111
}
109112
}

0 commit comments

Comments
 (0)