1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-08-06 16:56:44 +02:00

Merge branch '3.3.x'

This commit is contained in:
Marc Alexander
2021-12-13 20:23:16 +01:00
6 changed files with 40 additions and 22 deletions

View File

@@ -91,29 +91,43 @@ class acp_icons
{
$img_size = getimagesize($phpbb_root_path . $img_path . '/' . $path . $img);
if (!$img_size[0] || !$img_size[1] || strlen($img) > 255)
if ($img_size)
{
continue;
}
if (!$img_size[0] || !$img_size[1] || strlen($img) > 255)
{
continue;
}
// adjust the width and height to be lower than 128px while perserving the aspect ratio (for icons)
if ($mode == 'icons')
// adjust the width and height to be lower than 128px while perserving the aspect ratio (for icons)
if ($mode == 'icons')
{
if ($img_size[0] > 127 && $img_size[0] > $img_size[1])
{
$img_size[1] = (int) ($img_size[1] * (127 / $img_size[0]));
$img_size[0] = 127;
}
else if ($img_size[1] > 127)
{
$img_size[0] = (int) ($img_size[0] * (127 / $img_size[1]));
$img_size[1] = 127;
}
}
}
else
{
if ($img_size[0] > 127 && $img_size[0] > $img_size[1])
{
$img_size[1] = (int) ($img_size[1] * (127 / $img_size[0]));
$img_size[0] = 127;
}
else if ($img_size[1] > 127)
{
$img_size[0] = (int) ($img_size[0] * (127 / $img_size[1]));
$img_size[1] = 127;
}
// getimagesize can't read the dimensions of the SVG files
// https://bugs.php.net/bug.php?id=71517
$xml_get = simplexml_load_file($phpbb_root_path . $img_path . '/' . $path . $img);
$svg_width = intval($xml_get['width']);
$svg_height = intval($xml_get['height']);
}
$_images[$path . $img]['file'] = $path . $img;
$_images[$path . $img]['width'] = $img_size[0];
$_images[$path . $img]['height'] = $img_size[1];
// Give SVG a fallback on failure
$_images[$path . $img]['width'] = $img_size ? $img_size[0] : ($svg_width ?: 32);
$_images[$path . $img]['height'] = $img_size ? $img_size[1] : ($svg_height ?: 32);
}
}
unset($imglist);

View File

@@ -55,8 +55,8 @@ class acp_ranks
$min_posts = ($special_rank) ? 0 : max(0, $request->variable('min_posts', 0));
$rank_image = $request->variable('rank_image', '');
// The rank image has to be a jpg, gif or png
if ($rank_image != '' && !preg_match('#(\.gif|\.png|\.jpg|\.jpeg)$#i', $rank_image))
// The rank image has to be a jp(e)g, gif, png, svg or webp
if ($rank_image != '' && !preg_match('#(\.gif|\.png|\.jpg|\.jpeg|\.svg|\.webp)$#i', $rank_image))
{
$rank_image = '';
}

View File

@@ -479,7 +479,7 @@ function copy_forum_permissions($src_forum_id, $dest_forum_ids, $clear_dest_perm
/**
* Get physical file listing
*/
function filelist($rootdir, $dir = '', $type = 'gif|jpg|jpeg|png')
function filelist($rootdir, $dir = '', $type = 'gif|jpg|jpeg|png|svg|webp')
{
$matches = array($dir => array());