mirror of
https://github.com/Piwigo/Piwigo.git
synced 2026-08-07 17:23:04 +02:00
fixes #2411 disable 3xl and 4xl by default
- Add 3XL and 4XL sizes to defaults but keep them disabled by default - Update admin restore default derivatives resets sizes and clears cache - Update migration 177 => updates existing installs: set 3XL/4XL as disabled
This commit is contained in:
@@ -57,11 +57,15 @@ final class ImageStdParams
|
||||
IMG_SQUARE, IMG_THUMB, IMG_XXSMALL, IMG_XSMALL, IMG_SMALL,
|
||||
IMG_MEDIUM, IMG_LARGE, IMG_XLARGE, IMG_XXLARGE, IMG_3XLARGE, IMG_4XLARGE
|
||||
);
|
||||
/** @var string[] */
|
||||
private static $disabled_types_by_default = array(IMG_3XLARGE, IMG_4XLARGE);
|
||||
/** @var DerivativeParams[] */
|
||||
private static $all_type_map = array();
|
||||
/** @var DerivativeParams[] */
|
||||
private static $type_map = array();
|
||||
/** @var DerivativeParams[] */
|
||||
private static $disabled_type_map = array();
|
||||
/** @var DerivativeParams[] */
|
||||
private static $undefined_type_map = array();
|
||||
/** @var WatermarkParams */
|
||||
private static $watermark;
|
||||
@@ -94,6 +98,18 @@ final class ImageStdParams
|
||||
return self::$type_map;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return DerivativeParams[]
|
||||
*/
|
||||
static function get_disabled_type_map()
|
||||
{
|
||||
if (count(self::$disabled_type_map))
|
||||
{
|
||||
return self::$disabled_type_map;
|
||||
}
|
||||
return conf_get_param('disabled_derivatives', array());
|
||||
}
|
||||
|
||||
/**
|
||||
* @return DerivativeParams[]
|
||||
*/
|
||||
@@ -161,7 +177,8 @@ final class ImageStdParams
|
||||
else
|
||||
{
|
||||
self::$watermark = new WatermarkParams();
|
||||
self::$type_map = self::get_default_sizes();
|
||||
self::$type_map = self::get_enabled_default_sizes();
|
||||
self::$disabled_type_map = self::get_disabled_default_sizes();
|
||||
self::save();
|
||||
}
|
||||
self::build_maps();
|
||||
@@ -199,6 +216,39 @@ final class ImageStdParams
|
||||
'c' => self::$custom,
|
||||
) );
|
||||
conf_update_param('derivatives', addslashes($ser) );
|
||||
|
||||
self::save_disabled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves the disabled configuration in database.
|
||||
*/
|
||||
static function save_disabled()
|
||||
{
|
||||
if (count(self::$disabled_type_map) > 0)
|
||||
{
|
||||
$disabled = addslashes(serialize(self::$disabled_type_map));
|
||||
conf_update_param('disabled_derivatives', $disabled);
|
||||
}
|
||||
else
|
||||
{
|
||||
$query='DELETE FROM '.CONFIG_TABLE.' WHERE param = \'disabled_derivatives\'';
|
||||
pwg_query($query);
|
||||
}
|
||||
}
|
||||
|
||||
static function set_and_save_disabled($map)
|
||||
{
|
||||
self::$disabled_type_map = $map;
|
||||
self::save_disabled();
|
||||
}
|
||||
|
||||
static function restore_default()
|
||||
{
|
||||
self::$type_map = self::get_enabled_default_sizes();
|
||||
self::$disabled_type_map = self::get_disabled_default_sizes();
|
||||
self::save();
|
||||
self::build_maps();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -227,6 +277,29 @@ final class ImageStdParams
|
||||
return $arr;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return DerivativeParams[]
|
||||
*/
|
||||
static function get_enabled_default_sizes()
|
||||
{
|
||||
$default_sizes = self::get_default_sizes();
|
||||
foreach (self::$disabled_types_by_default as $type)
|
||||
{
|
||||
unset($default_sizes[$type]);
|
||||
}
|
||||
return $default_sizes;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return DerivativeParams[]
|
||||
*/
|
||||
static function get_disabled_default_sizes()
|
||||
{
|
||||
$all = self::get_default_sizes();
|
||||
$disabled_sizes = array_intersect_key($all, array_flip(self::$disabled_types_by_default));
|
||||
return $disabled_sizes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compute 'apply_watermark'
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user