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.
223 lines
5.3 KiB
PHP
223 lines
5.3 KiB
PHP
<?php
|
|
/**
|
|
* Functions needed for the Background Masks QF.
|
|
*
|
|
* @since 4.15.0
|
|
*
|
|
* @package Divi
|
|
* @subpackage Builder
|
|
*/
|
|
|
|
/**
|
|
* Get background pattern option instance.
|
|
*
|
|
* @since 4.15.0
|
|
*
|
|
* @return ET_Builder_Background_Pattern_Options
|
|
*/
|
|
function et_pb_background_pattern_options() {
|
|
return ET_Builder_Background_Pattern_Options::get();
|
|
}
|
|
|
|
/**
|
|
* Get background mask option instance.
|
|
*
|
|
* @since 4.15.0
|
|
*
|
|
* @return ET_Builder_Background_Mask_Options
|
|
*/
|
|
function et_pb_background_mask_options() {
|
|
return ET_Builder_Background_Mask_Options::get();
|
|
}
|
|
|
|
/**
|
|
* Returns Pattern style options.
|
|
*
|
|
* @since 4.15.0
|
|
*
|
|
* @return array
|
|
*/
|
|
function et_pb_get_pattern_style_options() {
|
|
// Bail, when AJAX isn't calling for Builder Assets/Data.
|
|
if ( wp_doing_ajax() && ! et_fb_is_builder_ajax() ) {
|
|
return array();
|
|
}
|
|
|
|
$cache_key = 'et_pb_get_pattern_style_options';
|
|
|
|
if ( ! et_core_cache_has( $cache_key ) ) {
|
|
$options = array();
|
|
$settings = et_pb_background_pattern_options()->settings();
|
|
|
|
if ( ! empty( $settings['styles'] ) ) {
|
|
// Get the style names.
|
|
$names = array_keys( $settings['styles'] );
|
|
|
|
// Get Label for the styles.
|
|
$labels = array_column( $settings['styles'], 'label' );
|
|
|
|
// Prepare the final style options.
|
|
$options = array_combine( $names, $labels );
|
|
|
|
// Cleanup.
|
|
$labels = null;
|
|
$names = null;
|
|
$settings = null;
|
|
}
|
|
|
|
et_core_cache_set( $cache_key, $options );
|
|
} else {
|
|
$options = et_core_cache_get( $cache_key );
|
|
}
|
|
|
|
return $options ? $options : array();
|
|
}
|
|
|
|
/**
|
|
* Returns Mask style options.
|
|
*
|
|
* @since 4.15.0
|
|
*
|
|
* @return array
|
|
*/
|
|
function et_pb_get_mask_style_options() {
|
|
// Bail, when AJAX isn't calling for Builder Assets/Data.
|
|
if ( wp_doing_ajax() && ! et_fb_is_builder_ajax() ) {
|
|
return array();
|
|
}
|
|
|
|
$cache_key = 'et_pb_get_mask_style_options';
|
|
|
|
if ( ! et_core_cache_has( $cache_key ) ) {
|
|
$options = array();
|
|
$settings = et_pb_background_mask_options()->settings();
|
|
|
|
if ( ! empty( $settings['styles'] ) ) {
|
|
// Get the style names.
|
|
$names = array_keys( $settings['styles'] );
|
|
|
|
// Get Label for the styles.
|
|
$labels = array_column( $settings['styles'], 'label' );
|
|
|
|
// Prepare the final style options.
|
|
$options = array_combine( $names, $labels );
|
|
|
|
// Cleanup.
|
|
$labels = null;
|
|
$names = null;
|
|
$settings = null;
|
|
}
|
|
|
|
et_core_cache_set( $cache_key, $options );
|
|
} else {
|
|
$options = et_core_cache_get( $cache_key );
|
|
}
|
|
|
|
return $options ? $options : array();
|
|
}
|
|
|
|
if ( ! function_exists( 'et_pb_get_background_field_allowed_units' ) ) :
|
|
/**
|
|
* Return allowed units for width/height/horizontal offset/vertical offset field.
|
|
*
|
|
* @since 4.15.0
|
|
*
|
|
* @return string[]
|
|
*/
|
|
function et_pb_get_background_field_allowed_units() {
|
|
return array(
|
|
'%',
|
|
'em',
|
|
'rem',
|
|
'px',
|
|
'cm',
|
|
'mm',
|
|
'in',
|
|
'pc',
|
|
'ex',
|
|
'vh',
|
|
'vw',
|
|
);
|
|
}
|
|
endif;
|
|
|
|
if ( ! function_exists( 'et_pb_get_background_blend_mode_options' ) ) :
|
|
/**
|
|
* Return blend mode options list.
|
|
*
|
|
* @since 4.15.0
|
|
*
|
|
* @return array
|
|
*/
|
|
function et_pb_get_background_blend_mode_options() {
|
|
return array(
|
|
'normal' => et_builder_i18n( 'Normal' ),
|
|
'multiply' => et_builder_i18n( 'Multiply' ),
|
|
'screen' => et_builder_i18n( 'Screen' ),
|
|
'overlay' => et_builder_i18n( 'Overlay' ),
|
|
'darken' => et_builder_i18n( 'Darken' ),
|
|
'lighten' => et_builder_i18n( 'Lighten' ),
|
|
'color-dodge' => et_builder_i18n( 'Color Dodge' ),
|
|
'color-burn' => et_builder_i18n( 'Color Burn' ),
|
|
'hard-light' => et_builder_i18n( 'Hard Light' ),
|
|
'soft-light' => et_builder_i18n( 'Soft Light' ),
|
|
'difference' => et_builder_i18n( 'Difference' ),
|
|
'exclusion' => et_builder_i18n( 'Exclusion' ),
|
|
'hue' => et_builder_i18n( 'Hue' ),
|
|
'saturation' => et_builder_i18n( 'Saturation' ),
|
|
'color' => et_builder_i18n( 'Color' ),
|
|
'luminosity' => et_builder_i18n( 'Luminosity' ),
|
|
);
|
|
}
|
|
endif;
|
|
|
|
if ( ! function_exists( 'et_pb_get_background_position_options' ) ) :
|
|
/**
|
|
* Return Background Position options list.
|
|
*
|
|
* @since 4.15.0
|
|
*
|
|
* @return array
|
|
*/
|
|
function et_pb_get_background_position_options() {
|
|
return array(
|
|
'top_left' => et_builder_i18n( 'Top Left' ),
|
|
'top_center' => et_builder_i18n( 'Top Center' ),
|
|
'top_right' => et_builder_i18n( 'Top Right' ),
|
|
'center_left' => et_builder_i18n( 'Center Left' ),
|
|
'center' => et_builder_i18n( 'Center' ),
|
|
'center_right' => et_builder_i18n( 'Center Right' ),
|
|
'bottom_left' => et_builder_i18n( 'Bottom Left' ),
|
|
'bottom_center' => et_builder_i18n( 'Bottom Center' ),
|
|
'bottom_right' => et_builder_i18n( 'Bottom Right' ),
|
|
);
|
|
}
|
|
endif;
|
|
|
|
if ( ! function_exists( 'et_pb_get_background_repeat_options' ) ) :
|
|
/**
|
|
* Return Background Repeat options list.
|
|
*
|
|
* @since 4.15.0
|
|
*
|
|
* @param bool $no_repeat Whether to include no-repeat option.
|
|
*
|
|
* @return array
|
|
*/
|
|
function et_pb_get_background_repeat_options( $no_repeat = true ) {
|
|
$options = array(
|
|
'repeat' => et_builder_i18n( 'Repeat' ),
|
|
'repeat-x' => et_builder_i18n( 'Repeat X (horizontal)' ),
|
|
'repeat-y' => et_builder_i18n( 'Repeat Y (vertical)' ),
|
|
'space' => et_builder_i18n( 'Repeat with space between' ),
|
|
'round' => et_builder_i18n( 'Repeat and Stretch' ),
|
|
);
|
|
|
|
if ( $no_repeat ) {
|
|
$options['no-repeat'] = et_builder_i18n( 'No Repeat' );
|
|
}
|
|
|
|
return $options;
|
|
}
|
|
endif;
|