MDL-76362 core: Use empty default string when getting prefs

The json_decode function does not accept a null, which is the
traditional default for get_user_preferences. By passing a default of
am empty string we avoid issues in PHP 8.1.
This commit is contained in:
Andrew Nicols 2023-01-06 21:10:51 +08:00
parent 2dd7290ccb
commit 5fbbb51882
2 changed files with 3 additions and 4 deletions

View File

@ -608,7 +608,7 @@ abstract class base {
$course = $this->get_course();
try {
$sectionpreferences = (array) json_decode(
get_user_preferences('coursesectionspreferences_' . $course->id, null, $USER->id) ?? ''
get_user_preferences("coursesectionspreferences_{$course->id}", '', $USER->id)
);
if (empty($sectionpreferences)) {
$sectionpreferences = [];

View File

@ -573,7 +573,7 @@ class flexible_table {
global $SESSION;
if (isset($SESSION->flextable[$uniqueid])) {
$prefs = $SESSION->flextable[$uniqueid];
} else if (!$prefs = json_decode(get_user_preferences('flextable_' . $uniqueid), true)) {
} else if (!$prefs = json_decode(get_user_preferences("flextable_{$uniqueid}", ''), true)) {
return '';
}
@ -1463,7 +1463,7 @@ class flexible_table {
// Load any existing user preferences.
if ($this->persistent) {
$this->prefs = json_decode(get_user_preferences('flextable_' . $this->uniqueid) ?? '', true);
$this->prefs = json_decode(get_user_preferences("flextable_{$this->uniqueid}", ''), true);
$oldprefs = $this->prefs;
} else if (isset($SESSION->flextable[$this->uniqueid])) {
$this->prefs = $SESSION->flextable[$this->uniqueid];
@ -2346,4 +2346,3 @@ class table_dataformat_export_format extends table_default_export_format_parent
exit();
}
}