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), ]; }