116 lines
3.4 KiB
PHP
116 lines
3.4 KiB
PHP
<?php
|
|
/**
|
|
* Handles legacy attributes that have changed.
|
|
*
|
|
* @package GenerateBlocks
|
|
*/
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit; // Exit if accessed directly.
|
|
}
|
|
|
|
/**
|
|
* Provides a method to define old attributes and serve old settings based on them.
|
|
*/
|
|
class GenerateBlocks_Legacy_Attributes {
|
|
/**
|
|
* Get our old defaults that have changed.
|
|
*
|
|
* @param string $version The version to get defaults from.
|
|
*/
|
|
public static function get_defaults( $version ) {
|
|
if ( '1.4.0' === $version ) {
|
|
return apply_filters(
|
|
'generateblocks_defaults',
|
|
array(
|
|
'gridContainer' => array(
|
|
'horizontalGap' => 30,
|
|
),
|
|
'container' => array(
|
|
'paddingTop' => '40',
|
|
'paddingRight' => '40',
|
|
'paddingBottom' => '40',
|
|
'paddingLeft' => '40',
|
|
'width' => 50,
|
|
'widthMobile' => 100,
|
|
'gradientDirection' => 90,
|
|
'gradientColorOne' => '#ffffff',
|
|
'gradientColorOneOpacity' => 0.1,
|
|
'gradientColorTwo' => '#000000',
|
|
'gradientColorTwoOpacity' => 0.3,
|
|
),
|
|
'button' => array(
|
|
'gradientDirection' => 90,
|
|
'gradientColorOne' => '#ffffff',
|
|
'gradientColorOneOpacity' => 0.1,
|
|
'gradientColorTwo' => '#000000',
|
|
'gradientColorTwoOpacity' => 0.3,
|
|
),
|
|
)
|
|
);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Update our settings based on old defaults.
|
|
*
|
|
* @param string $version The version to target.
|
|
* @param string $block The name of the block we're targeting.
|
|
* @param array $settings The current settings.
|
|
* @param array $atts The block attributes.
|
|
*/
|
|
public static function get_settings( $version, $block, $settings, $atts ) {
|
|
$legacy_defaults = self::get_defaults( $version );
|
|
|
|
if ( empty( $legacy_defaults ) ) {
|
|
return $settings;
|
|
}
|
|
|
|
if ( '1.4.0' === $version ) {
|
|
if ( 'grid' === $block ) {
|
|
$legacy_settings = wp_parse_args(
|
|
$atts,
|
|
$legacy_defaults['gridContainer']
|
|
);
|
|
|
|
$settings['horizontalGap'] = $legacy_settings['horizontalGap'];
|
|
}
|
|
|
|
if ( 'container' === $block ) {
|
|
$legacy_settings = wp_parse_args(
|
|
$atts,
|
|
$legacy_defaults['container']
|
|
);
|
|
|
|
$settings['paddingTop'] = $legacy_settings['paddingTop'];
|
|
$settings['paddingRight'] = $legacy_settings['paddingRight'];
|
|
$settings['paddingBottom'] = $legacy_settings['paddingBottom'];
|
|
$settings['paddingLeft'] = $legacy_settings['paddingLeft'];
|
|
$settings['width'] = $legacy_settings['width'];
|
|
$settings['widthMobile'] = $legacy_settings['widthMobile'];
|
|
|
|
$settings['gradientDirection'] = $legacy_settings['gradientDirection'];
|
|
$settings['gradientColorOne'] = $legacy_settings['gradientColorOne'];
|
|
$settings['gradientColorOneOpacity'] = $legacy_settings['gradientColorOneOpacity'];
|
|
$settings['gradientColorTwo'] = $legacy_settings['gradientColorTwo'];
|
|
$settings['gradientColorTwoOpacity'] = $legacy_settings['gradientColorTwoOpacity'];
|
|
}
|
|
|
|
if ( 'button' === $block ) {
|
|
$button_legacy_settings = wp_parse_args(
|
|
$atts,
|
|
$legacy_defaults['button']
|
|
);
|
|
|
|
$settings['gradientColorOne'] = $button_legacy_settings['gradientColorOne'];
|
|
$settings['gradientColorOneOpacity'] = $button_legacy_settings['gradientColorOneOpacity'];
|
|
$settings['gradientColorTwo'] = $button_legacy_settings['gradientColorTwo'];
|
|
$settings['gradientColorTwoOpacity'] = $button_legacy_settings['gradientColorTwoOpacity'];
|
|
$settings['gradientDirection'] = $button_legacy_settings['gradientDirection'];
|
|
}
|
|
}
|
|
|
|
return $settings;
|
|
}
|
|
}
|