'',
'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( '', 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();