'',
'id' => '',
'backgroundcolor' => '',
'circle' => '',
'circlecolor' => '',
'circlebordercolor' => '',
'columns' => '',
'iconcolor' => '',
'layout' => 'icon-with-title',
'icon_circle_size' => '',
'icon_align' => '',
), $args
);
extract( $defaults );
self::$parent_args = $defaults;
if( ( self::$parent_args['layout'] == 'none' || self::$parent_args['layout'] == 'icon-on-side' || self::$parent_args['layout'] == 'icon-with-title' ) && self::$parent_args['icon_circle_size'] == '' ) {
self::$parent_args['icon_circle_size'] = 'small';
} elseif( self::$parent_args['icon_circle_size'] == '' ) {
self::$parent_args['icon_circle_size'] = 'large';
}
$this->column_counter = 1;
if( ! $columns ||
empty( $columns )
) {
preg_match_all( '/(\[content_box (.*?)\](.*?)\[\/content_box\])/s', $content, $matches );
if( is_array( $matches ) &&
! empty( $matches )
) {
$this->num_of_columns = count( $matches[0] );
if( $this->num_of_columns > 6 ) {
$this->num_of_columns = 6;
}
} else {
$this->num_of_columns = 1;
}
} elseif( $columns > 6 ) {
$this->num_of_columns = 6;
} else {
$this->num_of_columns = $columns;
}
$html = sprintf( '
', FusionCore_Plugin::attributes( 'content-boxes-shortcode' ), do_shortcode( $content ) );
$this->content_box_counter++;
return $html;
}
function parent_attr() {
$attr['class'] = sprintf( 'fusion-content-boxes content-boxes columns fusion-columns-%s fusion-content-boxes-%s content-boxes-%s row content-%s', $this->num_of_columns, $this->content_box_counter, self::$parent_args['layout'], self::$parent_args['icon_align'] );
if( self::$parent_args['class'] ) {
$attr['class'] .= ' ' . self::$parent_args['class'];
}
if( self::$parent_args['id'] ) {
$attr['id'] = self::$parent_args['id'];
}
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 = '') {
$defaults = FusionCore_Plugin::set_shortcode_defaults(
array(
'class' => '',
'id' => '',
'backgroundcolor' => '',
'circle' => '',
'circlecolor' => '',
'circlebordercolor' => '',
'icon' => '',
'iconcolor' => '',
'iconflip' => '',
'iconrotate' => '',
'iconspin' => '',
'image' => '',
'image_height' => '35',
'image_width' => '35',
'link' => '',
'linktarget' => '_self',
'linktext' => '',
'textcolor' => '',
'title' => '',
'animation_type' => '',
'animation_direction' => 'left',
'animation_speed' => '0.1',
), $args
);
extract( $defaults );
self::$child_args = $defaults;
$output = '';
$icon_output = '';
$title_output = '';
$content_output = '';
$link_output = '';
$alt = '';
if( $image &&
$image_width &&
$image_height
) {
$image_id = FusionCore_Plugin::get_attachment_id_from_url( $image );
if( $image_id ) {
$alt = get_post_meta( $image_id, '_wp_attachment_image_alt', true );
}
$icon_output = sprintf( '', FusionCore_Plugin::attributes( 'content-box-shortcode-icon' ), $image, $image_width, $image_height, $alt );
} elseif( $icon ) {
$icon_output = sprintf( '
', FusionCore_Plugin::attributes( 'icon' ), FusionCore_Plugin::attributes( 'content-box-shortcode-icon' ) );
}
if( $title ) {
$title_output = sprintf( '%s
', FusionCore_Plugin::attributes( 'content-box-heading' ), $title );
}
if( ( self::$parent_args['layout'] == 'icon-on-side' || self::$parent_args['layout'] == 'icon-with-title' ) && self::$parent_args['icon_align'] == 'right' ) {
$heading_content = $title_output . $icon_output;
} else {
$heading_content = $icon_output . $title_output;
}
if( $link ) {
$heading_content = sprintf( '%s', FusionCore_Plugin::attributes( 'heading-link' ),
FusionCore_Plugin::attributes( 'content-box-shortcode-link' ), $heading_content );
} else {
}
$heading = sprintf( '%s
', FusionCore_Plugin::attributes( 'content-box-shortcode-heading-wrapper' ), $heading_content );
if( $link &&
$linktext
) {
$link_output = sprintf( '%s', FusionCore_Plugin::attributes( 'read-more' ), FusionCore_Plugin::attributes( 'content-box-shortcode-link' ), $linktext );
}
$content_output = sprintf( '%s
', FusionCore_Plugin::attributes( 'content-box-shortcode-content-container'), do_shortcode( $content ) . $link_output );
$output = $heading . $content_output;
$html = sprintf( '', FusionCore_Plugin::attributes( 'content-box-shortcode' ),
FusionCore_Plugin::attributes( 'content-box-shortcode-content-wrapper' ), $output );
$clearfix_test = $this->column_counter / $this->num_of_columns;
if(is_int($clearfix_test)) {
$html .= '';
}
$this->column_counter++;
return $html;
}
function child_attr() {
$columns = 12 / $this->num_of_columns;
$attr['class'] = sprintf( 'fusion-column content-box-column content-box-column-%s col-lg-%s col-md-%s col-sm-%s', $this->column_counter, $columns, $columns, $columns );
if( $this->num_of_columns == '5' ) {
$attr['class'] = 'fusion-column content-box-column 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 content_wrapper_attr() {
$attr['class'] = 'col content-wrapper';
// set parent values if child values are unset to get downwards compatibility
if( ! self::$child_args['backgroundcolor'] ) {
self::$child_args['backgroundcolor'] = self::$parent_args['backgroundcolor'];
}
if( self::$child_args['backgroundcolor'] ) {
$attr['style'] = sprintf( 'background-color:%s;', self::$child_args['backgroundcolor'] );
$attr['class'] .= '-background';
}
if( self::$parent_args['layout'] == 'icon-boxed' ) {
$attr['class'] .= ' content-wrapper-boxed';
}
if( self::$child_args['textcolor'] ) {
$attr['style'] .= sprintf( 'color:%s;', self::$child_args['textcolor'] );
}
if( self::$child_args['animation_type'] ) {
$animations = FusionCore_Plugin::animations( array(
'type' => self::$child_args['animation_type'],
'direction' => self::$child_args['animation_direction'],
'speed' => self::$child_args['animation_speed'],
) );
$attr = array_merge( $attr, $animations );
$attr['class'] .= ' ' . $attr['animation_class'];
unset($attr['animation_class']);
}
return $attr;
}
function link_attr() {
if( self::$child_args['link'] ) {
$attr['href'] = self::$child_args['link'];
}
if( self::$child_args['linktarget'] ) {
$attr['target'] = self::$child_args['linktarget'];
}
return $attr;
}
function heading_wrapper_attr() {
$attr['class'] = 'heading';
if( self::$child_args['icon'] || self::$child_args['image'] ) {
$attr['class'] .= ' heading-with-icon';
}
if( self::$parent_args['icon_align'] ) {
$attr['class'] .= ' icon-'.self::$parent_args['icon_align'];
}
if( self::$parent_args['icon_circle_size'] ) {
$attr['class'] .= ' icon-'.self::$parent_args['icon_circle_size'];
}
return $attr;
}
function icon_attr() {
$attr['style'] = '';
if( self::$child_args['image'] ) {
$attr['class'] = 'image';
if( self::$parent_args['layout'] == 'icon-boxed' &&
self::$child_args['image_width'] &&
self::$child_args['image_height']
) {
$attr['style'] = sprintf( 'margin-left:-%spx;', self::$child_args['image_width'] / 2 );
$attr['style'] .= sprintf( 'top:-%spx;', self::$child_args['image_height'] / 2 + 50 );
}
} else if( self::$child_args['icon'] ) {
$attr['class'] = sprintf( 'fa fontawesome-icon %s', FusionCore_Plugin::font_awesome_name_handler( self::$child_args['icon'] ) );
// set parent values if child values are unset to get downwards compatibility
if( ! self::$child_args['circle'] ) {
self::$child_args['circle'] = self::$parent_args['circle'];
}
if( ! self::$child_args['circlebordercolor'] ) {
self::$child_args['circlebordercolor'] = self::$parent_args['circlebordercolor'];
}
if( ! self::$child_args['circlecolor'] ) {
self::$child_args['circlecolor'] = self::$parent_args['circlecolor'];
}
if( ! self::$child_args['iconcolor'] ) {
self::$child_args['iconcolor'] = self::$parent_args['iconcolor'];
}
// ! self::$child_args['circle'] for backwards compatibility
if( self::$child_args['circle'] == 'yes' ||
! self::$child_args['circle']
) {
$attr['class'] .= ' circle-yes';
if( self::$child_args['circlebordercolor'] ) {
$attr['style'] .= sprintf( 'border-color:%s;', self::$child_args['circlebordercolor'] );
}
if( self::$child_args['circlecolor'] ) {
$attr['style'] .= sprintf( 'background-color:%s;', self::$child_args['circlecolor'] );
}
}
if( self::$child_args['iconcolor'] ) {
$attr['style'] .= sprintf( 'color:%s;', self::$child_args['iconcolor'] );
}
if( self::$child_args['iconflip'] ) {
$attr['class'] .= ' fa-flip-' . self::$child_args['iconflip'];
}
if( self::$child_args['iconrotate'] ) {
$attr['class'] .= ' fa-rotate-' . self::$child_args['iconrotate'];
}
if( self::$child_args['iconspin'] == 'yes' ) {
$attr['class'] .= ' fa-spin';
}
if( self::$parent_args['icon_circle_size'] ) {
$attr['class'] .= ' '.self::$parent_args['icon_circle_size'];
}
}
return $attr;
}
function content_container_attr() {
$attr['class'] = 'content-container';
if( self::$parent_args['layout'] == 'icon-on-side' &&
self::$child_args['image'] &&
self::$child_args['image_width'] &&
self::$child_args['image_height']
) {
$attr['style'] = sprintf( 'padding-left:%spx;', self::$child_args['image_width'] + 10 );
}
if( self::$parent_args['icon_align'] == 'right' && isset ( $attr['style'] ) && ( self::$parent_args['layout'] == 'icon-on-side' || self::$parent_args['layout'] == 'icon-with-title' ) ) {
$attr['style'] .= sprintf( ' text-align:%s', self::$parent_args['icon_align'] );
} else if( self::$parent_args['icon_align'] == 'right' && !isset( $attr['style'] ) && ( self::$parent_args['layout'] == 'icon-on-side' || self::$parent_args['layout'] == 'icon-with-title' ) ) {
$attr['style'] = sprintf( ' text-align:%s', self::$parent_args['icon_align'] );
}
$attr['class'].= ' icon-'.self::$parent_args['icon_circle_size'];
return $attr;
}
}
new FusionSC_ContentBoxes();