From 1f7f44bac8c898c5a6f325503f8dad78c120ef2b Mon Sep 17 00:00:00 2001 From: HWFord <54360213+HWFord@users.noreply.github.com> Date: Mon, 30 Jun 2025 15:25:15 +0200 Subject: [PATCH] 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 --- install/db/177-database.php | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/install/db/177-database.php b/install/db/177-database.php index 49004fb84..259c901f2 100644 --- a/install/db/177-database.php +++ b/install/db/177-database.php @@ -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'];