'', 'id' => '', 'accent_color' => strtolower( $smof_data['button_accent_color'] ), 'accent_hover_color' => strtolower( $smof_data['button_accent_hover_color'] ), 'bevel_color' => strtolower( $smof_data['button_bevel_color'] ), 'border_width' => strtolower( $smof_data['button_border_width'] ), 'color' => 'default', 'gradient_colors' => strtolower( $smof_data['button_gradient_top_color'] ) . '|' . strtolower( $smof_data['button_gradient_bottom_color'] ), 'icon' => '', 'icon_divider' => 'no', 'icon_position' => 'left', 'link' => '', 'modal' => '', 'shape' => strtolower( $smof_data['button_shape'] ), 'size' => strtolower( $smof_data['button_size'] ), 'target' => '_self', 'shadow' => strtolower( $smof_data['button_text_shadow'] ), 'title' => '', 'type' => strtolower( $smof_data['button_type'] ), 'alignment' => '', 'animation_type' => '', 'animation_direction' => 'down', 'animation_speed' => '', // Combined in accent_color 'border_color' => '', 'icon_color' => '', 'text_color' => '', // Combined in accent_hover_color 'border_hover_color' => '', 'icon__hover_color' => '', 'text_hover_color' => '', // Combined with gradient_colors 'gradient_hover_colors' => strtolower( $smof_data['button_gradient_top_color_hover'] ) . '|' . strtolower( $smof_data['button_gradient_bottom_color_hover'] ), ), $args ); if( $defaults['color'] == 'default' ) { $defaults['accent_color'] = strtolower( $smof_data['button_accent_color'] ); $defaults['accent_hover_color'] = strtolower( $smof_data['button_accent_hover_color'] ); $defaults['bevel_color'] = strtolower( $smof_data['button_bevel_color'] ); $defaults['gradient_colors'] = strtolower( $smof_data['button_gradient_top_color'] ) . '|' . strtolower( $smof_data['button_gradient_bottom_color'] ); $defaults['gradient_hover_colors'] = strtolower( $smof_data['button_gradient_top_color_hover'] ) . '|' . strtolower( $smof_data['button_gradient_bottom_color_hover'] ); } // Combined variable settings $old_border_color = $defaults['border_color']; $old_text_color = $defaults['text_color']; $defaults['border_color'] = $defaults['icon_color'] = $defaults['text_color'] = $defaults['accent_color']; $defaults['border_hover_color'] = $defaults['icon_hover_color'] = $defaults['text_hover_color'] = $defaults['accent_hover_color']; //$defaults['gradient_hover_colors'] = $defaults['gradient_hover_colors']; // See below for array reverting if( $old_border_color ) { $defaults['border_color'] = $old_border_color; } if( $old_text_color ) { $defaults['text_color'] = $old_border_color; } if( $defaults['modal'] ) { $defaults['link'] = '#'; } if( $defaults['shadow'] === '0' ) { $defaults['shadow'] = 'yes'; } else if( $defaults['shadow'] === '1' ) { $defaults['shadow'] = 'no'; } $defaults['type'] = strtolower( $defaults['type'] ); extract( $defaults ); self::$args = $defaults; $styles = ''; if( ( $color == 'custom' || $color == 'default' ) && ( $bevel_color || $accent_color || $accent_hover_color || $border_width || $gradient_colors ) ) { $general_styles = $button_3d_styles = $hover_styles = $gradient_styles = $gradient_hover_styles = ''; $styles = ''; } else { if( $shadow == 'no' ) { $styles = ''; } } $icon_html = ''; if( $icon ) { $icon_html = sprintf( '', FusionCore_Plugin::attributes( 'button-shortcode-icon' ) ); if( $icon_divider == 'yes' ) { $icon_html = sprintf( '%s', FusionCore_Plugin::attributes( 'button-shortcode-icon-divder' ), $icon_html ); } } $button_text = sprintf( '%s', FusionCore_Plugin::attributes( 'button-shortcode-button-text' ), do_shortcode( $content ) ); if( $icon_position == 'left' ) { $inner_content = $icon_html . $button_text; } else { $inner_content = $button_text . $icon_html; } $html = sprintf( '%s%s', $styles, FusionCore_Plugin::attributes( 'button-shortcode' ), $inner_content ); if( $alignment ) { $html = sprintf( '
%s
', $alignment, $html ); } $this->button_counter++; return $html; } function attr() { $attr['class'] = sprintf( 'button %3$s button %4$s fusion-button button-%s button-%s button-%s button-%s button-%s buttonshadow-%s', self::$args['type'], self::$args['shape'], self::$args['size'], self::$args['color'], $this->button_counter, self::$args['shadow'] ); if( self::$args['animation_type'] ) { $animations = FusionCore_Plugin::animations( array( 'type' => self::$args['animation_type'], 'direction' => self::$args['animation_direction'], 'speed' => self::$args['animation_speed'], ) ); $attr = array_merge( $attr, $animations ); $attr['class'] .= ' ' . $attr['animation_class']; unset($attr['animation_class']); } $attr['target'] = self::$args['target']; $attr['title'] = self::$args['title']; $attr['href'] = self::$args['link']; if( self::$args['modal'] ) { $attr['data-toggle'] = 'modal'; $attr['data-target'] = '.' . self::$args['modal']; } if( self::$args['class'] ) { $attr['class'] .= ' ' . self::$args['class']; } if( self::$args['id'] ) { $attr['id'] = self::$args['id']; } return $attr; } function icon_divider_attr() { $attr = array(); $attr['class'] = sprintf( 'button-icon-divider-%s', self::$args['icon_position'] ); return $attr; } function icon_attr() { $attr = array(); $attr['class'] = sprintf( 'fa %s', FusionCore_Plugin::font_awesome_name_handler( self::$args['icon'] ) ); if( self::$args['icon_divider'] != 'yes' ) { $attr['class'] .= sprintf( ' button-icon-%s', self::$args['icon_position'] ); } if( self::$args['icon_color'] != self::$args['accent_color'] ) { $attr['style'] = sprintf( 'color:%s;', self::$args['icon_color'] ); } return $attr; } function button_text_attr() { $attr = array(); if( self::$args['icon'] && self::$args['icon_divider'] == 'yes' ) { $attr['class'] = sprintf( 'fusion-button-text-%s', self::$args['icon_position'] ); } else { $attr['class'] = 'fusion-button-text'; } return $attr; } } new FusionSC_Button();