You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
3.2 KiB
PHTML
102 lines
3.2 KiB
PHTML
7 months ago
|
<?php
|
||
|
|
||
|
|
||
|
class ET_Builder_Module_Settings_Migration_Animation extends ET_Builder_Module_Settings_Migration {
|
||
|
|
||
|
public $version = '3.0.72';
|
||
|
|
||
|
public function get_fields() {
|
||
|
return array(
|
||
|
'animation_style' => array(
|
||
|
'affected_fields' => array(
|
||
|
'animation' => $this->get_modules( 'image' ),
|
||
|
),
|
||
|
'map' => array(
|
||
|
'off' => 'none',
|
||
|
'fade_in' => 'fade',
|
||
|
),
|
||
|
),
|
||
|
'animation_duration' => array(
|
||
|
'affected_fields' => array(
|
||
|
'animation' => $this->get_modules( 'image' ),
|
||
|
),
|
||
|
),
|
||
|
'animation_intensity_slide' => array(
|
||
|
'affected_fields' => array(
|
||
|
'animation' => $this->get_modules( 'image' ),
|
||
|
),
|
||
|
),
|
||
|
'animation_direction' => array(
|
||
|
'affected_fields' => array(
|
||
|
'animation' => $this->get_modules( 'image' ),
|
||
|
),
|
||
|
'map' => array(
|
||
|
'off' => '',
|
||
|
'fade_in' => 'center',
|
||
|
'' => 'left',
|
||
|
),
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
|
||
|
public function get_modules( $group = '' ) {
|
||
|
$modules = array();
|
||
|
|
||
|
if ( in_array( $group, array( '', 'image' ) ) ) {
|
||
|
$modules[] = 'et_pb_image';
|
||
|
$modules[] = 'et_pb_fullwidth_image';
|
||
|
}
|
||
|
|
||
|
return $modules;
|
||
|
}
|
||
|
|
||
|
public function migrate( $field_name, $current_value, $module_slug, $saved_value, $saved_field_name, $attrs, $content, $module_address ) {
|
||
|
// Image & Fullwidth Image modules migration setting
|
||
|
if ( in_array( $module_slug, $this->get_modules( 'image' ) ) ) {
|
||
|
|
||
|
// Migrate 'animation' attribute value to new animation UI attributes.
|
||
|
// The following migration setting is basically default value for image module's legacy animation setting
|
||
|
if ( 'animation' === $saved_field_name ) {
|
||
|
|
||
|
// Image module specific override
|
||
|
if ( 'et_pb_image' === $module_slug ) {
|
||
|
// Overwrite default animation if global setting is modified via customizer
|
||
|
$global_animation_direction = ET_Global_Settings::get_value( 'et_pb_image-animation' );
|
||
|
$default_animation = $global_animation_direction && '' !== $global_animation_direction ? $global_animation_direction : 'left';
|
||
|
|
||
|
if ( '' === $current_value ) {
|
||
|
$current_value = $default_animation;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Animation is set to off on legacy animation setting
|
||
|
$is_animation_off = 'off' === $current_value;
|
||
|
|
||
|
// Set animation duration to 500ms
|
||
|
if ( 'animation_duration' === $field_name && ! $is_animation_off ) {
|
||
|
return '500ms';
|
||
|
}
|
||
|
|
||
|
// Set animation intensity to 10%
|
||
|
if ( 'animation_intensity_slide' === $field_name && ! $is_animation_off ) {
|
||
|
return '10%';
|
||
|
}
|
||
|
|
||
|
// Map animation style to provided configuration, otherwise it is 'slide' style
|
||
|
if ( 'animation_style' === $field_name ) {
|
||
|
return isset( $this->fields['animation_style']['map'][ $current_value ] ) ? $this->fields['animation_style']['map'][ $current_value ] : 'slide';
|
||
|
}
|
||
|
|
||
|
// Map animation direction to provided configuration, otherwise keep current value
|
||
|
if ( 'animation_direction' === $field_name ) {
|
||
|
return isset( $this->fields['animation_direction']['map'][ $current_value ] ) ? $this->fields['animation_direction']['map'][ $current_value ] : $current_value;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return $saved_value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return new ET_Builder_Module_Settings_Migration_Animation();
|