Skip to content

Commit

Permalink
MDL-51564 webservice: Review the use of external format_string
Browse files Browse the repository at this point in the history
  • Loading branch information
jleyva committed Oct 6, 2015
1 parent 35d3e8b commit 9748791
Show file tree
Hide file tree
Showing 12 changed files with 48 additions and 17 deletions.
10 changes: 5 additions & 5 deletions course/externallib.php
Original file line number Diff line number Diff line change
Expand Up @@ -238,17 +238,17 @@ public static function get_course_contents($courseid, $options = array()) {

$module = array();

$modcontext = context_module::instance($cm->id);

//common info (for people being able to see the module or availability dates)
$module['id'] = $cm->id;
$module['name'] = format_string($cm->name, true);
$module['name'] = external_format_string($cm->name, $modcontext->id);
$module['instance'] = $cm->instance;
$module['modname'] = $cm->modname;
$module['modplural'] = $cm->modplural;
$module['modicon'] = $cm->get_icon_url()->out(false);
$module['indent'] = $cm->indent;

$modcontext = context_module::instance($cm->id);

if (!empty($cm->showdescription) or $cm->modname == 'label') {
// We want to use the external format. However from reading get_formatted_content(), $cm->content format is always FORMAT_HTML.
list($module['description'], $descriptionformat) = external_format_text($cm->content,
Expand Down Expand Up @@ -2370,7 +2370,7 @@ public static function get_course_module($cmid) {
$info->completion = $cm->completion;
}
// Format name.
$info->name = format_string($cm->name, true, array('context' => $context));
$info->name = external_format_string($cm->name, $context->id);

$result = array();
$result['cm'] = $info;
Expand All @@ -2392,7 +2392,7 @@ public static function get_course_module_returns() {
'id' => new external_value(PARAM_INT, 'The course module id'),
'course' => new external_value(PARAM_INT, 'The course id'),
'module' => new external_value(PARAM_INT, 'The module type id'),
'name' => new external_value(PARAM_TEXT, 'The activity name'),
'name' => new external_value(PARAM_RAW, 'The activity name'),
'modname' => new external_value(PARAM_COMPONENT, 'The module component name (forum, assign, etc..)'),
'instance' => new external_value(PARAM_INT, 'The activity instance id'),
'section' => new external_value(PARAM_INT, 'The module section id'),
Expand Down
2 changes: 2 additions & 0 deletions lib/upgrade.txt
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,8 @@ information provided here is intended especially for developers.
<frankenstyle>_extend_navigation_category_settings(navigation_node, context_coursecat)
* The clilib.php provides two new functions cli_write() and cli_writeln() that should be used for outputting texts from the command
line interface scripts.
* External function core_course_external::get_course_contents returned parameter "name" has been changed to PARAM_RAW,
this is because the new external_format_string function may return raw data if the global moodlewssettingraw parameter is used.

=== 2.9.1 ===

Expand Down
4 changes: 2 additions & 2 deletions mod/book/classes/external.php
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ public static function get_books_by_courses($courseids = array()) {
$bookdetails['id'] = $book->id;
$bookdetails['coursemodule'] = $book->coursemodule;
$bookdetails['course'] = $book->course;
$bookdetails['name'] = format_string($book->name, true, array('context' => $context));
$bookdetails['name'] = external_format_string($book->name, $context->id);
// Format intro.
list($bookdetails['intro'], $bookdetails['introformat']) =
external_format_text($book->intro, $book->introformat, $context->id, 'mod_book', 'intro', null);
Expand Down Expand Up @@ -242,7 +242,7 @@ public static function get_books_by_courses_returns() {
'id' => new external_value(PARAM_INT, 'Book id'),
'coursemodule' => new external_value(PARAM_INT, 'Course module id'),
'course' => new external_value(PARAM_INT, 'Course id'),
'name' => new external_value(PARAM_TEXT, 'Book name'),
'name' => new external_value(PARAM_RAW, 'Book name'),
'intro' => new external_value(PARAM_RAW, 'The Book intro'),
'introformat' => new external_format_value('intro'),
'numbering' => new external_value(PARAM_INT, 'Book numbering configuration'),
Expand Down
5 changes: 5 additions & 0 deletions mod/book/upgrade.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
This files describes API changes in the book code.

=== 3.0 ===

* External function mod_book_external::get_books_by_courses returned parameter "name" has been changed to PARAM_RAW,
this is because the new external_format_string function may return raw data if the global moodlewssettingraw parameter is used.

=== 2.7 ===

* bogus legacy log calls were removed
Expand Down
8 changes: 4 additions & 4 deletions mod/choice/classes/external.php
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ public static function get_choice_results($choiceid) {
}

$options[] = array('id' => $optionid,
'text' => format_string($option->text, true, array('context' => $context)),
'text' => external_format_string($option->text, $context->id),
'maxanswer' => $option->maxanswer,
'userresponses' => $userresponses,
'numberofuser' => $numberofuser,
Expand Down Expand Up @@ -230,7 +230,7 @@ public static function get_choice_options($choiceid) {
foreach ($options['options'] as $option) {
$optionarr = array();
$optionarr['id'] = $option->attributes->value;
$optionarr['text'] = format_string($option->text, true, array('context' => $context));
$optionarr['text'] = external_format_string($option->text, $context->id);
$optionarr['maxanswers'] = $option->maxanswers;
$optionarr['displaylayout'] = $option->displaylayout;
$optionarr['countanswers'] = $option->countanswers;
Expand Down Expand Up @@ -503,7 +503,7 @@ public static function get_choices_by_courses($courseids = array()) {
$choicedetails['id'] = $choice->id;
$choicedetails['coursemodule'] = $choice->coursemodule;
$choicedetails['course'] = $choice->course;
$choicedetails['name'] = format_string($choice->name, true, array('context' => $context));;
$choicedetails['name'] = external_format_string($choice->name, $context->id);
// Format intro.
list($choicedetails['intro'], $choicedetails['introformat']) =
external_format_text($choice->intro, $choice->introformat,
Expand Down Expand Up @@ -555,7 +555,7 @@ public static function get_choices_by_courses_returns() {
'id' => new external_value(PARAM_INT, 'Choice instance id'),
'coursemodule' => new external_value(PARAM_INT, 'Course module id'),
'course' => new external_value(PARAM_INT, 'Course id'),
'name' => new external_value(PARAM_TEXT, 'Choice name'),
'name' => new external_value(PARAM_RAW, 'Choice name'),
'intro' => new external_value(PARAM_RAW, 'The choice intro'),
'introformat' => new external_format_value('intro'),
'publish' => new external_value(PARAM_BOOL, 'If choice is published', VALUE_OPTIONAL),
Expand Down
6 changes: 6 additions & 0 deletions mod/choice/upgrade.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
This files describes API changes in /mod/choice/*,
information provided here is intended especially for developers.

=== 3.0 ===

* External function mod_choice_external::get_choices_by_courses returned parameter "name" and
mod_choice_external::get_choice_results "text" have been changed to PARAM_RAW.
This is because the new external_format_string function may return raw data if the global moodlewssettingraw parameter is used.

=== 2.9 ===

* custom renderers must be updated to include action=makechoice field in display_options()
4 changes: 2 additions & 2 deletions mod/imscp/classes/external.php
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ public static function get_imscps_by_courses($courseids = array()) {
$imscpdetails['id'] = $imscp->id;
$imscpdetails['coursemodule'] = $imscp->coursemodule;
$imscpdetails['course'] = $imscp->course;
$imscpdetails['name'] = format_string($imscp->name, true, array('context' => $context));
$imscpdetails['name'] = external_format_string($imscp->name, $context->id);

if (has_capability('mod/imscp:view', $context)) {
// Format intro.
Expand Down Expand Up @@ -199,7 +199,7 @@ public static function get_imscps_by_courses_returns() {
'id' => new external_value(PARAM_INT, 'IMSCP id'),
'coursemodule' => new external_value(PARAM_INT, 'Course module id'),
'course' => new external_value(PARAM_INT, 'Course id'),
'name' => new external_value(PARAM_TEXT, 'Activity name'),
'name' => new external_value(PARAM_RAW, 'Activity name'),
'intro' => new external_value(PARAM_RAW, 'The IMSCP intro', VALUE_OPTIONAL),
'introformat' => new external_format_value('intro', VALUE_OPTIONAL),
'revision' => new external_value(PARAM_INT, 'Revision', VALUE_OPTIONAL),
Expand Down
6 changes: 6 additions & 0 deletions mod/imscp/upgrade.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
This files describes API changes in the imscp code.

=== 3.0 ===

* External function mod_imscp_external::get_imscps_by_courses returned parameter "name" has been changed to PARAM_RAW,
this is because the new external_format_string function may return raw data if the global moodlewssettingraw parameter is used.
4 changes: 2 additions & 2 deletions mod/scorm/classes/external.php
Original file line number Diff line number Diff line change
Expand Up @@ -651,7 +651,7 @@ public static function get_scorms_by_courses($courseids = array()) {
$module['id'] = $scorm->id;
$module['coursemodule'] = $scorm->coursemodule;
$module['course'] = $scorm->course;
$module['name'] = format_string($scorm->name, true, array('context' => $context));
$module['name'] = external_format_string($scorm->name, $context->id);
list($module['intro'], $module['introformat']) =
external_format_text($scorm->intro, $scorm->introformat, $context->id, 'mod_scorm', 'intro', $scorm->id);

Expand Down Expand Up @@ -725,7 +725,7 @@ public static function get_scorms_by_courses_returns() {
'id' => new external_value(PARAM_INT, 'SCORM id'),
'coursemodule' => new external_value(PARAM_INT, 'Course module id'),
'course' => new external_value(PARAM_INT, 'Course id'),
'name' => new external_value(PARAM_TEXT, 'SCORM name'),
'name' => new external_value(PARAM_RAW, 'SCORM name'),
'intro' => new external_value(PARAM_RAW, 'The SCORM intro'),
'introformat' => new external_format_value('intro'),
'packagesize' => new external_value(PARAM_INT, 'SCORM zip package size', VALUE_OPTIONAL),
Expand Down
7 changes: 7 additions & 0 deletions mod/scorm/upgrade.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
This files describes API changes in the mod_scorm code.

=== 3.0 ===

* External function mod_scorm_external::get_scorms_by_courses returned parameter "name" has been changed to PARAM_RAW,
this is because the new external_format_string function may return raw data if the global moodlewssettingraw parameter is used.
* Function scorm_view_display was renamed to scorm_print_launch to avoid
confussion with new function scorm_view.

=== 2.8 ===

* Coding style fixes. A large number of coding style issues were fixed in MDL-45887. This means any local modifications
Expand Down
2 changes: 0 additions & 2 deletions mod/upgrade.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ information provided here is intended especially for developers.
* Dropped support for the $module in mod/xxx/version.php files (deprecated
since 2.7). All activity modules must use the $plugin syntax now. See
https://docs.moodle.org/dev/version.php for details (MDL-43896).
* Function scorm_view_display was renamed to scorm_print_launch to avoid
confussion with new function scorm_view.
* Modules using rating component must implement a callback mod_x_rating_can_see_item_ratings(). Refer
to mod_forum_rating_can_see_item_ratings() for example.

Expand Down
7 changes: 7 additions & 0 deletions webservice/upgrade.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@ information provided here is intended especially for developers.

This information is intended for authors of webservices, not people writing webservice clients.

=== 3.0 ===

* New function for formatting external strings: external_format_strings, it should be used as a replacement of format_string in
external functions.
All the occurrences of format_strings have been replaced with this new function.


=== 2.9 ===

* The deprecated functions can not be added to services anymore and
Expand Down

0 comments on commit 9748791

Please sign in to comment.