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

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-conte.../themes/Divi/includes/builder/module
File: Blurb.php
$fields['icon_font_size'] = array(
[500] Fix | Delete
'font-size' => '%%order_class%% .et-pb-icon',
[501] Fix | Delete
);
[502] Fix | Delete
[503] Fix | Delete
return $fields;
[504] Fix | Delete
}
[505] Fix | Delete
[506] Fix | Delete
function render( $attrs, $content = null, $render_slug ) {
[507] Fix | Delete
$multi_view = et_pb_multi_view_options( $this );
[508] Fix | Delete
$url = $this->props['url'];
[509] Fix | Delete
$image = $this->props['image'];
[510] Fix | Delete
$url_new_window = $this->props['url_new_window'];
[511] Fix | Delete
$alt = $this->_esc_attr( 'alt' );
[512] Fix | Delete
$font_icon = $this->props['font_icon'];
[513] Fix | Delete
$use_icon = $this->props['use_icon'];
[514] Fix | Delete
$use_circle = $this->props['use_circle'];
[515] Fix | Delete
$use_circle_border = $this->props['use_circle_border'];
[516] Fix | Delete
$use_icon_font_size = $this->props['use_icon_font_size'];
[517] Fix | Delete
$icon_font_size = $this->props['icon_font_size'];
[518] Fix | Delete
$icon_font_size_hover = $this->get_hover_value( 'icon_font_size' );
[519] Fix | Delete
$icon_font_size_tablet = $this->props['icon_font_size_tablet'];
[520] Fix | Delete
$icon_font_size_phone = $this->props['icon_font_size_phone'];
[521] Fix | Delete
$header_level = $this->props['header_level'];
[522] Fix | Delete
$icon_font_size_last_edited = $this->props['icon_font_size_last_edited'];
[523] Fix | Delete
$image_max_width = $this->props['image_max_width'];
[524] Fix | Delete
$image_max_width_tablet = $this->props['image_max_width_tablet'];
[525] Fix | Delete
$image_max_width_phone = $this->props['image_max_width_phone'];
[526] Fix | Delete
$image_max_width_last_edited = $this->props['image_max_width_last_edited'];
[527] Fix | Delete
$content_max_width = $this->props['content_max_width'];
[528] Fix | Delete
$content_max_width_tablet = $this->props['content_max_width_tablet'];
[529] Fix | Delete
$content_max_width_phone = $this->props['content_max_width_phone'];
[530] Fix | Delete
$content_max_width_last_edited = $this->props['content_max_width_last_edited'];
[531] Fix | Delete
[532] Fix | Delete
$icon_color = $this->props['icon_color'];
[533] Fix | Delete
$icon_color_hover = $this->get_hover_value( 'icon_color' );
[534] Fix | Delete
$icon_color_values = et_pb_responsive_options()->get_property_values( $this->props, 'icon_color' );
[535] Fix | Delete
$icon_color_tablet = isset( $icon_color_values['tablet'] ) ? $icon_color_values['tablet'] : '';
[536] Fix | Delete
$icon_color_phone = isset( $icon_color_values['phone'] ) ? $icon_color_values['phone'] : '';
[537] Fix | Delete
[538] Fix | Delete
$circle_color = $this->props['circle_color'];
[539] Fix | Delete
$circle_color_hover = $this->get_hover_value( 'circle_color' );
[540] Fix | Delete
$circle_color_values = et_pb_responsive_options()->get_property_values( $this->props, 'circle_color' );
[541] Fix | Delete
$circle_color_tablet = isset( $circle_color_values['tablet'] ) ? $circle_color_values['tablet'] : '';
[542] Fix | Delete
$circle_color_phone = isset( $circle_color_values['phone'] ) ? $circle_color_values['phone'] : '';
[543] Fix | Delete
[544] Fix | Delete
$circle_border_color = $this->props['circle_border_color'];
[545] Fix | Delete
$circle_border_color_hover = $this->get_hover_value( 'circle_border_color' );
[546] Fix | Delete
$circle_border_color_values = et_pb_responsive_options()->get_property_values( $this->props, 'circle_border_color' );
[547] Fix | Delete
$circle_border_color_tablet = isset( $circle_border_color_values['tablet'] ) ? $circle_border_color_values['tablet'] : '';
[548] Fix | Delete
$circle_border_color_phone = isset( $circle_border_color_values['phone'] ) ? $circle_border_color_values['phone'] : '';
[549] Fix | Delete
[550] Fix | Delete
$icon_placement = $this->props['icon_placement'];
[551] Fix | Delete
$icon_placement_values = et_pb_responsive_options()->get_property_values( $this->props, 'icon_placement' );
[552] Fix | Delete
$icon_placement_tablet = isset( $icon_placement_values['tablet'] ) ? $icon_placement_values['tablet'] : '';
[553] Fix | Delete
$icon_placement_phone = isset( $icon_placement_values['phone'] ) ? $icon_placement_values['phone'] : '';
[554] Fix | Delete
$is_icon_placement_responsive = et_pb_responsive_options()->is_responsive_enabled( $this->props, 'icon_placement' );
[555] Fix | Delete
$is_icon_placement_top = ! $is_icon_placement_responsive ? 'top' === $icon_placement : in_array( 'top', $icon_placement_values );
[556] Fix | Delete
[557] Fix | Delete
$animation = $this->props['animation'];
[558] Fix | Delete
$animation_values = et_pb_responsive_options()->get_property_values( $this->props, 'animation' );
[559] Fix | Delete
$animation_tablet = isset( $animation_values['tablet'] ) ? $animation_values['tablet'] : '';
[560] Fix | Delete
$animation_phone = isset( $animation_values['phone'] ) ? $animation_values['phone'] : '';
[561] Fix | Delete
[562] Fix | Delete
$image_pathinfo = pathinfo( $image );
[563] Fix | Delete
$is_image_svg = isset( $image_pathinfo['extension'] ) ? 'svg' === $image_pathinfo['extension'] : false;
[564] Fix | Delete
[565] Fix | Delete
$icon_selector = '%%order_class%% .et-pb-icon';
[566] Fix | Delete
[567] Fix | Delete
// Icon/image alignment is only rendered if icon/image placement is set to `top`. Note: due
[568] Fix | Delete
// to responsive option, icon placement can be set to `left` on desktop but `top` on tablet;
[569] Fix | Delete
// this case is considered truthy for $is_icon_placement_top
[570] Fix | Delete
if ( $is_icon_placement_top ) {
[571] Fix | Delete
$is_icon = 'on' === $use_icon;
[572] Fix | Delete
$icon_alignment = $this->props['icon_alignment'];
[573] Fix | Delete
$icon_alignment_values = et_pb_responsive_options()->get_property_values( $this->props, 'icon_alignment' );
[574] Fix | Delete
$icon_alignment_last_edited = $this->props['icon_alignment_last_edited'];
[575] Fix | Delete
$icon_alignment_margins = array(
[576] Fix | Delete
'left' => 'auto auto auto 0',
[577] Fix | Delete
'center' => 'auto',
[578] Fix | Delete
'right' => 'auto 0 auto auto',
[579] Fix | Delete
);
[580] Fix | Delete
[581] Fix | Delete
// Icon and image use different method of aligning and DOM structure. However, if the image's
[582] Fix | Delete
// width is less than the wrapper width, it'll need icon's text-align style to align it
[583] Fix | Delete
// Hence icon's alignment styling is always being outputted, while image is only when needed
[584] Fix | Delete
$icon_alignment_selector = '%%order_class%% .et_pb_blurb_content';
[585] Fix | Delete
$image_alignment_selector = '%%order_class%%.et_pb_blurb .et_pb_image_wrap';
[586] Fix | Delete
[587] Fix | Delete
if ( et_pb_get_responsive_status( $icon_alignment_last_edited ) && '' !== implode( '', $icon_alignment_values ) ) {
[588] Fix | Delete
// Icon and less than wrapper width image alignment style
[589] Fix | Delete
et_pb_responsive_options()->generate_responsive_css(
[590] Fix | Delete
$icon_alignment_values,
[591] Fix | Delete
$icon_alignment_selector,
[592] Fix | Delete
'text-align',
[593] Fix | Delete
$render_slug,
[594] Fix | Delete
'',
[595] Fix | Delete
'align'
[596] Fix | Delete
);
[597] Fix | Delete
[598] Fix | Delete
// Image alignment style
[599] Fix | Delete
if ( ! $is_icon ) {
[600] Fix | Delete
$image_alignment_values = array();
[601] Fix | Delete
[602] Fix | Delete
foreach( $icon_alignment_values as $breakpoint => $alignment ) {
[603] Fix | Delete
$image_alignment_values[ $breakpoint ] = et_()->array_get(
[604] Fix | Delete
$icon_alignment_margins,
[605] Fix | Delete
$alignment,
[606] Fix | Delete
''
[607] Fix | Delete
);
[608] Fix | Delete
}
[609] Fix | Delete
[610] Fix | Delete
// Image alignment style
[611] Fix | Delete
et_pb_responsive_options()->generate_responsive_css(
[612] Fix | Delete
$image_alignment_values,
[613] Fix | Delete
$image_alignment_selector,
[614] Fix | Delete
'margin',
[615] Fix | Delete
$render_slug,
[616] Fix | Delete
'',
[617] Fix | Delete
'align'
[618] Fix | Delete
);
[619] Fix | Delete
}
[620] Fix | Delete
} else {
[621] Fix | Delete
// Let default css handle the alignment if it isn't left or right
[622] Fix | Delete
if ( in_array( $icon_alignment, array( 'left', 'right' ) ) ) {
[623] Fix | Delete
$icon_alignment_prop_value = $is_icon ? $icon_alignment : et_()->array_get( $icon_alignment_margins, $icon_alignment, '' );
[624] Fix | Delete
[625] Fix | Delete
// Icon and less than wrapper width image alignment style
[626] Fix | Delete
ET_Builder_Element::set_style( $render_slug, array(
[627] Fix | Delete
'selector' => $icon_alignment_selector,
[628] Fix | Delete
'declaration' => sprintf(
[629] Fix | Delete
'text-align: %1$s;',
[630] Fix | Delete
esc_html( $icon_alignment )
[631] Fix | Delete
),
[632] Fix | Delete
) );
[633] Fix | Delete
[634] Fix | Delete
// Image alignment style
[635] Fix | Delete
if ( ! $is_icon ) {
[636] Fix | Delete
ET_Builder_Element::set_style( $render_slug, array(
[637] Fix | Delete
'selector' => $image_alignment_selector,
[638] Fix | Delete
'declaration' => sprintf(
[639] Fix | Delete
'margin: %1$s;',
[640] Fix | Delete
esc_html( et_()->array_get( $icon_alignment_margins, $icon_alignment, '' ) )
[641] Fix | Delete
),
[642] Fix | Delete
) );
[643] Fix | Delete
}
[644] Fix | Delete
}
[645] Fix | Delete
}
[646] Fix | Delete
}
[647] Fix | Delete
[648] Fix | Delete
if ( 'off' !== $use_icon_font_size ) {
[649] Fix | Delete
$font_size_responsive_active = et_pb_get_responsive_status( $icon_font_size_last_edited );
[650] Fix | Delete
[651] Fix | Delete
$font_size_values = array(
[652] Fix | Delete
'desktop' => $icon_font_size,
[653] Fix | Delete
'tablet' => $font_size_responsive_active ? $icon_font_size_tablet : '',
[654] Fix | Delete
'phone' => $font_size_responsive_active ? $icon_font_size_phone : '',
[655] Fix | Delete
);
[656] Fix | Delete
[657] Fix | Delete
et_pb_generate_responsive_css( $font_size_values, $icon_selector, 'font-size', $render_slug );
[658] Fix | Delete
[659] Fix | Delete
if ( et_builder_is_hover_enabled( 'icon_font_size', $this->props ) ) {
[660] Fix | Delete
ET_Builder_Element::set_style( $render_slug, array(
[661] Fix | Delete
'selector' => $this->add_hover_to_order_class( $icon_selector ),
[662] Fix | Delete
'declaration' => sprintf(
[663] Fix | Delete
'font-size: %1$s;',
[664] Fix | Delete
esc_html( $icon_font_size_hover )
[665] Fix | Delete
),
[666] Fix | Delete
) );
[667] Fix | Delete
}
[668] Fix | Delete
}
[669] Fix | Delete
[670] Fix | Delete
if ( '' !== $image_max_width_tablet || '' !== $image_max_width_phone || '' !== $image_max_width || $is_image_svg ) {
[671] Fix | Delete
$is_size_px = false;
[672] Fix | Delete
[673] Fix | Delete
// If size is given in px, we want to override parent width
[674] Fix | Delete
if (
[675] Fix | Delete
false !== strpos( $image_max_width, 'px' ) ||
[676] Fix | Delete
false !== strpos( $image_max_width_tablet, 'px' ) ||
[677] Fix | Delete
false !== strpos( $image_max_width_phone, 'px' )
[678] Fix | Delete
) {
[679] Fix | Delete
$is_size_px = true;
[680] Fix | Delete
}
[681] Fix | Delete
// SVG image overwrite. SVG image needs its value to be explicit
[682] Fix | Delete
if ( '' === $image_max_width && $is_image_svg ) {
[683] Fix | Delete
$image_max_width = '100%';
[684] Fix | Delete
}
[685] Fix | Delete
[686] Fix | Delete
// Image max width selector.
[687] Fix | Delete
$image_max_width_selectors = array();
[688] Fix | Delete
$image_max_width_reset_selectors = array();
[689] Fix | Delete
$image_max_width_reset_values = array();
[690] Fix | Delete
[691] Fix | Delete
$image_max_width_selector = $icon_placement === 'top' && $is_image_svg ? '%%order_class%% .et_pb_main_blurb_image' : '%%order_class%% .et_pb_main_blurb_image .et_pb_image_wrap';
[692] Fix | Delete
[693] Fix | Delete
foreach ( array( 'tablet', 'phone' ) as $device ) {
[694] Fix | Delete
$device_icon_placement = 'tablet' === $device ? $icon_placement_tablet : $icon_placement_phone;
[695] Fix | Delete
if ( empty( $device_icon_placement ) ) {
[696] Fix | Delete
continue;
[697] Fix | Delete
}
[698] Fix | Delete
[699] Fix | Delete
$image_max_width_selectors[ $device ] = 'top' === $device_icon_placement && $is_image_svg ? '%%order_class%% .et_pb_main_blurb_image' : '%%order_class%% .et_pb_main_blurb_image .et_pb_image_wrap';
[700] Fix | Delete
[701] Fix | Delete
$prev_icon_placement = 'tablet' === $device ? $icon_placement : $icon_placement_tablet;
[702] Fix | Delete
if ( empty( $prev_icon_placement ) || $prev_icon_placement === $device_icon_placement || ! $is_image_svg ) {
[703] Fix | Delete
continue;
[704] Fix | Delete
}
[705] Fix | Delete
[706] Fix | Delete
// Image/icon placement setting is related to image width setting. In some cases,
[707] Fix | Delete
// user uses different image/icon placement settings for each devices. We need to
[708] Fix | Delete
// reset previous device image width styles to make it works with current style.
[709] Fix | Delete
$image_max_width_reset_selectors[ $device ] = '%%order_class%% .et_pb_main_blurb_image';
[710] Fix | Delete
$image_max_width_reset_values[ $device ] = array( 'width' => '32px' );
[711] Fix | Delete
[712] Fix | Delete
if ( 'top' === $device_icon_placement ) {
[713] Fix | Delete
$image_max_width_reset_selectors[ $device ] = '%%order_class%% .et_pb_main_blurb_image .et_pb_image_wrap';
[714] Fix | Delete
$image_max_width_reset_values[ $device ] = array( 'width' => 'auto' );
[715] Fix | Delete
}
[716] Fix | Delete
}
[717] Fix | Delete
[718] Fix | Delete
// Add image max width desktop selector if user sets different image/icon placement setting.
[719] Fix | Delete
if ( ! empty( $image_max_width_selectors ) ) {
[720] Fix | Delete
$image_max_width_selectors['desktop'] = $image_max_width_selector;
[721] Fix | Delete
}
[722] Fix | Delete
[723] Fix | Delete
$image_max_width_property = ( $is_image_svg || $is_size_px ) ? 'width' : 'max-width';
[724] Fix | Delete
[725] Fix | Delete
$image_max_width_responsive_active = et_pb_get_responsive_status( $image_max_width_last_edited );
[726] Fix | Delete
[727] Fix | Delete
$image_max_width_values = array(
[728] Fix | Delete
'desktop' => $image_max_width,
[729] Fix | Delete
'tablet' => $image_max_width_responsive_active ? $image_max_width_tablet : '',
[730] Fix | Delete
'phone' => $image_max_width_responsive_active ? $image_max_width_phone : '',
[731] Fix | Delete
);
[732] Fix | Delete
[733] Fix | Delete
$main_image_max_width_selector = $image_max_width_selector;
[734] Fix | Delete
[735] Fix | Delete
// Overwrite image max width if there are image max width selectors for different devices.
[736] Fix | Delete
if ( ! empty( $image_max_width_selectors ) ) {
[737] Fix | Delete
$main_image_max_width_selector = $image_max_width_selectors;
[738] Fix | Delete
[739] Fix | Delete
if ( ! empty( $image_max_width_selectors['tablet'] ) && empty( $image_max_width_values['tablet'] ) ) {
[740] Fix | Delete
$image_max_width_values['tablet'] = $image_max_width_responsive_active ? esc_attr( et_pb_responsive_options()->get_any_value( $this->props, 'image_max_width_tablet', '100%', true ) ) : esc_attr( $image_max_width );
[741] Fix | Delete
}
[742] Fix | Delete
[743] Fix | Delete
if ( ! empty( $image_max_width_selectors['phone'] ) && empty( $image_max_width_values['phone'] ) ) {
[744] Fix | Delete
$image_max_width_values['phone'] = $image_max_width_responsive_active ? esc_attr( et_pb_responsive_options()->get_any_value( $this->props, 'image_max_width_phone', '100%', true ) ) : esc_attr( $image_max_width );
[745] Fix | Delete
}
[746] Fix | Delete
}
[747] Fix | Delete
[748] Fix | Delete
et_pb_responsive_options()->generate_responsive_css( $image_max_width_values, $main_image_max_width_selector, $image_max_width_property, $render_slug );
[749] Fix | Delete
[750] Fix | Delete
// Reset custom image max width styles.
[751] Fix | Delete
if ( ! empty( $image_max_width_selectors ) && ! empty( $image_max_width_reset_selectors ) ) {
[752] Fix | Delete
et_pb_responsive_options()->generate_responsive_css( $image_max_width_reset_values, $image_max_width_reset_selectors, $image_max_width_property, $render_slug, '', 'input' );
[753] Fix | Delete
}
[754] Fix | Delete
}
[755] Fix | Delete
[756] Fix | Delete
if ( '' !== $content_max_width_tablet || '' !== $content_max_width_phone || '' !== $content_max_width ) {
[757] Fix | Delete
$content_max_width_responsive_active = et_pb_get_responsive_status( $content_max_width_last_edited );
[758] Fix | Delete
[759] Fix | Delete
$content_max_width_values = array(
[760] Fix | Delete
'desktop' => $content_max_width,
[761] Fix | Delete
'tablet' => $content_max_width_responsive_active ? $content_max_width_tablet : '',
[762] Fix | Delete
'phone' => $content_max_width_responsive_active ? $content_max_width_phone : '',
[763] Fix | Delete
);
[764] Fix | Delete
[765] Fix | Delete
et_pb_generate_responsive_css( $content_max_width_values, '%%order_class%% .et_pb_blurb_content', 'max-width', $render_slug );
[766] Fix | Delete
}
[767] Fix | Delete
[768] Fix | Delete
if ( is_rtl() && 'left' === $icon_placement ) {
[769] Fix | Delete
$icon_placement = 'right';
[770] Fix | Delete
}
[771] Fix | Delete
[772] Fix | Delete
if ( is_rtl() && 'left' === $icon_placement_tablet ) {
[773] Fix | Delete
$icon_placement_tablet = 'right';
[774] Fix | Delete
}
[775] Fix | Delete
[776] Fix | Delete
if ( is_rtl() && 'left' === $icon_placement_phone ) {
[777] Fix | Delete
$icon_placement_phone = 'right';
[778] Fix | Delete
}
[779] Fix | Delete
[780] Fix | Delete
$title_tag = '' !== $url ? 'a' : 'span';
[781] Fix | Delete
$title_attrs = array();
[782] Fix | Delete
[783] Fix | Delete
if ( 'a' === $title_tag ) {
[784] Fix | Delete
$title_attrs['href'] = $url;
[785] Fix | Delete
[786] Fix | Delete
if ( 'on' === $url_new_window ) {
[787] Fix | Delete
$title_attrs['target'] = '_blank';
[788] Fix | Delete
}
[789] Fix | Delete
}
[790] Fix | Delete
[791] Fix | Delete
$title = $multi_view->render_element( array(
[792] Fix | Delete
'tag' => $title_tag,
[793] Fix | Delete
'content' => '{{title}}',
[794] Fix | Delete
'attrs' => $title_attrs,
[795] Fix | Delete
) );
[796] Fix | Delete
[797] Fix | Delete
if ( '' !== $title ) {
[798] Fix | Delete
$title = sprintf(
[799] Fix | Delete
'<%1$s class="et_pb_module_header">%2$s</%1$s>',
[800] Fix | Delete
et_pb_process_header_level( $header_level, 'h4' ),
[801] Fix | Delete
et_core_esc_previously( $title )
[802] Fix | Delete
);
[803] Fix | Delete
}
[804] Fix | Delete
[805] Fix | Delete
// Added for backward compatibility
[806] Fix | Delete
if ( empty( $animation ) ) {
[807] Fix | Delete
$animation = 'top';
[808] Fix | Delete
}
[809] Fix | Delete
[810] Fix | Delete
$image_classes = array( 'et-waypoint', 'et_pb_animation_' . $multi_view->get_value_desktop( 'animation', 'top' ) );
[811] Fix | Delete
[812] Fix | Delete
$animations = $multi_view->get_values( 'animation' );
[813] Fix | Delete
foreach ( $animations as $mode => $animation ) {
[814] Fix | Delete
if ( ! in_array( $mode, array( 'tablet', 'phone' ), true ) ) {
[815] Fix | Delete
continue;
[816] Fix | Delete
}
[817] Fix | Delete
[818] Fix | Delete
$image_classes[] = "et_pb_animation_{$animation}_{$mode}";
[819] Fix | Delete
}
[820] Fix | Delete
[821] Fix | Delete
if ( 'off' === $use_icon ) {
[822] Fix | Delete
$image = $multi_view->render_element( array(
[823] Fix | Delete
'tag' => 'img',
[824] Fix | Delete
'attrs' => array(
[825] Fix | Delete
'src' => '{{image}}',
[826] Fix | Delete
'class' => implode( ' ', $image_classes ),
[827] Fix | Delete
'alt' => $alt,
[828] Fix | Delete
),
[829] Fix | Delete
'required' => 'image',
[830] Fix | Delete
) );
[831] Fix | Delete
} else {
[832] Fix | Delete
$icon_style = sprintf( 'color: %1$s;', esc_attr( $icon_color ) );
[833] Fix | Delete
$icon_tablet_style = '' !== $icon_color_tablet ? sprintf( 'color: %1$s;', esc_attr( $icon_color_tablet ) ) : '';
[834] Fix | Delete
$icon_phone_style = '' !== $icon_color_phone ? sprintf( 'color: %1$s;', esc_attr( $icon_color_phone ) ) : '';
[835] Fix | Delete
$icon_style_hover = '';
[836] Fix | Delete
[837] Fix | Delete
if ( et_builder_is_hover_enabled( 'icon_color', $this->props ) ) {
[838] Fix | Delete
$icon_style_hover = sprintf( 'color: %1$s;', esc_attr( $icon_color_hover ) );
[839] Fix | Delete
}
[840] Fix | Delete
[841] Fix | Delete
if ( 'on' === $use_circle ) {
[842] Fix | Delete
$icon_style .= sprintf( ' background-color: %1$s;', esc_attr( $circle_color ) );
[843] Fix | Delete
$icon_tablet_style .= '' !== $circle_color_tablet ? sprintf( ' background-color: %1$s;', esc_attr( $circle_color_tablet ) ) : '';
[844] Fix | Delete
$icon_phone_style .= '' !== $circle_color_phone ? sprintf( ' background-color: %1$s;', esc_attr( $circle_color_phone ) ) : '';
[845] Fix | Delete
[846] Fix | Delete
if ( et_builder_is_hover_enabled( 'circle_color', $this->props ) ) {
[847] Fix | Delete
$icon_style_hover .= sprintf( ' background-color: %1$s;', esc_attr( $circle_color_hover ) );
[848] Fix | Delete
}
[849] Fix | Delete
[850] Fix | Delete
if ( 'on' === $use_circle_border ) {
[851] Fix | Delete
$icon_style .= sprintf( ' border-color: %1$s;', esc_attr( $circle_border_color ) );
[852] Fix | Delete
$icon_tablet_style .= '' !== $circle_border_color_tablet ? sprintf( ' border-color: %1$s;', esc_attr( $circle_border_color_tablet ) ) : '';
[853] Fix | Delete
$icon_phone_style .= '' !== $circle_border_color_phone ? sprintf( ' border-color: %1$s;', esc_attr( $circle_border_color_phone ) ) : '';
[854] Fix | Delete
[855] Fix | Delete
if ( et_builder_is_hover_enabled( 'circle_border_color', $this->props ) ) {
[856] Fix | Delete
$icon_style_hover .= sprintf( ' border-color: %1$s;', esc_attr( $circle_border_color_hover ) );
[857] Fix | Delete
}
[858] Fix | Delete
}
[859] Fix | Delete
}
[860] Fix | Delete
[861] Fix | Delete
ET_Builder_Element::set_style( $render_slug, array(
[862] Fix | Delete
'selector' => $icon_selector,
[863] Fix | Delete
'declaration' => $icon_style,
[864] Fix | Delete
) );
[865] Fix | Delete
[866] Fix | Delete
ET_Builder_Element::set_style( $render_slug, array(
[867] Fix | Delete
'selector' => $icon_selector,
[868] Fix | Delete
'declaration' => $icon_tablet_style,
[869] Fix | Delete
'media_query' => ET_Builder_Element::get_media_query( 'max_width_980' ),
[870] Fix | Delete
) );
[871] Fix | Delete
[872] Fix | Delete
ET_Builder_Element::set_style( $render_slug, array(
[873] Fix | Delete
'selector' => $icon_selector,
[874] Fix | Delete
'declaration' => $icon_phone_style,
[875] Fix | Delete
'media_query' => ET_Builder_Element::get_media_query( 'max_width_767' ),
[876] Fix | Delete
) );
[877] Fix | Delete
[878] Fix | Delete
if ( '' !== $icon_style_hover ) {
[879] Fix | Delete
ET_Builder_Element::set_style( $render_slug, array(
[880] Fix | Delete
'selector' => $this->add_hover_to_order_class( $icon_selector ),
[881] Fix | Delete
'declaration' => $icon_style_hover,
[882] Fix | Delete
) );
[883] Fix | Delete
}
[884] Fix | Delete
[885] Fix | Delete
$image_classes[] = 'et-pb-icon';
[886] Fix | Delete
[887] Fix | Delete
if ( 'on' === $use_circle ) {
[888] Fix | Delete
$image_classes[] = 'et-pb-icon-circle';
[889] Fix | Delete
}
[890] Fix | Delete
[891] Fix | Delete
if ( 'on' === $use_circle && 'on' === $use_circle_border ) {
[892] Fix | Delete
$image_classes[] = 'et-pb-icon-circle-border';
[893] Fix | Delete
}
[894] Fix | Delete
[895] Fix | Delete
$image = $multi_view->render_element( array(
[896] Fix | Delete
'content' => '{{font_icon}}',
[897] Fix | Delete
'attrs' => array(
[898] Fix | Delete
'class' => implode( ' ', $image_classes ),
[899] Fix | Delete
),
[900] Fix | Delete
) );
[901] Fix | Delete
}
[902] Fix | Delete
[903] Fix | Delete
// Images: Add CSS Filters and Mix Blend Mode rules (if set)
[904] Fix | Delete
$generate_css_image_filters = '';
[905] Fix | Delete
if ( $image && array_key_exists( 'icon_settings', $this->advanced_fields ) && array_key_exists( 'css', $this->advanced_fields['icon_settings'] ) ) {
[906] Fix | Delete
$generate_css_image_filters = $this->generate_css_filters(
[907] Fix | Delete
$render_slug,
[908] Fix | Delete
'child_',
[909] Fix | Delete
self::$data_utils->array_get( $this->advanced_fields['icon_settings']['css'], 'main', '%%order_class%%' )
[910] Fix | Delete
);
[911] Fix | Delete
}
[912] Fix | Delete
[913] Fix | Delete
$image = $image ? sprintf( '<span class="et_pb_image_wrap">%1$s</span>', $image ) : '';
[914] Fix | Delete
$image = $image ? sprintf(
[915] Fix | Delete
'<div class="et_pb_main_blurb_image%2$s">%1$s</div>',
[916] Fix | Delete
( '' !== $url
[917] Fix | Delete
? sprintf(
[918] Fix | Delete
'<a href="%1$s"%3$s>%2$s</a>',
[919] Fix | Delete
esc_attr( $url ),
[920] Fix | Delete
$image,
[921] Fix | Delete
( 'on' === $url_new_window ? ' target="_blank"' : '' )
[922] Fix | Delete
)
[923] Fix | Delete
: $image
[924] Fix | Delete
),
[925] Fix | Delete
esc_attr( $generate_css_image_filters )
[926] Fix | Delete
) : '';
[927] Fix | Delete
[928] Fix | Delete
$video_background = $this->video_background();
[929] Fix | Delete
$parallax_image_background = $this->get_parallax_image_background();
[930] Fix | Delete
[931] Fix | Delete
// Module classnames
[932] Fix | Delete
$this->add_classname( array(
[933] Fix | Delete
$this->get_text_orientation_classname(),
[934] Fix | Delete
sprintf( ' et_pb_blurb_position_%1$s', esc_attr( $icon_placement ) ),
[935] Fix | Delete
) );
[936] Fix | Delete
[937] Fix | Delete
// Background layout class names.
[938] Fix | Delete
$background_layout_class_names = et_pb_background_layout_options()->get_background_layout_class( $this->props );
[939] Fix | Delete
$this->add_classname( $background_layout_class_names );
[940] Fix | Delete
[941] Fix | Delete
if ( ! empty( $icon_placement_tablet ) ) {
[942] Fix | Delete
$this->add_classname( "et_pb_blurb_position_{$icon_placement_tablet}_tablet" );
[943] Fix | Delete
}
[944] Fix | Delete
[945] Fix | Delete
if ( ! empty( $icon_placement_phone ) ) {
[946] Fix | Delete
$this->add_classname( "et_pb_blurb_position_{$icon_placement_phone}_phone" );
[947] Fix | Delete
}
[948] Fix | Delete
[949] Fix | Delete
// Background layout data attributes.
[950] Fix | Delete
$data_background_layout = et_pb_background_layout_options()->get_background_layout_attrs( $this->props );
[951] Fix | Delete
[952] Fix | Delete
$content = $multi_view->render_element( array(
[953] Fix | Delete
'tag' => 'div',
[954] Fix | Delete
'content' => '{{content}}',
[955] Fix | Delete
'attrs' => array(
[956] Fix | Delete
'class' => 'et_pb_blurb_description',
[957] Fix | Delete
),
[958] Fix | Delete
) );
[959] Fix | Delete
[960] Fix | Delete
$output = sprintf(
[961] Fix | Delete
'<div%5$s class="%4$s"%8$s>
[962] Fix | Delete
%7$s
[963] Fix | Delete
%6$s
[964] Fix | Delete
<div class="et_pb_blurb_content">
[965] Fix | Delete
%2$s
[966] Fix | Delete
<div class="et_pb_blurb_container">
[967] Fix | Delete
%3$s
[968] Fix | Delete
%1$s
[969] Fix | Delete
</div>
[970] Fix | Delete
</div> <!-- .et_pb_blurb_content -->
[971] Fix | Delete
</div> <!-- .et_pb_blurb -->',
[972] Fix | Delete
$content,
[973] Fix | Delete
et_core_esc_previously( $image ),
[974] Fix | Delete
et_core_esc_previously( $title ),
[975] Fix | Delete
$this->module_classname( $render_slug ),
[976] Fix | Delete
$this->module_id(), // #5
[977] Fix | Delete
$video_background,
[978] Fix | Delete
$parallax_image_background,
[979] Fix | Delete
et_core_esc_previously( $data_background_layout )
[980] Fix | Delete
);
[981] Fix | Delete
[982] Fix | Delete
return $output;
[983] Fix | Delete
}
[984] Fix | Delete
[985] Fix | Delete
/**
[986] Fix | Delete
* Filter multi view value.
[987] Fix | Delete
*
[988] Fix | Delete
* @since 3.27.1
[989] Fix | Delete
*
[990] Fix | Delete
* @see ET_Builder_Module_Helper_MultiViewOptions::filter_value
[991] Fix | Delete
*
[992] Fix | Delete
* @param mixed $raw_value Props raw value.
[993] Fix | Delete
* @param array $args {
[994] Fix | Delete
* Context data.
[995] Fix | Delete
*
[996] Fix | Delete
* @type string $context Context param: content, attrs, visibility, classes.
[997] Fix | Delete
* @type string $name Module options props name.
[998] Fix | Delete
* @type string $mode Current data mode: desktop, hover, tablet, phone.
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function