MDL-70968 core: PHP8 compatibility, not allowed to pass extra parameters

This commit is contained in:
Marina Glancy 2021-02-22 18:13:12 +01:00
parent 95dd305cc6
commit 593540cc19

View File

@ -233,6 +233,14 @@ function process_new_icon($context, $component, $filearea, $itemid, $originalfil
$icon = array('contextid'=>$context->id, 'component'=>$component, 'filearea'=>$filearea, 'itemid'=>$itemid, 'filepath'=>'/');
if ($imagefnc === 'imagejpeg') {
// Function imagejpeg() accepts less arguments than imagepng() but we need to make $imagefnc accept the same
// number of arguments, otherwise PHP8 throws an error.
$imagefnc = function($image, $filename, $quality, $unused) {
return imagejpeg($image, $filename, $quality);
};
}
ob_start();
if (!$imagefnc($im1, NULL, $quality, $filters)) {
// keep old icons
@ -384,6 +392,14 @@ function resize_image_from_image($original, $imageinfo, $width, $height, $forcec
imagecopybicubic($newimage, $original, $dstx, $dsty, 0, 0, $targetwidth, $targetheight, $originalwidth, $originalheight);
if ($imagefnc === 'imagejpeg') {
// Function imagejpeg() accepts less arguments than imagepng() but we need to make $imagefnc accept the same
// number of arguments, otherwise PHP8 throws an error.
$imagefnc = function($image, $filename, $quality, $unused) {
return imagejpeg($image, $filename, $quality);
};
}
// Capture the image as a string object, rather than straight to file.
ob_start();
if (!$imagefnc($newimage, null, $quality, $filters)) {