File "class-map-deprecated-attributes.php"
Full path: /home/webcknlt/admissiontell.com/wp-content/plugins/generateblocks/includes/class-map-deprecated-attributes.php
File
size: 6.31 B (6.31 KB bytes)
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor &nnbsp; Back
<?php
/**
* Maps our old attributes to their new attribute names.
*
* @package GenerateBlocks
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
/**
* Map our deprecated attributes.
*/
class GenerateBlocks_Map_Deprecated_Attributes {
/**
* Class instance.
*
* @access private
* @var $instance Class instance.
*/
private static $instance;
/**
* Our devices.
*
* @access private
* @var $devices List of devices.
*/
private static $devices = [ '', 'Tablet', 'Mobile' ];
/**
* Initiator
*/
public static function get_instance() {
if ( ! isset( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Get all of our mapped attributes.
*
* @param array $settings Existing settings.
* @return array Mapped settings.
*/
public static function map_attributes( $settings ) {
$settings = self::map_spacing( $settings );
$settings = self::map_borders( $settings );
$settings = self::map_typography( $settings );
return $settings;
}
/**
* Map our old spacing attributes.
*
* @param array $settings Existing settings.
* @return array Mapped spacing settings.
*/
public static function map_spacing( $settings ) {
if ( ! empty( $settings['spacing'] ) ) {
return $settings;
}
$padding_attributes = [
'paddingTop',
'paddingRight',
'paddingBottom',
'paddingLeft',
];
$margin_attributes = [
'marginTop',
'marginRight',
'marginBottom',
'marginLeft',
];
foreach ( self::$devices as $device ) {
foreach ( $padding_attributes as $attribute ) {
$setting_name = $attribute . $device;
if ( $settings[ $setting_name ] || is_numeric( $settings[ $setting_name ] ) ) {
$unit = is_numeric( $settings[ $setting_name ] )
? $settings['paddingUnit']
: '';
$settings['spacing'][ $setting_name ] = $settings[ $setting_name ] . $unit;
}
}
foreach ( $margin_attributes as $attribute ) {
$setting_name = $attribute . $device;
if ( $settings[ $setting_name ] || is_numeric( $settings[ $setting_name ] ) ) {
$unit = is_numeric( $settings[ $setting_name ] )
? $settings['marginUnit']
: '';
$settings['spacing'][ $setting_name ] = $settings[ $setting_name ] . $unit;
}
}
}
return $settings;
}
/**
* Map our old border attributes.
*
* @param array $settings Existing settings.
* @return array Mapped border settings.
*/
public static function map_borders( $settings ) {
if ( ! empty( $settings['borders'] ) ) {
return $settings;
}
$border_radius_attributes = [
'borderRadiusTopLeft' => 'borderTopLeftRadius',
'borderRadiusTopRight' => 'borderTopRightRadius',
'borderRadiusBottomRight' => 'borderBottomRightRadius',
'borderRadiusBottomLeft' => 'borderBottomLeftRadius',
];
foreach ( self::$devices as $device ) {
foreach ( $border_radius_attributes as $old_attribute_name => $new_attribute_name ) {
$setting_name = $old_attribute_name . $device;
if ( $settings[ $setting_name ] || is_numeric( $settings[ $setting_name ] ) ) {
$unit = is_numeric( $settings[ $setting_name ] )
? $settings['borderRadiusUnit']
: '';
$settings['borders'][ $new_attribute_name . $device ] = $settings[ $setting_name ] . $unit;
}
}
}
$border_width_attributes = [
'borderSizeTop' => 'borderTopWidth',
'borderSizeRight' => 'borderRightWidth',
'borderSizeBottom' => 'borderBottomWidth',
'borderSizeLeft' => 'borderLeftWidth',
];
foreach ( self::$devices as $device ) {
foreach ( $border_width_attributes as $old_attribute_name => $new_attribute_name ) {
$setting_name = $old_attribute_name . $device;
if ( $settings[ $setting_name ] || is_numeric( $settings[ $setting_name ] ) ) {
$unit = is_numeric( $settings[ $setting_name ] )
? 'px'
: '';
$settings['borders'][ $new_attribute_name . $device ] = $settings[ $setting_name ] . $unit;
$border_style_name = str_replace( 'Width', 'Style', $new_attribute_name );
$settings['borders'][ $border_style_name . $device ] = 'solid';
if ( ! empty( $settings['borderColor'] ) ) {
$border_color_name = str_replace( 'Width', 'Color', $new_attribute_name );
$settings['borders'][ $border_color_name ] = isset( $settings['borderColorOpacity'] )
? generateblocks_hex2rgba( $settings['borderColor'], $settings['borderColorOpacity'] )
: $settings['borderColor'];
}
if ( ! empty( $settings['borderColorHover'] ) ) {
$border_color_hover_name = str_replace( 'Width', 'ColorHover', $new_attribute_name );
$settings['borders'][ $border_color_hover_name ] = isset( $settings['borderColorHoverOpacity'] )
? generateblocks_hex2rgba( $settings['borderColorHover'], $settings['borderColorHoverOpacity'] )
: $settings['borderColorHover'];
}
if ( ! empty( $settings['borderColorCurrent'] ) ) {
$border_color_current_name = str_replace( 'Width', 'ColorCurrent', $new_attribute_name );
$settings['borders'][ $border_color_current_name ] = $settings['borderColorCurrent'];
}
}
}
}
return $settings;
}
/**
* Map our old typography attributes.
*
* @param array $settings Existing settings.
* @return array Mapped spacing settings.
*/
public static function map_typography( $settings ) {
if ( ! empty( $settings['typography'] ) ) {
return $settings;
}
$old_attributes = [
'fontFamily',
'fontSize',
'lineHeight',
'letterSpacing',
'fontWeight',
'textTransform',
'alignment',
];
foreach ( self::$devices as $device ) {
foreach ( $old_attributes as $attribute ) {
$setting_name = $attribute . $device;
if ( isset( $settings[ $setting_name ] ) && ( $settings[ $setting_name ] || is_numeric( $settings[ $setting_name ] ) ) ) {
$unit = '';
switch ( $attribute ) {
case 'fontSize':
$unit = $settings['fontSizeUnit'];
break;
case 'lineHeight':
$unit = $settings['lineHeightUnit'];
break;
case 'letterSpacing':
$unit = 'em';
break;
}
// textAlign used to be called "alignment".
if ( 'alignment' === $attribute ) {
$settings['typography'][ 'textAlign' . $device ] = $settings[ $setting_name ];
continue;
}
$settings['typography'][ $setting_name ] = $settings[ $setting_name ] . $unit;
}
}
}
return $settings;
}
}