diff --git a/mod/assign/externallib.php b/mod/assign/externallib.php
index 69b6c361b9a..1e22eb1bda7 100644
--- a/mod/assign/externallib.php
+++ b/mod/assign/externallib.php
@@ -460,9 +460,10 @@ class mod_assign_external extends external_api {
// Return or not intro and file attachments depending on the plugin settings.
if ($assign->show_intro()) {
-
- list($assignment['intro'], $assignment['introformat']) = external_format_text($module->intro,
- $module->introformat, $context->id, 'mod_assign', 'intro', null);
+ $options = array('noclean' => true);
+ list($assignment['intro'], $assignment['introformat']) =
+ external_format_text($module->intro, $module->introformat, $context->id, 'mod_assign', 'intro', null,
+ $options);
$assignment['introfiles'] = external_util::get_area_files($context->id, 'mod_assign', 'intro', false,
false);
diff --git a/mod/book/classes/external.php b/mod/book/classes/external.php
index 189d2c68e8e..2047f5a4bfd 100644
--- a/mod/book/classes/external.php
+++ b/mod/book/classes/external.php
@@ -205,8 +205,9 @@ class mod_book_external extends external_api {
$bookdetails['course'] = $book->course;
$bookdetails['name'] = external_format_string($book->name, $context->id);
// Format intro.
+ $options = array('noclean' => true);
list($bookdetails['intro'], $bookdetails['introformat']) =
- external_format_text($book->intro, $book->introformat, $context->id, 'mod_book', 'intro', null);
+ external_format_text($book->intro, $book->introformat, $context->id, 'mod_book', 'intro', null, $options);
$bookdetails['introfiles'] = external_util::get_area_files($context->id, 'mod_book', 'intro', false, false);
$bookdetails['numbering'] = $book->numbering;
$bookdetails['navstyle'] = $book->navstyle;
diff --git a/mod/chat/classes/external.php b/mod/chat/classes/external.php
index 0ef65660cd3..d4012db8b1a 100644
--- a/mod/chat/classes/external.php
+++ b/mod/chat/classes/external.php
@@ -549,8 +549,9 @@ class mod_chat_external extends external_api {
$chatdetails['course'] = $chat->course;
$chatdetails['name'] = external_format_string($chat->name, $chatcontext->id);
// Format intro.
+ $options = array('noclean' => true);
list($chatdetails['intro'], $chatdetails['introformat']) =
- external_format_text($chat->intro, $chat->introformat, $chatcontext->id, 'mod_chat', 'intro', null);
+ external_format_text($chat->intro, $chat->introformat, $chatcontext->id, 'mod_chat', 'intro', null, $options);
$chatdetails['introfiles'] = external_util::get_area_files($chatcontext->id, 'mod_chat', 'intro', false, false);
if (has_capability('mod/chat:chat', $chatcontext)) {
diff --git a/mod/choice/classes/external.php b/mod/choice/classes/external.php
index 8fc4e4cdde0..cdcadd117fd 100644
--- a/mod/choice/classes/external.php
+++ b/mod/choice/classes/external.php
@@ -502,11 +502,10 @@ class mod_choice_external extends external_api {
$choicedetails['course'] = $choice->course;
$choicedetails['name'] = external_format_string($choice->name, $context->id);
// Format intro.
+ $options = array('noclean' => true);
list($choicedetails['intro'], $choicedetails['introformat']) =
- external_format_text($choice->intro, $choice->introformat,
- $context->id, 'mod_choice', 'intro', null);
- $choicedetails['introfiles'] = external_util::get_area_files($context->id, 'mod_choice', 'intro', false,
- false);
+ external_format_text($choice->intro, $choice->introformat, $context->id, 'mod_choice', 'intro', null, $options);
+ $choicedetails['introfiles'] = external_util::get_area_files($context->id, 'mod_choice', 'intro', false, false);
if (has_capability('mod/choice:choose', $context)) {
$choicedetails['publish'] = $choice->publish;
diff --git a/mod/data/classes/external/database_summary_exporter.php b/mod/data/classes/external/database_summary_exporter.php
index 4499853ac10..79e522d5b90 100644
--- a/mod/data/classes/external/database_summary_exporter.php
+++ b/mod/data/classes/external/database_summary_exporter.php
@@ -237,6 +237,7 @@ class database_summary_exporter extends exporter {
return [
'component' => 'mod_data',
'filearea' => 'intro',
+ 'options' => array('noclean' => true),
];
}
}
diff --git a/mod/data/tests/externallib_test.php b/mod/data/tests/externallib_test.php
index 51ad2d449fe..b6a39bf11cb 100644
--- a/mod/data/tests/externallib_test.php
+++ b/mod/data/tests/externallib_test.php
@@ -141,6 +141,7 @@ class mod_data_external_testcase extends externallib_advanced_testcase {
$record = new stdClass();
$record->introformat = FORMAT_HTML;
$record->course = $course1->id;
+ $record->intro = '';
$database1 = self::getDataGenerator()->create_module('data', $record);
// Second database.
diff --git a/mod/feedback/classes/external/feedback_summary_exporter.php b/mod/feedback/classes/external/feedback_summary_exporter.php
index 2cccd935131..856b67bc983 100644
--- a/mod/feedback/classes/external/feedback_summary_exporter.php
+++ b/mod/feedback/classes/external/feedback_summary_exporter.php
@@ -173,6 +173,7 @@ class feedback_summary_exporter extends exporter {
return [
'component' => 'mod_feedback',
'filearea' => 'intro',
+ 'options' => array('noclean' => true),
];
}
diff --git a/mod/folder/classes/external.php b/mod/folder/classes/external.php
index f875c929b53..81ccfc95ef3 100644
--- a/mod/folder/classes/external.php
+++ b/mod/folder/classes/external.php
@@ -157,8 +157,9 @@ class mod_folder_external extends external_api {
// Entry to return.
$folder->name = external_format_string($folder->name, $context->id);
- list($folder->intro, $folder->introformat) = external_format_text($folder->intro,
- $folder->introformat, $context->id, 'mod_folder', 'intro', null);
+ $options = array('noclean' => true);
+ list($folder->intro, $folder->introformat) =
+ external_format_text($folder->intro, $folder->introformat, $context->id, 'mod_folder', 'intro', null, $options);
$folder->introfiles = external_util::get_area_files($context->id, 'mod_folder', 'intro', false, false);
$returnedfolders[] = $folder;
diff --git a/mod/forum/externallib.php b/mod/forum/externallib.php
index 6a0aaa0b19b..35284594913 100644
--- a/mod/forum/externallib.php
+++ b/mod/forum/externallib.php
@@ -90,8 +90,9 @@ class mod_forum_external extends external_api {
$forum->name = external_format_string($forum->name, $context->id);
// Format the intro before being returning using the format setting.
- list($forum->intro, $forum->introformat) = external_format_text($forum->intro, $forum->introformat,
- $context->id, 'mod_forum', 'intro', null);
+ $options = array('noclean' => true);
+ list($forum->intro, $forum->introformat) =
+ external_format_text($forum->intro, $forum->introformat, $context->id, 'mod_forum', 'intro', null, $options);
$forum->introfiles = external_util::get_area_files($context->id, 'mod_forum', 'intro', false, false);
// Discussions count. This function does static request cache.
$forum->numdiscussions = forum_count_discussions($forum, $cm, $course);
diff --git a/mod/glossary/classes/external.php b/mod/glossary/classes/external.php
index e900e04f1af..87f563d4545 100644
--- a/mod/glossary/classes/external.php
+++ b/mod/glossary/classes/external.php
@@ -217,8 +217,10 @@ class mod_glossary_external extends external_api {
foreach ($glossaries as $glossary) {
$context = context_module::instance($glossary->coursemodule);
$glossary->name = external_format_string($glossary->name, $context->id);
- list($glossary->intro, $glossary->introformat) = external_format_text($glossary->intro, $glossary->introformat,
- $context->id, 'mod_glossary', 'intro', null);
+ $options = array('noclean' => true);
+ list($glossary->intro, $glossary->introformat) =
+ external_format_text($glossary->intro, $glossary->introformat, $context->id, 'mod_glossary', 'intro', null,
+ $options);
$glossary->introfiles = external_util::get_area_files($context->id, 'mod_glossary', 'intro', false, false);
// Make sure we have a number of entries per page.
diff --git a/mod/imscp/classes/external.php b/mod/imscp/classes/external.php
index 85292af661f..e8db88c9db7 100644
--- a/mod/imscp/classes/external.php
+++ b/mod/imscp/classes/external.php
@@ -163,8 +163,10 @@ class mod_imscp_external extends external_api {
if (has_capability('mod/imscp:view', $context)) {
// Format intro.
+ $options = array('noclean' => true);
list($imscpdetails['intro'], $imscpdetails['introformat']) =
- external_format_text($imscp->intro, $imscp->introformat, $context->id, 'mod_imscp', 'intro', null);
+ external_format_text($imscp->intro, $imscp->introformat, $context->id, 'mod_imscp', 'intro', null,
+ $options);
$imscpdetails['introfiles'] = external_util::get_area_files($context->id, 'mod_imscp', 'intro', false, false);
}
diff --git a/mod/label/classes/external.php b/mod/label/classes/external.php
index 064af2d7e7a..6b575129dbb 100644
--- a/mod/label/classes/external.php
+++ b/mod/label/classes/external.php
@@ -91,9 +91,9 @@ class mod_label_external extends external_api {
$context = context_module::instance($label->coursemodule);
// Entry to return.
$label->name = external_format_string($label->name, $context->id);
-
- list($label->intro, $label->introformat) = external_format_text($label->intro,
- $label->introformat, $context->id, 'mod_label', 'intro', null);
+ $options = array('noclean' => true);
+ list($label->intro, $label->introformat) =
+ external_format_text($label->intro, $label->introformat, $context->id, 'mod_label', 'intro', null, $options);
$label->introfiles = external_util::get_area_files($context->id, 'mod_label', 'intro', false, false);
$returnedlabels[] = $label;
diff --git a/mod/lesson/classes/external/lesson_summary_exporter.php b/mod/lesson/classes/external/lesson_summary_exporter.php
index fb262be14db..e0fa14a5d53 100644
--- a/mod/lesson/classes/external/lesson_summary_exporter.php
+++ b/mod/lesson/classes/external/lesson_summary_exporter.php
@@ -301,6 +301,7 @@ class lesson_summary_exporter extends exporter {
return [
'component' => 'mod_lesson',
'filearea' => 'intro',
+ 'options' => array('noclean' => true),
];
}
}
diff --git a/mod/lti/classes/external.php b/mod/lti/classes/external.php
index e9ca83e7a4b..c66158609c3 100644
--- a/mod/lti/classes/external.php
+++ b/mod/lti/classes/external.php
@@ -306,8 +306,9 @@ class mod_lti_external extends external_api {
$viewablefields = [];
if (has_capability('mod/lti:view', $context)) {
+ $options = array('noclean' => true);
list($module['intro'], $module['introformat']) =
- external_format_text($lti->intro, $lti->introformat, $context->id, 'mod_lti', 'intro', null);
+ external_format_text($lti->intro, $lti->introformat, $context->id, 'mod_lti', 'intro', null, $options);
$module['introfiles'] = external_util::get_area_files($context->id, 'mod_lti', 'intro', false, false);
$viewablefields = array('launchcontainer', 'showtitlelaunch', 'showdescriptionlaunch', 'icon', 'secureicon');
diff --git a/mod/page/classes/external.php b/mod/page/classes/external.php
index 8b10f1e8370..511d22285f5 100644
--- a/mod/page/classes/external.php
+++ b/mod/page/classes/external.php
@@ -157,8 +157,9 @@ class mod_page_external extends external_api {
// Entry to return.
$page->name = external_format_string($page->name, $context->id);
- list($page->intro, $page->introformat) = external_format_text($page->intro,
- $page->introformat, $context->id, 'mod_page', 'intro', null);
+ $options = array('noclean' => true);
+ list($page->intro, $page->introformat) =
+ external_format_text($page->intro, $page->introformat, $context->id, 'mod_page', 'intro', null, $options);
$page->introfiles = external_util::get_area_files($context->id, 'mod_page', 'intro', false, false);
$options = array('noclean' => true);
diff --git a/mod/quiz/classes/external.php b/mod/quiz/classes/external.php
index cfdc4a89d33..f7efb989a98 100644
--- a/mod/quiz/classes/external.php
+++ b/mod/quiz/classes/external.php
@@ -105,8 +105,9 @@ class mod_quiz_external extends external_api {
if (has_capability('mod/quiz:view', $context)) {
// Format intro.
- list($quizdetails['intro'], $quizdetails['introformat']) = external_format_text($quiz->intro,
- $quiz->introformat, $context->id, 'mod_quiz', 'intro', null);
+ $options = array('noclean' => true);
+ list($quizdetails['intro'], $quizdetails['introformat']) =
+ external_format_text($quiz->intro, $quiz->introformat, $context->id, 'mod_quiz', 'intro', null, $options);
$quizdetails['introfiles'] = external_util::get_area_files($context->id, 'mod_quiz', 'intro', false, false);
$viewablefields = array('timeopen', 'timeclose', 'grademethod', 'section', 'visible', 'groupmode',
diff --git a/mod/quiz/tests/external_test.php b/mod/quiz/tests/external_test.php
index eef2b2bc30a..b8150f8f147 100644
--- a/mod/quiz/tests/external_test.php
+++ b/mod/quiz/tests/external_test.php
@@ -172,6 +172,7 @@ class mod_quiz_external_testcase extends externallib_advanced_testcase {
// Second quiz.
$record = new stdClass();
$record->course = $course2->id;
+ $record->intro = '';
$quiz2 = self::getDataGenerator()->create_module('quiz', $record);
// Execute real Moodle enrolment as we'll call unenrol() method on the instance later.
diff --git a/mod/resource/classes/external.php b/mod/resource/classes/external.php
index 539aaf5279a..35a23fce88e 100644
--- a/mod/resource/classes/external.php
+++ b/mod/resource/classes/external.php
@@ -156,9 +156,10 @@ class mod_resource_external extends external_api {
$context = context_module::instance($resource->coursemodule);
// Entry to return.
$resource->name = external_format_string($resource->name, $context->id);
-
- list($resource->intro, $resource->introformat) = external_format_text($resource->intro,
- $resource->introformat, $context->id, 'mod_resource', 'intro', null);
+ $options = array('noclean' => true);
+ list($resource->intro, $resource->introformat) =
+ external_format_text($resource->intro, $resource->introformat, $context->id, 'mod_resource', 'intro', null,
+ $options);
$resource->introfiles = external_util::get_area_files($context->id, 'mod_resource', 'intro', false, false);
$resource->contentfiles = external_util::get_area_files($context->id, 'mod_resource', 'content');
diff --git a/mod/scorm/classes/external.php b/mod/scorm/classes/external.php
index a97398b61f7..4175341f5b5 100644
--- a/mod/scorm/classes/external.php
+++ b/mod/scorm/classes/external.php
@@ -691,8 +691,9 @@ class mod_scorm_external extends external_api {
$module['coursemodule'] = $scorm->coursemodule;
$module['course'] = $scorm->course;
$module['name'] = external_format_string($scorm->name, $context->id);
+ $options = array('noclean' => true);
list($module['intro'], $module['introformat']) =
- external_format_text($scorm->intro, $scorm->introformat, $context->id, 'mod_scorm', 'intro', null);
+ external_format_text($scorm->intro, $scorm->introformat, $context->id, 'mod_scorm', 'intro', null, $options);
$module['introfiles'] = external_util::get_area_files($context->id, 'mod_scorm', 'intro', false, false);
// Check if the SCORM open and return warnings if so.
diff --git a/mod/survey/classes/external.php b/mod/survey/classes/external.php
index 0d53c41e18d..8b361c14e7a 100644
--- a/mod/survey/classes/external.php
+++ b/mod/survey/classes/external.php
@@ -104,8 +104,10 @@ class mod_survey_external extends external_api {
}
// Format intro.
+ $options = array('noclean' => true);
list($surveydetails['intro'], $surveydetails['introformat']) =
- external_format_text($survey->intro, $survey->introformat, $context->id, 'mod_survey', 'intro', null);
+ external_format_text($survey->intro, $survey->introformat, $context->id, 'mod_survey', 'intro', null,
+ $options);
$surveydetails['introfiles'] = external_util::get_area_files($context->id, 'mod_survey', 'intro', false,
false);
diff --git a/mod/url/classes/external.php b/mod/url/classes/external.php
index aba5d4079ea..458a4c8aadb 100644
--- a/mod/url/classes/external.php
+++ b/mod/url/classes/external.php
@@ -157,8 +157,9 @@ class mod_url_external extends external_api {
// Entry to return.
$url->name = external_format_string($url->name, $context->id);
- list($url->intro, $url->introformat) = external_format_text($url->intro,
- $url->introformat, $context->id, 'mod_url', 'intro', null);
+ $options = array('noclean' => true);
+ list($url->intro, $url->introformat) =
+ external_format_text($url->intro, $url->introformat, $context->id, 'mod_url', 'intro', null, $options);
$url->introfiles = external_util::get_area_files($context->id, 'mod_url', 'intro', false, false);
$returnedurls[] = $url;
diff --git a/mod/wiki/classes/external.php b/mod/wiki/classes/external.php
index 7195a66d9c9..cf457f61891 100644
--- a/mod/wiki/classes/external.php
+++ b/mod/wiki/classes/external.php
@@ -102,8 +102,9 @@ class mod_wiki_external extends external_api {
$viewablefields = [];
if (has_capability('mod/wiki:viewpage', $context)) {
+ $options = array('noclean' => true);
list($module['intro'], $module['introformat']) =
- external_format_text($wiki->intro, $wiki->introformat, $context->id, 'mod_wiki', 'intro', null);
+ external_format_text($wiki->intro, $wiki->introformat, $context->id, 'mod_wiki', 'intro', null, $options);
$module['introfiles'] = external_util::get_area_files($context->id, 'mod_wiki', 'intro', false, false);
$viewablefields = array('firstpagetitle', 'wikimode', 'defaultformat', 'forceformat', 'editbegin', 'editend',
diff --git a/mod/workshop/classes/external/workshop_summary_exporter.php b/mod/workshop/classes/external/workshop_summary_exporter.php
index d7a833280cd..45edd78d962 100644
--- a/mod/workshop/classes/external/workshop_summary_exporter.php
+++ b/mod/workshop/classes/external/workshop_summary_exporter.php
@@ -325,6 +325,7 @@ class workshop_summary_exporter extends exporter {
return [
'component' => 'mod_workshop',
'filearea' => 'intro',
+ 'options' => array('noclean' => true),
];
}