This repository has been archived on 2022-06-23. You can view files and clone it, but cannot push or open issues or pull requests.
divi/includes/builder/module/helpers/Overlay.php

102 lines
2.2 KiB
PHP

<?php if ( ! defined( 'ABSPATH' ) ) {
die( 'Direct access forbidden.' );
}
/**
* Overlay helper methods.
*
* Class ET_Builder_Module_Helper_Overlay
*/
class ET_Builder_Module_Helper_Overlay {
/**
* Get an overlay html tag's attributes.
*
* @since 3.29
*
* @param array $args
*
* @return array
*/
public static function get_attributes( $args ) {
$attributes = array();
if ( ! empty( $args['icon'] ) ) {
$attributes['data-icon'] = et_pb_extended_process_font_icon( $args['icon'] );
}
if ( ! empty( $args['icon_tablet'] ) ) {
$attributes['data-icon-tablet'] = et_pb_extended_process_font_icon( $args['icon_tablet'] );
}
if ( ! empty( $args['icon_phone'] ) ) {
$attributes['data-icon-phone'] = et_pb_extended_process_font_icon( $args['icon_phone'] );
}
if ( ! empty( $args['icon_sticky'] ) ) {
$attributes['data-icon-sticky'] = et_pb_extended_process_font_icon( $args['icon_sticky'] );
}
return $attributes;
}
/**
* Render an overlay html tag's attributes.
*
* @since 3.29
*
* @param array $args
*
* @return string
*/
public static function render_attributes( $args ) {
$attributes = self::get_attributes( $args );
$html = array();
foreach ( $attributes as $attribute => $value ) {
$html[] = sprintf(
'%1$s="%2$s"',
et_core_intentionally_unescaped( $attribute, 'fixed_string' ),
et_core_esc_previously( $value )
);
}
return implode( ' ', $html );
}
/**
* Render an overlay html tag.
*
* @since 3.29
*
* @param array $args
*
* @return string
*/
public static function render( $args ) {
$attributes = et_core_esc_previously( self::render_attributes( $args ) );
$classes = array( 'et_overlay' );
if ( ! empty( $args['icon'] ) ) {
$classes[] = 'et_pb_inline_icon';
}
if ( ! empty( $args['icon_tablet'] ) ) {
$classes[] = 'et_pb_inline_icon_tablet';
}
if ( ! empty( $args['icon_phone'] ) ) {
$classes[] = 'et_pb_inline_icon_phone';
}
if ( ! empty( $args['icon_sticky'] ) ) {
$classes[] = 'et_pb_inline_icon_sticky';
}
return sprintf(
'<span class="%1$s"%2$s></span>',
et_core_intentionally_unescaped( implode( ' ', $classes ), 'fixed_string' ),
( '' !== $attributes ? ' ' . $attributes : '' )
);
}
}