MDL-76723 core_external: Handle format properties properly
- If a text format property defines the 'optional' attribute as true, then the $required parameter that is passed to \core\external\exporter::get_format_structure() should be VALUE_OPTIONAL. - If a default value is provided for a format property, \core\external\exporter::get_format_structure() should pass the default value to the external_format_value constructor. - Added validation for external_format_value for the default parameter. Debugging will be shown in case an invalid default value is passed. - Amended unit tests for better coverage.
This commit is contained in:
+8
-1
@@ -38,12 +38,19 @@ class external_format_value extends external_value {
|
||||
* @param int $default Default value.
|
||||
*/
|
||||
public function __construct($textfieldname, $required = VALUE_REQUIRED, $default = null) {
|
||||
// Make sure the default format's value is correct.
|
||||
if ($default !== null && !in_array($default, [FORMAT_MOODLE, FORMAT_HTML, FORMAT_PLAIN, FORMAT_MARKDOWN])) {
|
||||
debugging("Invalid default format for $textfieldname: $default. " .
|
||||
"It must be either FORMAT_MOODLE, FORMAT_HTML, FORMAT_PLAIN, or FORMAT_MARKDOWN.", DEBUG_DEVELOPER);
|
||||
$default = null;
|
||||
}
|
||||
|
||||
if ($default == null && $required == VALUE_DEFAULT) {
|
||||
$default = FORMAT_HTML;
|
||||
}
|
||||
|
||||
$desc = sprintf(
|
||||
"%s format (%s = HTML, %s = MOODLE, %s = PLAIN, or %s = MARKDOWN",
|
||||
"%s format (%s = HTML, %s = MOODLE, %s = PLAIN, or %s = MARKDOWN)",
|
||||
$textfieldname,
|
||||
FORMAT_HTML,
|
||||
FORMAT_MOODLE,
|
||||
|
||||
Reference in New Issue
Block a user