'', 'id' => '', 'body_color' => strtolower( $smof_data['counter_box_body_color'] ), 'body_size' => strtolower( $smof_data['counter_box_body_size'] ), 'border_color' => strtolower( $smof_data['counter_box_border_color'] ), 'color' => strtolower( $smof_data['counter_box_color'] ), 'columns' => '', 'icon_size' => strtolower( $smof_data['counter_box_icon_size'] ), 'title_size' => strtolower( $smof_data['counter_box_title_size'] ), ), $args ); extract( $defaults ); self::$parent_args = $defaults; if( self::$parent_args['columns'] > 6 ) { self::$parent_args['columns'] = 6; } $this->set_num_of_columns( $content ); $html = sprintf( '
%s
', FusionCore_Plugin::attributes( 'counters-box-shortcode' ), do_shortcode( $content ) ); return $html; } function parent_attr() { $attr['class'] = sprintf( 'fusion-counters-box counters-box row fusion-clearfix fusion-columns-%s', self::$parent_args['columns'] ); if( self::$parent_args['class'] ) { $attr['class'] .= ' ' . self::$parent_args['class']; } if( self::$parent_args['id'] ) { $attr['id'] = self::$parent_args['id']; } return $attr; } function container_attr() { $attr['class'] = 'counter-box-container'; $attr['style'] = sprintf( 'border: 1px solid %s;', self::$parent_args['border_color'] ); return $attr; } /** * Render the child shortcode * * @param array $args Shortcode paramters * @param string $content Content between shortcode * @return string HTML output */ function render_child( $args, $content = '' ) { global $smof_data; $defaults = FusionCore_Plugin::set_shortcode_defaults( array( 'class' => '', 'id' => '', 'direction' => 'up', 'icon' => '', 'unit' => '', 'unit_pos' => 'suffix', 'value' => '20' ), $args ); extract( $defaults ); self::$child_args = $defaults; self::$child_args['value'] = intval( $value ); $unit_output = ''; if( $unit ) { $unit_output = sprintf( '%s', FusionCore_Plugin::attributes( 'counter-box-shortcode-unit' ), $unit ); } if( $direction == 'up' ) { $init_value = 0; } else { $init_value = self::$child_args['value']; } $counter = sprintf( '%s', FusionCore_Plugin::attributes( 'counter-box-shortcode-counter' ), $init_value ); $icon_output = ''; if( $icon ) { $icon_output = sprintf( '', FusionCore_Plugin::attributes( 'counter-box-shortcode-icon' ) ); } if( $unit_pos == 'prefix' ) { $counter = $icon_output . $unit_output . $counter; } else { $counter = $icon_output . $counter . $unit_output; } $counter_wrapper = sprintf( '
%s
', FusionCore_Plugin::attributes( 'counter-box-shortcode-counter-container' ), $counter ); $content_output = sprintf( '
%s
', FusionCore_Plugin::attributes( 'counter-box-shortcode-content' ), do_shortcode( $content ) ); $html = sprintf( '
%s
', FusionCore_Plugin::attributes( 'counter-box-shortcode' ), FusionCore_Plugin::attributes( 'counter-box-container' ), $counter_wrapper . $content_output ); return $html; } function child_attr() { if( self::$parent_args['columns'] && ! empty( self::$parent_args['columns'] ) ) { $columns = 12 / self::$parent_args['columns']; } else { $columns = 1; } $attr['class'] = 'fusion-counter-box fusion-column col-counter-box counter-box-wrapper col-lg-' . $columns . ' col-md-' . $columns . ' col-sm-' . $columns; if( self::$parent_args['columns'] == '5' ) { $attr['class'] = 'fusion-counter-box fusion-column col-counter-box counter-box-wrapper col-lg-2 col-md-2 col-sm-2'; } if( self::$child_args['class'] ) { $attr['class'] .= ' ' . self::$child_args['class']; } if( self::$child_args['id'] ) { $attr['id'] = self::$child_args['id']; } return $attr; } function icon_attr() { $attr['class'] = sprintf( 'counter-box-icon fa fontawesome-icon %s', FusionCore_Plugin::font_awesome_name_handler( self::$child_args['icon'] ) ); $attr['style'] = sprintf( 'font-size:%spx;', self::$parent_args['icon_size'] ); return $attr; } function unit_attr() { $attr['class'] = 'unit'; return $attr; } function counter_attr() { $attr['class'] = 'display-counter'; $attr['data-value'] = self::$child_args['value']; $attr['data-direction'] = self::$child_args['direction']; return $attr; } function counter_container_attr() { $attr['class'] = 'content-box-percentage content-box-counter'; $attr['style'] = sprintf( 'color:%s;font-size:%spx;line-height:%s;', self::$parent_args['color'], self::$parent_args['title_size'], 'normal' ); return $attr; } function content_attr() { $attr['class'] = 'counter-box-content'; $attr['style'] = sprintf( 'color:%s;font-size:%spx;', self::$parent_args['body_color'], self::$parent_args['body_size'] ); return $attr; } /** * Calculate the number of columns automatically * @param string $content Content to be parsed */ function set_num_of_columns( $content ) { if( ! self::$parent_args['columns'] ) { preg_match_all( '/(\[counter_box (.*?)\](.*?)\[\/counter_box\])/s', $content, $matches ); if( is_array( $matches ) && ! empty( $matches ) ) { self::$parent_args['columns'] = count( $matches[0] ); if( self::$parent_args['columns'] > 6 ) { self::$parent_args['columns'] = 6; } } else { self::$parent_args['columns'] = 1; } } elseif( self::$parent_args['columns'] > 6 ) { self::$parent_args['columns'] = 6; } } } new FusionSC_CountersBox();