function ewf_projects_isotope($atts, $content, $filters = true, $wrapper = true, $return_array = false)
{
    global $post;
    $options = shortcode_atts(array("unlimited" => true, "items" => 6, "start" => 0, "service" => null, "exclude" => null, "loaditems" => 6), $atts);
    extract($options);
    $src = null;
    #	Build WP Query
    #
    $query_projects = ewf_hlp_queryBuilder($options);
    $wp_query_project = new WP_Query($query_projects);
    #	Load items using WP Query
    #
    $count_items = 0;
    while ($wp_query_project->have_posts()) {
        $wp_query_project->the_post();
        $image_large_preview = null;
        $image_extra_large_preview = null;
        $count_items++;
        #	Get project terms
        #
        $project_terms = wp_get_post_terms($post->ID, EWF_PROJECTS_TAX_SERVICES);
        $project_terms_src = null;
        foreach ($project_terms as $key => $service) {
            $project_terms_src .= $service->slug . ' ';
        }
        $src .= '<li data-id="' . $post->ID . '" class="item ' . $project_terms_src . '"><div class="portfolio-item"><div class="portfolio-item-preview">';
        #	Get the featured image
        #
        $image_id = get_post_thumbnail_id();
        if ($image_id) {
            $image_large_preview = wp_get_attachment_image_src($image_id, 'project-preview-medium');
            $image_extra_large_preview = wp_get_attachment_image_src($image_id, 'large');
            $src .= '<a href="#"><img src="' . $image_large_preview[0] . '" width="313" height="320" alt="" /></a>';
        }
        $src .= '<div class="portfolio-item-overlay">';
        $src .= '<div class="portfolio-item-description">
							<h4>' . get_the_title() . '<span></span></h4>
							<p>' . get_the_excerpt() . '</p>
						</div>';
        $src .= '<div class="portfolio-item-overlay-actions">
							<a href="' . $image_extra_large_preview[0] . '" class="portfolio-item-zoom magnificPopup-gallery"><i class="fa fa-search-plus"></i></a>
							<a href="' . get_permalink() . '" class="portfolio-item-link"><i class="fa fa-angle-right"></i></a>
						</div>';
        $src .= '</div>';
        $src .= '</div></div></li>';
        if ($return_array) {
            if ($count_items == $loaditems) {
                break;
            }
        } else {
            if ($count_items == $items) {
                break;
            }
        }
    }
    wp_reset_query();
    #	Display portfolio
    #
    if ($wrapper) {
        $src = '<ul class="portfolio-items fixed">' . $src . '</ul>';
        $src .= '<a href="#" class="portfolio-load-more" data-load-items="' . $loaditems . '" ><i class="fa fa-repeat"></i> Load more</a>';
    }
    #	Attach filters
    #
    if ($filters == true) {
        $filter_terms = get_terms(EWF_PROJECTS_TAX_SERVICES);
        $filter_src = null;
        $filter_items = array('all' => 0);
        if (is_array($filter_terms)) {
            $filter_src .= '<ul>';
            $filter_src .= '<li><a class="active" href="#" data-items="' . $wp_query_project->found_posts . '" data-filter="*" data-term="all" >All</a></li>';
            foreach ($filter_terms as $key => $service) {
                $filter_src .= '<li><a data-term="' . $service->slug . '" data-items="' . intval($service->count) . '" data-filter=".' . $service->slug . '" href="#">' . $service->name . '</a></li>';
            }
            $filter_src .= '</ul>';
            $src = '<div class="portfolio-filter">' . $filter_src . '</div><!-- end .portfolio-filter -->' . $src;
        }
    }
    if ($return_array) {
        return array('source' => $src);
    }
    return $src;
}
Exemplo n.º 2
0
function ewf_projects_isogrid($atts, $content, $filters = true, $wrapper = true, $return_array = false)
{
    global $post;
    $options = shortcode_atts(array("unlimited" => true, "title" => null, "button_title" => __('Load more', 'bitpub'), "button_alignment" => 'text-center', "items" => 6, "start" => 0, "display" => 'all', "all_label" => __('All', 'bitpub'), "load_more" => 'true', "style" => 'ewf-portfolio-style-1', "service" => null, "exclude" => null, "loaditems" => 3, "columns" => 3, 'css' => null), $atts);
    extract($options);
    $class_extra = ' ' . $css;
    $src = null;
    //	Build WP Query
    //
    $query_projects = ewf_hlp_queryBuilder($options);
    $wp_query_project = new WP_Query($query_projects);
    $_ewf_span = 3;
    switch ($columns) {
        case '3':
            $_ewf_span = '4';
            break;
        case '4':
            $_ewf_span = '3';
            break;
    }
    if (get_option(EWF_SETUP_THNAME . "_debug_mode", 'false') == 'true' && !$return_array) {
        echo '<pre>';
        print_r($atts);
        print_r($options);
        print_r($query_projects);
        echo '<br/>Items:' . $items;
        echo '</pre>';
    }
    //	Load items using WP Query
    //
    $count_items = 0;
    while ($wp_query_project->have_posts()) {
        $wp_query_project->the_post();
        $image_large_preview = null;
        $image_extra_large_preview = null;
        $count_items++;
        //	Get project terms
        //
        $project_terms = wp_get_post_terms($post->ID, EWF_PROJECTS_TAX_SERVICES);
        $project_terms_src = null;
        $project_services = null;
        foreach ($project_terms as $key => $service) {
            $project_terms_src .= $service->slug . ' ';
            if ($project_services == null) {
                $project_services .= $service->name;
                // break; // Stop at the first category
            } else {
                $project_services .= ', ' . $service->name;
            }
        }
        //	Get the featured image
        //
        $project_image_id = get_post_thumbnail_id();
        $project_image_src = null;
        if ($project_image_id) {
            $image_large_preview = wp_get_attachment_image_src($project_image_id, 'ewf-portfolio-filtrable');
            $image_extra_large_preview = wp_get_attachment_image_src($project_image_id, 'large');
            $project_image_src = '<img src="' . $image_large_preview[0] . '" alt="" />';
        }
        ob_start();
        switch ($style) {
            //	Style Isotope Grid
            //
            case 'ewf-portfolio-style-1':
                echo '<div data-id="' . $post->ID . '" class="item ' . $project_terms_src . '" data-terms="' . $project_services . '">
						
						<div class="portfolio-item">
							
							<div class="portfolio-item-preview">
								 ' . $project_image_src . '
								
								<div class="portfolio-item-overlay">
											
									<div class="portfolio-item-description">
										
										<h5><a href="' . get_permalink() . '">' . get_the_title() . '</a></h5>
										
										<p>' . get_the_excerpt() . '</p>
										
										<a class="btn" href="' . get_permalink() . '">' . __('View project', 'bitpub') . '</a>
										
									</div><!-- end .portfolio-item-description -->									
								
								</div>
								
							</div><!-- end .portfolio-item-preview -->   

						</div> <!-- end .portfolio-item -->
												
					</div>';
                break;
                // <a class="portfolio-item-zoom magnificPopup-gallery" href="'.$image_extra_large_preview[0].'"> </a>
                // <h5>'.$project_services.'</h5>
                // <div class="portfolio-item-overlay-actions">
                // <a class="portfolio-item-zoom magnificPopup-gallery" href="'.$image_extra_large_preview[0].'"><span>+</span></a>
                // <a class="portfolio-item-link" href="'.get_permalink().'"><span>&gt;</span></a>
                // </div><!-- end .portfolio-item-overlay-actions -->
        }
        $src .= ob_get_clean();
        if ($return_array) {
            if ($count_items == $loaditems) {
                break;
            }
        } else {
            if ($count_items == $items) {
                break;
            }
        }
    }
    wp_reset_postdata();
    //	Display portfolio
    //
    if ($wrapper) {
        $src = '<div class="wpb_row vc_row"><div class="span12"><div class="portfolio-items portfolio-columns tree-cols portfolio-isotope gutter columns-' . $columns . ' fixed' . $class_extra . '" data-display="' . $display . '" data-style="' . $style . '">' . $src . '</div></div></div>';
        if ($load_more == 'true') {
            $src .= '<div class="vc_row wpb_row">
							<div class="span12 ' . $button_alignment . '">
								<a href="#" class="btn btn-large portfolio-load-more" data-display="' . $display . '" data-style="' . $style . '"  data-load-items="' . $loaditems . '"><span>' . $button_title . '</span></a>
							</div><!-- end .span12 -->
						</div>';
        }
        //	Attach filters & title
        //
        $src_header = null;
        $filter_src = null;
        // if ($display )
        if ($filters == true) {
            $filter_terms = get_terms(EWF_PROJECTS_TAX_SERVICES);
            $filter_items = array('all' => 0);
            $filter_css_class = null;
            if (is_array($filter_terms)) {
                $filter_src .= '<ul>';
                $filter_src .= '<li><a class="active" href="#" data-items="' . $wp_query_project->found_posts . '" data-filter="*" data-term="all" >' . $all_label . '</a></li>';
                foreach ($filter_terms as $key => $service) {
                    $filter_src .= '<li><a data-term="' . $service->slug . '" data-items="' . intval($service->count) . '" data-filter=".' . $service->slug . '" href="#">' . $service->name . '</a></li>';
                }
                $filter_src .= '</ul>';
            }
        }
        $display_title = null;
        $display_filter = null;
        $show_title = false;
        $show_filter = false;
        if ($display != 'none') {
            switch ($display) {
                case 'all':
                    $display_title = '<h2>' . $title . '</h2>';
                    $display_filter = '<div class="portfolio-filter">' . $filter_src . '</div><!-- end .portfolio-filter -->';
                    $show_title = true;
                    $show_filter = true;
                    break;
                case 'title':
                    $display_title = '<h2>' . $title . '</h2>';
                    $display_filter = '<div class="portfolio-filter portfolio-filter-hidden">' . $filter_src . '</div><!-- end .portfolio-filter -->';
                    $show_title = true;
                    $show_filter = false;
                    break;
                case 'title-center':
                    $display_title = '<h2 class="text-center">' . $title . '</h2>';
                    $display_filter = '<div class="portfolio-filter portfolio-filter-hidden">' . $filter_src . '</div><!-- end .portfolio-filter -->';
                    $show_title = true;
                    $show_filter = false;
                    break;
                case 'no-filters':
                    $display_title = null;
                    $display_filter = '<div class="portfolio-filter portfolio-filter-hidden">' . $filter_src . '</div><!-- end .portfolio-filter -->';
                    $show_title = false;
                    $show_filter = false;
                    break;
                case 'filters-left':
                    $display_title = null;
                    $display_filter = '<div class="portfolio-filter text-left">' . $filter_src . '</div><!-- end .portfolio-filter -->';
                    $show_title = false;
                    $show_filter = true;
                    break;
                case 'filters-right':
                    $display_title = null;
                    $display_filter = '<div class="portfolio-filter text-right">' . $filter_src . '</div><!-- end .portfolio-filter -->';
                    $show_title = false;
                    $show_filter = true;
                    break;
                case 'filters':
                    $display_title = null;
                    $display_filter = '<div class="portfolio-filter">' . $filter_src . '</div><!-- end .portfolio-filter -->';
                    $show_title = false;
                    $show_filter = true;
                    break;
                case 'filters-center':
                    $display_title = null;
                    $display_filter = '<div class="portfolio-filter text-center">' . $filter_src . '</div><!-- end .portfolio-filter -->';
                    $show_title = false;
                    $show_filter = true;
                    break;
                case 'none':
                    $display_title = null;
                    $display_filter = '<div class="portfolio-filter portfolio-filter-hidden">' . $filter_src . '</div><!-- end .portfolio-filter -->';
                    $show_title = false;
                    $show_filter = false;
                    break;
            }
        }
        if ($show_title || $show_filter) {
            $src_header = '<div class="vc_row wpb_row title-filter" data-display="' . $display . '">';
            if ($show_title && !$show_filter || !$show_title && $show_filter) {
                $src_header .= '<div class="span12">';
                $src_header .= $display_title;
                $src_header .= $display_filter;
                $src_header .= '</div>';
            } else {
                $src_header .= '<div class="span3">';
                $src_header .= $display_title;
                $src_header .= '</div>';
                $src_header .= '<div class="span9 text-right">';
                $src_header .= $display_filter;
                $src_header .= '</div>';
            }
            $src_header .= '</div>';
        } elseif (!$show_title || !$show_filter) {
            $src_header = '<div class="vc_row wpb_row title-filter" data-display="' . $display . '" style="background:Red;">';
            $src_header .= $display_filter;
            $src_header .= '</div>';
        } else {
            $src_header = '<div class="vc_row wpb_row title-filter no-all" data-display="' . $display . '">' . $display_filter . '</div>';
        }
    }
    if ($return_array) {
        return array('source' => $src);
    }
    return '<div class="ewf-portfolio-isogrid-wrapper">' . $src_header . $src . '</div>';
}