relates #2377 check new sizes are bigger than xxl

if the default sizes aren't bigger than the XXL then multiply the XXL size by 1.5 for 3XL and the 3XL size by 1.5 for 4XL
This commit is contained in:
HWFord
2025-06-30 15:25:15 +02:00
parent 49f5b6162b
commit 1f7f44bac8

View File

@@ -23,6 +23,37 @@ $derivatives = unserialize($conf['derivatives']);
$default_sizes = ImageStdParams::get_default_sizes();
//Get 3XL and 4XL from default values
$default_derivative_3XL = $default_sizes['3xlarge'];
$default_derivative_4XL = $default_sizes['4xlarge'];
//We need to make sure that a user hasn't redefined the XXL size bigger than the default 3XL
//Get xxl size
$xxl = $derivatives['d']['xxlarge'];
$xxl_height = $xxl->sizing->ideal_size[0];
$xxl_width = $xxl->sizing->ideal_size[1];
//get 3xl size
$triple_xl_height = $default_sizes['3xlarge']->sizing->ideal_size[0];
$triple_xl_width = $default_sizes['3xlarge']->sizing->ideal_size[1];
//Get 4xl size
$quad_xl_height = $default_sizes['3xlarge']->sizing->ideal_size[0];
$quad_xl_width = $default_sizes['3xlarge']->sizing->ideal_size[1];
//Set 3XL and 4xl size to be bigger than XXL if needed
if ($triple_xl_height < $xxl_height or $triple_xl_width < $xxl_width)
{
$new_3xl_height = ceil($xxl_height*1.5);
$new_3xl_width = ceil($xxl_width*1.5);
$default_sizes['3xlarge']->sizing->ideal_size[0] = $new_3xl_height;
$default_sizes['3xlarge']->sizing->ideal_size[1] = $new_3xl_width;
$default_sizes['4xlarge']->sizing->ideal_size[0] = ceil($new_3xl_width*1.5);
$default_sizes['4xlarge']->sizing->ideal_size[1] = ceil($new_3xl_width*1.5);
}
//Add new 3xl and 4xl to derivatives sizes config
$derivatives['d'][IMG_3XLARGE] = $default_sizes['3xlarge'];
$derivatives['d'][IMG_4XLARGE] = $default_sizes['4xlarge'];