/**
 * a3_portfolio_get_launch_button()
 *
 * @return void
 */
function a3_portfolio_get_launch_button($portfolio_id = 0)
{
    if ($portfolio_id < 1) {
        $portfolio_id = get_the_ID();
    }
    $button_class = 'portfolio_button';
    $button_text = get_post_meta($portfolio_id, '_a3_portfolio_launch_button_text', true);
    $button_link = get_post_meta($portfolio_id, '_a3_portfolio_launch_site_url', true);
    $open_type = get_post_meta($portfolio_id, '_a3_portfolio_launch_open_type', true);
    if (empty($button_text) || $button_text == '') {
        $button_text = a3_portfolio_ei_ict_t__('Launch Site Button Text', __('LAUNCH SITE', 'a3_portfolios'));
    }
    $button_class = apply_filters('a3_portfolio_launch_button_class', $button_class, $portfolio_id);
    $button_text = apply_filters('a3_portfolio_launch_button_text', $button_text, $portfolio_id);
    $button_link = apply_filters('a3_portfolio_launch_site_url', $button_link, $portfolio_id);
    $open_type = apply_filters('a3_portfolio_launch_open_type', $open_type, $portfolio_id);
    a3_portfolio_get_template('expander/launch-button.php', array('launch_site_url' => $button_link, 'button_text' => $button_text, 'open_type' => $open_type, 'button_class' => $button_class));
}
    echo $number_columns;
    ?>
">

      <?php 
    /**
     * a3_portfolio_before_tag_loop hook
     *
     */
    do_action('a3_portfolio_before_tag_loop');
    ?>

        <?php 
    while (have_posts()) {
        the_post();
        a3_portfolio_get_template('content-portfolio.php');
    }
    ?>

      <?php 
    /**
     * a3_portfolio_after_tag_loop hook
     *
     */
    do_action('a3_portfolio_after_tag_loop');
    ?>

    </div>

    <div style="clear:both"></div>
	    <?php 
    /**
     * a3_portfolio_before_single_content hook
     *
     * @hooked a3_portfolio_custom_single_style - 5
     */
    do_action('a3_portfolio_before_single_content', $portfolio_id);
    ?>

	    <div class="a3-portfolio-single-wrap">

		    <?php 
    while (have_posts()) {
        the_post();
        a3_portfolio_get_template('content-single-portfolio.php', array('portfolio_id' => $portfolio_id));
    }
    ?>

		</div>

		<?php 
    /**
     * a3_portfolio_after_single_content hook
     *
     * @hooked a3_portfolio_single_scripts - 5
     */
    do_action('a3_portfolio_after_single_content', $portfolio_id);
    ?>

	</div>
 public function portfolio_category_template($content = '')
 {
     global $wpdb, $wp_query, $portfolio_query, $portfolio_query_vars;
     $output = '';
     if (preg_match("/\\[portfoliopage\\]/", $content)) {
         global $more, $is_IE;
         $more = 0;
         remove_filter('the_content', 'wpautop');
         list($wp_query, $portfolio_query) = array($portfolio_query, $wp_query);
         // swap the wpsc_query object
         $display_type = '';
         $number_columns = a3_portfolio_get_col_per_row();
         ob_start();
         remove_action('a3rev_loop_after', 'responsi_pagination', 10, 0);
         if (isset($wp_query->query_vars['taxonomy']) && 'portfolio_cat' == $wp_query->query_vars['taxonomy']) {
             a3_portfolio_get_template('taxonomy-portfolio_cat.php', array('number_columns' => $number_columns));
         } elseif (isset($wp_query->query_vars['taxonomy']) && 'portfolio_tag' == $wp_query->query_vars['taxonomy']) {
             a3_portfolio_get_template('taxonomy-portfolio_tag.php', array('number_columns' => $number_columns));
         } else {
             a3_portfolio_get_template('archive-portfolio.php', array('number_columns' => $number_columns));
         }
         $is_single = false;
         $output .= ob_get_clean();
         list($wp_query, $portfolio_query) = array($portfolio_query, $wp_query);
         // swap the wpsc_query objects back
         if ($is_single == false) {
             $GLOBALS['post'] = $wp_query->post;
         }
         $wp_query->current_post = $wp_query->post_count;
         return preg_replace("/(<p>)*\\[portfoliopage\\](<\\/p>)*/", $output, $content);
     } elseif (is_archive() && is_viewing_portfolio_taxonomy()) {
         remove_filter('the_content', 'wpautop');
         return $this->portfolio_category_template('[portfoliopage]');
     } else {
         return $content;
     }
 }