string,
* 'typography' => any,
* 'text_color' => any,
* 'container_background_color' => any,
* 'container_border_radius' => any,
* 'item_background_color' => any,
* 'item_border_radius' => any,
* 'item_spacing' => any,
*)
*/
public static function get_default_settings() {
return array(
'separator_type' => 'type_1',
'separator_color' => 'var(--wp--preset--color--brandy-secondary-text)',
'separator_hover_color' => 'var(--wp--preset--color--brandy-primary-text)',
'typography' => TypographyService::get_default_typography_value(
array(
'font_size' => array(
'desktop' => array(
'value' => 14,
),
),
)
),
'text_color' => array(
'normal' => 'var(--wp--preset--color--brandy-secondary-text)',
'hover' => 'var(--wp--preset--color--brandy-primary-text)',
'active' => 'var(--wp--preset--color--brandy-primary-text)',
),
'container_background_color' => '#ffffff00',
'container_border_radius' => array(
'unit' => 'px',
'value' => 8,
'min' => 0,
'max' => 50,
),
'item_background_color' => '#ffffff00',
'item_border_radius' => array(
'unit' => 'px',
'value' => 8,
'min' => 0,
'max' => 50,
),
'item_padding' => array(
'unit' => 'px',
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
'is_constraints' => false,
),
'item_spacing' => array(
'desktop' => array(
'unit' => 'px',
'value' => 10,
'min' => 5,
'max' => 30,
),
'tablet' => null,
'mobile' => null,
),
);
}
/**
* Print out global css
*/
public static function print_css() {
$settings = self::get_settings();
echo wp_kses_post( StylesDataHelpers::get_typography_css( $settings['typography'], '--breadcrumb', 'html' ) );
$css = '';
$variables = array(
'--breadcrumb-separator-color:' . $settings['separator_color'],
'--breadcrumb-text-color-normal:' . $settings['text_color']['normal'],
'--breadcrumb-text-color-hover:' . $settings['text_color']['hover'],
'--breadcrumb-text-color-active:' . $settings['text_color']['active'],
'--breadcrumb-container-background-color:' . $settings['container_background_color'],
'--breadcrumb-container-border-radius:' . StylesDataHelpers::get_dimension_css( $settings['container_border_radius'] ),
'--breadcrumb-item-background-color:' . $settings['item_background_color'],
'--breadcrumb-item-border-radius:' . StylesDataHelpers::get_dimension_css( $settings['item_border_radius'] ),
'--breadcrumb-item-spacing:' . StylesDataHelpers::get_dimension_css( $settings['item_spacing']['desktop'] ),
'--breadcrumb-item-padding:' . StylesDataHelpers::get_spacing_css( $settings['item_padding'] ),
);
$css .= ':root{' . implode( ';', $variables ) . '}';
if ( ! empty( $settings['item_spacing']['tablet'] ) ) {
$css .= DynamicCss::wrap_tablet_responsive( 'body{ --breadcrumb-item-spacing:' . StylesDataHelpers::get_dimension_css( $settings['item_spacing']['desktop'] ) . '}' );
}
if ( ! empty( $settings['item_spacing']['mobile'] ) ) {
$css .= DynamicCss::wrap_mobile_responsive( 'body{ --breadcrumb-item-spacing:' . StylesDataHelpers::get_dimension_css( $settings['item_spacing']['mobile'] ) . '}' );
}
echo wp_kses_post( $css );
}
/**
* Returns settings
*
* @return array
* @example Returns object with these value
* array(
* 'color' => array( 'normal', 'hover' ),
* 'background_color' => array( 'normal', 'hover' ),
* 'border_radius',
* 'padding'
*)
*/
public static function get_settings() {
$default_settings = self::get_default_settings();
$breadcrumb_settings = get_theme_mod( self::get_option_key(), $default_settings );
$breadcrumb_settings = Helpers::recursive_wp_parse_args( $breadcrumb_settings, $default_settings );
foreach ( array_keys( $breadcrumb_settings ) as $key ) {
if ( ! key_exists( $key, $default_settings ) ) {
unset( $breadcrumb_settings[ $key ] );
}
}
return $breadcrumb_settings;
}
public static function save_settings( $data ) {
$default_settings = self::get_default_settings();
$breadcrumb_settings = Helpers::recursive_wp_parse_args( $data, $default_settings );
foreach ( array_keys( $breadcrumb_settings ) as $key ) {
if ( ! key_exists( $key, $default_settings ) ) {
unset( $breadcrumb_settings[ $key ] );
}
}
set_theme_mod( self::get_option_key(), $breadcrumb_settings );
do_action( 'brandy_after_saving_breadcrumb_settings', $breadcrumb_settings );
}
public static function get_property( $name ) {
$settings = self::get_settings();
return isset( $settings[ $name ] ) ? $settings[ $name ] : null;
}
public static function get_delimiter_icon_list() {
return array(
'type_1' => '',
'type_2' => '',
'type_3' => '',
'type_4' => '',
'type_5' => '',
);
}
public static function get_delimiter_icon( $type = 'type_1' ) {
$icons = self::get_delimiter_icon_list();
if ( isset( $icons[ $type ] ) ) {
return $icons[ $type ];
}
return $icons['type_1'];
}
public static function get_current_delimiter_icon() {
$settings = self::get_settings();
$type = isset( $settings['separator_type'] ) ? $settings['separator_type'] : 'type_1';
$icons = self::get_delimiter_icon_list();
if ( isset( $icons[ $type ] ) ) {
return $icons[ $type ];
}
return $icons['type_1'];
}
}