Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/clone/wp-conte.../themes/Divi/includes/builder/module/field
File: BoxShadow.php
<?php
[0] Fix | Delete
[1] Fix | Delete
class ET_Builder_Module_Field_BoxShadow extends ET_Builder_Module_Field_Base {
[2] Fix | Delete
private static $classes = array();
[3] Fix | Delete
[4] Fix | Delete
/**
[5] Fix | Delete
* @var ET_Builder_Module_Helper_ResponsiveOptions
[6] Fix | Delete
*
[7] Fix | Delete
* @since 3.23
[8] Fix | Delete
*/
[9] Fix | Delete
public static $responsive = null;
[10] Fix | Delete
[11] Fix | Delete
/**
[12] Fix | Delete
* Constructor.
[13] Fix | Delete
*/
[14] Fix | Delete
public function __construct() {
[15] Fix | Delete
$this->template = et_pb_option_template();
[16] Fix | Delete
$this->set_template();
[17] Fix | Delete
}
[18] Fix | Delete
[19] Fix | Delete
/**
[20] Fix | Delete
* Set option template for Box Shadow
[21] Fix | Delete
*
[22] Fix | Delete
* @since 3.28
[23] Fix | Delete
*
[24] Fix | Delete
* @return void
[25] Fix | Delete
*/
[26] Fix | Delete
public function set_template() {
[27] Fix | Delete
$template = $this->template;
[28] Fix | Delete
if ( $template->is_enabled() && ! $template->has( 'box_shadow' ) ) {
[29] Fix | Delete
$template->add(
[30] Fix | Delete
'box_shadow',
[31] Fix | Delete
$this->get_fields(
[32] Fix | Delete
$template->placeholders(
[33] Fix | Delete
array(
[34] Fix | Delete
'suffix' => null,
[35] Fix | Delete
'label' => null,
[36] Fix | Delete
'option_category' => null,
[37] Fix | Delete
'tab_slug' => null,
[38] Fix | Delete
'toggle_slug' => null,
[39] Fix | Delete
'sub_toggle_slug' => null,
[40] Fix | Delete
'depends_show_if_not' => null,
[41] Fix | Delete
'depends_show_if' => null,
[42] Fix | Delete
'depends_on' => null,
[43] Fix | Delete
'default_on_fronts' => null,
[44] Fix | Delete
'show_if' => null,
[45] Fix | Delete
'show_if_not' => null,
[46] Fix | Delete
)
[47] Fix | Delete
)
[48] Fix | Delete
)
[49] Fix | Delete
);
[50] Fix | Delete
}
[51] Fix | Delete
}
[52] Fix | Delete
[53] Fix | Delete
/**
[54] Fix | Delete
* Get box shadow fields.
[55] Fix | Delete
*
[56] Fix | Delete
* @since 3.23 Add support for responsive settings. Add allowed units for range fields.
[57] Fix | Delete
*
[58] Fix | Delete
* @param array $args Box shadow settings args.
[59] Fix | Delete
* @return array Box shadow fields.
[60] Fix | Delete
*/
[61] Fix | Delete
public function get_fields( array $args = array() ) {
[62] Fix | Delete
static $i18n;
[63] Fix | Delete
[64] Fix | Delete
// Cache translations.
[65] Fix | Delete
if ( ! isset( $i18n ) ) {
[66] Fix | Delete
$i18n['label'] = esc_html__( 'Box Shadow', 'et_builder' );
[67] Fix | Delete
}
[68] Fix | Delete
[69] Fix | Delete
$arguments = shortcode_atts(
[70] Fix | Delete
array(
[71] Fix | Delete
'suffix' => '',
[72] Fix | Delete
'label' => $i18n['label'],
[73] Fix | Delete
'option_category' => '',
[74] Fix | Delete
'tab_slug' => '',
[75] Fix | Delete
'toggle_slug' => '',
[76] Fix | Delete
'sub_toggle_slug' => null,
[77] Fix | Delete
'depends_show_if_not' => null,
[78] Fix | Delete
'depends_show_if' => null,
[79] Fix | Delete
'depends_on' => null,
[80] Fix | Delete
'default_on_fronts' => array(),
[81] Fix | Delete
'show_if' => null,
[82] Fix | Delete
'show_if_not' => null,
[83] Fix | Delete
), $args
[84] Fix | Delete
);
[85] Fix | Delete
[86] Fix | Delete
if ( $this->template->is_enabled() && $this->template->has( 'box_shadow' ) ) {
[87] Fix | Delete
return $this->template->create( 'box_shadow', $arguments );
[88] Fix | Delete
}
[89] Fix | Delete
[90] Fix | Delete
$prefix = 'box_shadow_';
[91] Fix | Delete
$style = $prefix . 'style' . $arguments['suffix'];
[92] Fix | Delete
$horizontal = $prefix . 'horizontal' . $arguments['suffix'];
[93] Fix | Delete
$vertical = $prefix . 'vertical' . $arguments['suffix'];
[94] Fix | Delete
$blur = $prefix . 'blur' . $arguments['suffix'];
[95] Fix | Delete
$spread = $prefix . 'spread' . $arguments['suffix'];
[96] Fix | Delete
$position = $prefix . 'position' . $arguments['suffix'];
[97] Fix | Delete
$color = $prefix . 'color' . $arguments['suffix'];
[98] Fix | Delete
[99] Fix | Delete
$options = array();
[100] Fix | Delete
$option = array(
[101] Fix | Delete
'option_category' => $arguments['option_category'],
[102] Fix | Delete
'tab_slug' => $arguments['tab_slug'],
[103] Fix | Delete
'toggle_slug' => $arguments['toggle_slug'],
[104] Fix | Delete
'show_if_not' => array(
[105] Fix | Delete
"{$style}" => 'none',
[106] Fix | Delete
),
[107] Fix | Delete
'default_on_child' => true,
[108] Fix | Delete
);
[109] Fix | Delete
$range = array_merge(
[110] Fix | Delete
$option,
[111] Fix | Delete
array(
[112] Fix | Delete
'type' => 'range',
[113] Fix | Delete
'range_settings' => array(
[114] Fix | Delete
'min' => - 80,
[115] Fix | Delete
'max' => 80,
[116] Fix | Delete
'step' => 1,
[117] Fix | Delete
),
[118] Fix | Delete
'default' => 0,
[119] Fix | Delete
'validate_unit' => true,
[120] Fix | Delete
'allowed_units' => array( 'em', 'rem', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ex', 'vh', 'vw' ),
[121] Fix | Delete
'default_unit' => 'px',
[122] Fix | Delete
'fixed_range' => true,
[123] Fix | Delete
'hover' => 'tabs',
[124] Fix | Delete
'mobile_options' => true,
[125] Fix | Delete
)
[126] Fix | Delete
);
[127] Fix | Delete
[128] Fix | Delete
if ( $arguments['sub_toggle_slug'] ) {
[129] Fix | Delete
$option['sub_toggle'] = $arguments['sub_toggle_slug'];
[130] Fix | Delete
}
[131] Fix | Delete
[132] Fix | Delete
$presets = array();
[133] Fix | Delete
[134] Fix | Delete
foreach ( $this->get_presets() as $id => $preset ) {
[135] Fix | Delete
if ( 'none' === $id ) {
[136] Fix | Delete
$presets[] = array(
[137] Fix | Delete
'value' => $id,
[138] Fix | Delete
'icon' => $id,
[139] Fix | Delete
'fields' => $this->fetch_preset( $preset, $arguments['suffix'] ),
[140] Fix | Delete
);
[141] Fix | Delete
} else {
[142] Fix | Delete
$presets[] = array(
[143] Fix | Delete
'value' => $id,
[144] Fix | Delete
'content' => sprintf( '<span class="preset %1$s"></span>', esc_attr( $id ) ),
[145] Fix | Delete
'fields' => $this->fetch_preset( $preset, $arguments['suffix'] ),
[146] Fix | Delete
);
[147] Fix | Delete
}
[148] Fix | Delete
}
[149] Fix | Delete
[150] Fix | Delete
$options[ $style ] = array_merge(
[151] Fix | Delete
$option,
[152] Fix | Delete
array(
[153] Fix | Delete
'label' => $arguments['label'],
[154] Fix | Delete
'type' => 'select_box_shadow',
[155] Fix | Delete
'default' => 'none',
[156] Fix | Delete
'className' => 'box_shadow',
[157] Fix | Delete
'presets' => $presets,
[158] Fix | Delete
'affects' => array( $horizontal, $vertical, $blur, $spread, $color, $position ),
[159] Fix | Delete
'copy_with' => array( $horizontal, $vertical, $blur, $spread, $color, $position ),
[160] Fix | Delete
'depends_show_if' => $arguments['depends_show_if'],
[161] Fix | Delete
'depends_show_if_not' => $arguments['depends_show_if_not'],
[162] Fix | Delete
'depends_on' => $arguments['depends_on'],
[163] Fix | Delete
'show_if' => $arguments['show_if'],
[164] Fix | Delete
'show_if_not' => $arguments['show_if_not'],
[165] Fix | Delete
'description' => esc_html__( 'Pick a box shadow style to enable box shadow for this element. Once enabled, you will be able to customize your box shadow style further. To disable custom box shadow style, choose the None option.', 'et_builder' ),
[166] Fix | Delete
)
[167] Fix | Delete
);
[168] Fix | Delete
[169] Fix | Delete
// Configure dependency for fields via show_if/show_if_not attribute
[170] Fix | Delete
if ( null === $options[ $style ]['show_if'] ) {
[171] Fix | Delete
unset( $options[ $style ]['show_if'] );
[172] Fix | Delete
}
[173] Fix | Delete
if ( null === $options[ $style ]['show_if_not'] ) {
[174] Fix | Delete
unset( $options[ $style ]['show_if_not'] );
[175] Fix | Delete
}
[176] Fix | Delete
[177] Fix | Delete
// Field dependency via depends_on, depends_show_if, and depends_show_if_not have been deprecated
[178] Fix | Delete
// These remain here as backward compatibility for third party modules
[179] Fix | Delete
if ( null === $options[ $style ]['depends_on'] ) {
[180] Fix | Delete
unset( $options[ $style ]['depends_on'] );
[181] Fix | Delete
}
[182] Fix | Delete
if ( null === $options[ $style ]['depends_show_if'] ) {
[183] Fix | Delete
unset( $options[ $style ]['depends_show_if'] );
[184] Fix | Delete
}
[185] Fix | Delete
if ( null === $options[ $style ]['depends_show_if_not'] ) {
[186] Fix | Delete
unset( $options[ $style ]['depends_show_if_not'] );
[187] Fix | Delete
}
[188] Fix | Delete
if ( isset( $arguments['default_on_fronts']['style'] ) && false !== $arguments['default_on_fronts']['style'] ) {
[189] Fix | Delete
$options[ $style ]['default_on_front'] = $arguments['default_on_fronts']['style'];
[190] Fix | Delete
}
[191] Fix | Delete
[192] Fix | Delete
$options[ $horizontal ] = array_merge(
[193] Fix | Delete
$range,
[194] Fix | Delete
array(
[195] Fix | Delete
'label' => esc_html__( 'Box Shadow Horizontal Position', 'et_builder' ),
[196] Fix | Delete
'description' => esc_html__( 'Shadow\'s horizontal distance from the element. A negative value places the shadow to the left of the element.', 'et_builder' ),
[197] Fix | Delete
)
[198] Fix | Delete
);
[199] Fix | Delete
$options[ $vertical ] = array_merge(
[200] Fix | Delete
$range,
[201] Fix | Delete
array(
[202] Fix | Delete
'label' => esc_html__( 'Box Shadow Vertical Position', 'et_builder' ),
[203] Fix | Delete
'description' => esc_html__( 'Shadow\'s vertical distance from the element. A negative value places the shadow above the element.', 'et_builder' ),
[204] Fix | Delete
)
[205] Fix | Delete
);
[206] Fix | Delete
$options[ $blur ] = array_merge(
[207] Fix | Delete
$range,
[208] Fix | Delete
array(
[209] Fix | Delete
'label' => esc_html__( 'Box Shadow Blur Strength', 'et_builder' ),
[210] Fix | Delete
'range_settings' => array(
[211] Fix | Delete
'min' => 0,
[212] Fix | Delete
'max' => 80,
[213] Fix | Delete
'step' => 1,
[214] Fix | Delete
),
[215] Fix | Delete
'description' => esc_html__( 'The higher the value, the bigger the blur, the shadow becomes wider and lighter.', 'et_builder' ),
[216] Fix | Delete
)
[217] Fix | Delete
);
[218] Fix | Delete
$options[ $spread ] = array_merge(
[219] Fix | Delete
$range,
[220] Fix | Delete
array(
[221] Fix | Delete
'label' => esc_html__( 'Box Shadow Spread Strength', 'et_builder' ),
[222] Fix | Delete
'description' => esc_html__( 'Increasing the spread strength will increase the density of the box shadow. Higher density results in a more intense shadow.', 'et_builder' ),
[223] Fix | Delete
)
[224] Fix | Delete
);
[225] Fix | Delete
$options[ $color ] = array_merge(
[226] Fix | Delete
$option,
[227] Fix | Delete
array(
[228] Fix | Delete
'label' => esc_html__( 'Shadow Color', 'et_builder' ),
[229] Fix | Delete
'type' => 'color-alpha',
[230] Fix | Delete
'hover' => 'tabs',
[231] Fix | Delete
'default' => 'rgba(0,0,0,0.3)',
[232] Fix | Delete
'field_template' => 'color',
[233] Fix | Delete
'mobile_options' => true,
[234] Fix | Delete
'description' => esc_html__( 'The color of the shadow.', 'et_builder' ),
[235] Fix | Delete
)
[236] Fix | Delete
);
[237] Fix | Delete
[238] Fix | Delete
if ( isset( $arguments['default_on_fronts']['color'] ) && false !== $arguments['default_on_fronts']['color'] ) {
[239] Fix | Delete
$options[ $color ]['default_on_front'] = $arguments['default_on_fronts']['color'];
[240] Fix | Delete
}
[241] Fix | Delete
[242] Fix | Delete
$options[ $position ] = array_merge(
[243] Fix | Delete
$option,
[244] Fix | Delete
array(
[245] Fix | Delete
'label' => esc_html__( 'Box Shadow Position', 'et_builder' ),
[246] Fix | Delete
'description' => esc_html__( 'Choose whether you would like the shadow to appear outside your module, lifting the module up from the page, or inside the module, setting the module downwards within the page.', 'et_builder' ),
[247] Fix | Delete
'type' => 'select',
[248] Fix | Delete
'default' => 'outer',
[249] Fix | Delete
'options' => array(
[250] Fix | Delete
'outer' => esc_html__( 'Outer Shadow', 'et_builder' ),
[251] Fix | Delete
'inner' => esc_html__( 'Inner Shadow', 'et_builder' ),
[252] Fix | Delete
),
[253] Fix | Delete
'mobile_options' => true,
[254] Fix | Delete
)
[255] Fix | Delete
);
[256] Fix | Delete
[257] Fix | Delete
if ( isset( $arguments['default_on_fronts']['position'] ) && false !== $arguments['default_on_fronts']['position'] ) {
[258] Fix | Delete
$options[ $position ]['default_on_front'] = $arguments['default_on_fronts']['position'];
[259] Fix | Delete
}
[260] Fix | Delete
[261] Fix | Delete
$list = array(
[262] Fix | Delete
'vertical' => $vertical,
[263] Fix | Delete
'horizontal' => $horizontal,
[264] Fix | Delete
'blur' => $blur,
[265] Fix | Delete
'spread' => $spread,
[266] Fix | Delete
'position' => $position,
[267] Fix | Delete
);
[268] Fix | Delete
foreach ( $list as $id => $field ) {
[269] Fix | Delete
$values = array();
[270] Fix | Delete
foreach ( array_keys( $this->get_presets() ) as $preset ) {
[271] Fix | Delete
$values[ $preset ] = $this->get_preset_field( $preset, $id );
[272] Fix | Delete
}
[273] Fix | Delete
$options[ $field ]['default'] = array( $style, $values );
[274] Fix | Delete
}
[275] Fix | Delete
[276] Fix | Delete
return $options;
[277] Fix | Delete
}
[278] Fix | Delete
[279] Fix | Delete
/**
[280] Fix | Delete
* Get box-shadow declaration style.
[281] Fix | Delete
*
[282] Fix | Delete
* @since 3.23 Add support for responsive settings.
[283] Fix | Delete
*
[284] Fix | Delete
* @param array $atts Module attributes.
[285] Fix | Delete
* @param array $args Box-shadow arguments.
[286] Fix | Delete
* @return string Box shadow CSS declaration.
[287] Fix | Delete
*/
[288] Fix | Delete
public function get_value( $atts, array $args = array() ) {
[289] Fix | Delete
$args = shortcode_atts(
[290] Fix | Delete
array(
[291] Fix | Delete
'suffix' => '',
[292] Fix | Delete
'important' => false,
[293] Fix | Delete
'hover' => false,
[294] Fix | Delete
'device' => 'desktop',
[295] Fix | Delete
), $args
[296] Fix | Delete
);
[297] Fix | Delete
$suffix = $args['suffix'];
[298] Fix | Delete
$important = $args['important'] ? '!important' : '';
[299] Fix | Delete
$hover = $args['hover'];
[300] Fix | Delete
$device = $args['device'];
[301] Fix | Delete
$style = $this->get_key_value( "style$suffix", $atts );
[302] Fix | Delete
[303] Fix | Delete
if ( empty( $style ) || 'none' === $style ) {
[304] Fix | Delete
return '';
[305] Fix | Delete
}
[306] Fix | Delete
[307] Fix | Delete
// 1. Get preset styles as default.
[308] Fix | Delete
$preset = $this->get_preset( $style );
[309] Fix | Delete
[310] Fix | Delete
// 2. Get current device properties value.
[311] Fix | Delete
$atts = array_merge(
[312] Fix | Delete
array(
[313] Fix | Delete
"box_shadow_position{$suffix}" => $preset['position'],
[314] Fix | Delete
"box_shadow_horizontal{$suffix}" => $preset['horizontal'],
[315] Fix | Delete
"box_shadow_vertical{$suffix}" => $preset['vertical'],
[316] Fix | Delete
"box_shadow_blur{$suffix}" => $preset['blur'],
[317] Fix | Delete
"box_shadow_spread{$suffix}" => $preset['spread'],
[318] Fix | Delete
"box_shadow_color{$suffix}" => 'rgba(0,0,0,0.3)',
[319] Fix | Delete
), array_filter( $atts, 'strlen' )
[320] Fix | Delete
);
[321] Fix | Delete
[322] Fix | Delete
// All the values below sometime return null.
[323] Fix | Delete
$position = $this->get_key_value( "position{$suffix}", $atts, false, $device ) === 'inner' ? 'inset' : '';
[324] Fix | Delete
$horizontal = $this->get_key_value( "horizontal{$suffix}", $atts, $hover, $device );
[325] Fix | Delete
$vertical = $this->get_key_value( "vertical{$suffix}", $atts, $hover, $device );
[326] Fix | Delete
$blur = $this->get_key_value( "blur{$suffix}", $atts, $hover, $device );
[327] Fix | Delete
$strength = $this->get_key_value( "spread{$suffix}", $atts, $hover, $device );
[328] Fix | Delete
$color = $this->get_key_value( "color{$suffix}", $atts, $hover, $device );
[329] Fix | Delete
[330] Fix | Delete
// CSS declaration.
[331] Fix | Delete
$value = sprintf(
[332] Fix | Delete
'box-shadow: %1$s %2$s %3$s %4$s %5$s %6$s %7$s;',
[333] Fix | Delete
$position,
[334] Fix | Delete
$horizontal,
[335] Fix | Delete
$vertical,
[336] Fix | Delete
$blur,
[337] Fix | Delete
$strength,
[338] Fix | Delete
$color,
[339] Fix | Delete
$important
[340] Fix | Delete
);
[341] Fix | Delete
[342] Fix | Delete
// Do not provider hover style if it is the same as normal style
[343] Fix | Delete
if ( $hover ) {
[344] Fix | Delete
$new_args = $args;
[345] Fix | Delete
$new_args['hover'] = false;
[346] Fix | Delete
$normal = $this->get_value( $atts, $new_args );
[347] Fix | Delete
[348] Fix | Delete
if ( $normal === $value ) {
[349] Fix | Delete
return '';
[350] Fix | Delete
}
[351] Fix | Delete
}
[352] Fix | Delete
[353] Fix | Delete
return $value;
[354] Fix | Delete
}
[355] Fix | Delete
[356] Fix | Delete
public function get_presets() {
[357] Fix | Delete
return array(
[358] Fix | Delete
'none' => array(
[359] Fix | Delete
'horizontal' => '',
[360] Fix | Delete
'vertical' => '',
[361] Fix | Delete
'blur' => '',
[362] Fix | Delete
'spread' => '',
[363] Fix | Delete
'position' => 'outer',
[364] Fix | Delete
),
[365] Fix | Delete
'preset1' => array(
[366] Fix | Delete
'horizontal' => '0px',
[367] Fix | Delete
'vertical' => '2px',
[368] Fix | Delete
'blur' => '18px',
[369] Fix | Delete
'spread' => '0px',
[370] Fix | Delete
'position' => 'outer',
[371] Fix | Delete
),
[372] Fix | Delete
'preset2' => array(
[373] Fix | Delete
'horizontal' => '6px',
[374] Fix | Delete
'vertical' => '6px',
[375] Fix | Delete
'blur' => '18px',
[376] Fix | Delete
'spread' => '0px',
[377] Fix | Delete
'position' => 'outer',
[378] Fix | Delete
),
[379] Fix | Delete
'preset3' => array(
[380] Fix | Delete
'horizontal' => '0px',
[381] Fix | Delete
'vertical' => '12px',
[382] Fix | Delete
'blur' => '18px',
[383] Fix | Delete
'spread' => '-6px',
[384] Fix | Delete
'position' => 'outer',
[385] Fix | Delete
),
[386] Fix | Delete
'preset4' => array(
[387] Fix | Delete
'horizontal' => '10px',
[388] Fix | Delete
'vertical' => '10px',
[389] Fix | Delete
'blur' => '0px',
[390] Fix | Delete
'spread' => '0px',
[391] Fix | Delete
'position' => 'outer',
[392] Fix | Delete
),
[393] Fix | Delete
'preset5' => array(
[394] Fix | Delete
'horizontal' => '0px',
[395] Fix | Delete
'vertical' => '6px',
[396] Fix | Delete
'blur' => '0px',
[397] Fix | Delete
'spread' => '10px',
[398] Fix | Delete
'position' => 'outer',
[399] Fix | Delete
),
[400] Fix | Delete
'preset6' => array(
[401] Fix | Delete
'horizontal' => '0px',
[402] Fix | Delete
'vertical' => '0px',
[403] Fix | Delete
'blur' => '18px',
[404] Fix | Delete
'spread' => '0px',
[405] Fix | Delete
'position' => 'inner',
[406] Fix | Delete
),
[407] Fix | Delete
'preset7' => array(
[408] Fix | Delete
'horizontal' => '10px',
[409] Fix | Delete
'vertical' => '10px',
[410] Fix | Delete
'blur' => '0px',
[411] Fix | Delete
'spread' => '0px',
[412] Fix | Delete
'position' => 'inner',
[413] Fix | Delete
),
[414] Fix | Delete
);
[415] Fix | Delete
}
[416] Fix | Delete
[417] Fix | Delete
public function get_preset( $name ) {
[418] Fix | Delete
$presets = $this->get_presets();
[419] Fix | Delete
[420] Fix | Delete
return isset( $presets[ $name ] )
[421] Fix | Delete
? $presets[ $name ]
[422] Fix | Delete
: array(
[423] Fix | Delete
'horizontal' => 0,
[424] Fix | Delete
'vertical' => 0,
[425] Fix | Delete
'blur' => 0,
[426] Fix | Delete
'spread' => 0,
[427] Fix | Delete
'position' => 'outer',
[428] Fix | Delete
);
[429] Fix | Delete
}
[430] Fix | Delete
[431] Fix | Delete
public function get_style( $selector, array $atts = array(), array $args = array() ) {
[432] Fix | Delete
$value = $this->get_value( $atts, $args );
[433] Fix | Delete
[434] Fix | Delete
return array(
[435] Fix | Delete
'selector' => $selector,
[436] Fix | Delete
'declaration' => empty( $value ) ? null : $value,
[437] Fix | Delete
);
[438] Fix | Delete
}
[439] Fix | Delete
[440] Fix | Delete
public function has_overlay( $atts, $args ) {
[441] Fix | Delete
$overlay = ET_Core_Data_Utils::instance()->array_get( $args, 'overlay', false );
[442] Fix | Delete
$inset = $this->is_inset( $this->get_value( $atts, $args ) );
[443] Fix | Delete
[444] Fix | Delete
return ( $inset && 'inset' === $overlay ) || 'always' === 'overlay';
[445] Fix | Delete
}
[446] Fix | Delete
[447] Fix | Delete
public function get_overlay_selector( $selector ) {
[448] Fix | Delete
$selectors = array_map( 'trim', explode( ',', $selector ) );
[449] Fix | Delete
$new_selector = array();
[450] Fix | Delete
[451] Fix | Delete
foreach ( $selectors as $selector ) {
[452] Fix | Delete
$new_selector[] = $selector . '>.box-shadow-overlay, ' . $selector . '.et-box-shadow-no-overlay';
[453] Fix | Delete
}
[454] Fix | Delete
[455] Fix | Delete
return implode( ',', $new_selector );
[456] Fix | Delete
}
[457] Fix | Delete
[458] Fix | Delete
public function get_overlay_style( $function_name, $selector, $atts, array $args = array() ) {
[459] Fix | Delete
$order_class_name = ET_Builder_Element::get_module_order_class( $function_name );
[460] Fix | Delete
[461] Fix | Delete
$reg_selector = str_replace( '%%order_class%%', ".{$order_class_name}", $selector );
[462] Fix | Delete
$reg_selector = str_replace( '%order_class%', ".{$order_class_name}", $reg_selector );
[463] Fix | Delete
[464] Fix | Delete
// %%parent_class%% only works if child module's slug is `parent_slug` + _item suffix. If child module slug
[465] Fix | Delete
// use different slug structure, %%parent_class%% should not be used
[466] Fix | Delete
if ( false !== strpos( $reg_selector, '%%parent_class%%' ) ) {
[467] Fix | Delete
$parent_class = str_replace( '_item', '', $function_name );
[468] Fix | Delete
$reg_selector = str_replace( '%%parent_class%%', ".{$parent_class}", $reg_selector );
[469] Fix | Delete
}
[470] Fix | Delete
[471] Fix | Delete
$selector = $this->get_overlay_selector( $selector );
[472] Fix | Delete
$value = $this->get_value( $atts, $args );
[473] Fix | Delete
[474] Fix | Delete
if ( empty( $value ) ) {
[475] Fix | Delete
return array(
[476] Fix | Delete
'selector' => $selector,
[477] Fix | Delete
'declaration' => null,
[478] Fix | Delete
);
[479] Fix | Delete
}
[480] Fix | Delete
[481] Fix | Delete
array_map(
[482] Fix | Delete
array( get_class( $this ), 'register_element' ),
[483] Fix | Delete
array_map( 'trim', explode( ',', $reg_selector ) )
[484] Fix | Delete
);
[485] Fix | Delete
[486] Fix | Delete
return array(
[487] Fix | Delete
'selector' => $selector,
[488] Fix | Delete
'declaration' => $value,
[489] Fix | Delete
);
[490] Fix | Delete
}
[491] Fix | Delete
[492] Fix | Delete
public function is_inset( $style ) {
[493] Fix | Delete
return strpos( $style, 'inset' ) !== false;
[494] Fix | Delete
}
[495] Fix | Delete
[496] Fix | Delete
public static function register_element( $class ) {
[497] Fix | Delete
self::$classes[] = $class;
[498] Fix | Delete
}
[499] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function