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