Ejemplo n.º 1
0
global $vc_teaser_box;
$posts_query = $el_class = $args = $my_query = $speed = $mode = $swiper_options = '';
$content = $link = $layout = $thumb_size = $link_target = $slides_per_view = $wrap = '';
$autoplay = $hide_pagination_control = $hide_prev_next_buttons = $title = '';
$posts = array();
extract(shortcode_atts(array('el_class' => '', 'posts_query' => '', 'mode' => 'horizontal', 'speed' => '5000', 'slides_per_view' => '1', 'swiper_options' => '', 'wrap' => '', 'autoplay' => 'no', 'hide_pagination_control' => '', 'hide_prev_next_buttons' => '', 'layout' => 'title,thumbnail,excerpt', 'link_target' => '', 'thumb_size' => 'thumbnail', 'partial_view' => '', 'title' => ''), $atts));
global $vc_posts_grid_exclude_id;
$vc_posts_grid_exclude_id[] = get_the_ID();
// fix recursive nesting
if (is_array($posts_query)) {
    $posts_query['post_status'] = 'publish';
} else {
    $posts_query .= '|post_status:publish';
}
list($args, $my_query) = vc_build_loop_query($posts_query, get_the_ID());
$teaser_blocks = vc_sorted_list_parse_value($layout);
/** @var $my_query WP_Query */
while ($my_query->have_posts()) {
    $my_query->the_post();
    // Get post from query
    if (in_array(get_the_ID(), $vc_posts_grid_exclude_id)) {
        continue;
    }
    $post = new stdClass();
    // Creating post object.
    $post->id = get_the_ID();
    $post->link = get_permalink($post->id);
    $post->post_type = get_post_type();
    if ($vc_teaser_box->getTeaserData('enable', $post->id) === '1') {
        $post->custom_user_teaser = true;
        $data = $vc_teaser_box->getTeaserData('data', $post->id);
         $typeLayout = $post_blocks;
         break;
     case 'page':
         $typeLayout = $page_blocks;
         break;
     case 'portfolio':
         $typeLayout = $portfolio_blocks;
         break;
     case 'product':
         $typeLayout = $product_blocks;
         $block_data['product'] = true;
         $block_classes[] = 'tmb-woocommerce';
         break;
 }
 if (isset($item_prop['single_layout'])) {
     $typeLayout = uncode_flatArray(vc_sorted_list_parse_value($item_prop['single_layout']));
 }
 $single_text = isset($item_prop['single_text']) ? $item_prop['single_text'] : $general_text;
 if ($index_type !== 'carousel') {
     $single_width = isset($item_prop['single_width']) ? $item_prop['single_width'] : $general_width;
     $block_classes[] = 'tmb-iso-w' . $single_width;
 } else {
     $single_width = 12 / $carousel_lg;
 }
 $single_height = isset($item_prop['single_height']) ? $item_prop['single_height'] : $general_height;
 $block_classes[] = 'tmb-iso-h' . $single_height;
 $images_size = isset($item_prop['images_size']) ? $item_prop['images_size'] : $general_images_size;
 $single_back_color = isset($item_prop['single_back_color']) ? $item_prop['single_back_color'] : $general_back_color;
 //$single_no_background = (isset($item_prop['single_no_background'])) ? $item_prop['single_no_background'] : $general_no_background;
 $single_shape = isset($item_prop['single_shape']) ? $item_prop['single_shape'] : $general_shape;
 if ($single_shape !== '') {
    }
    if ($lbox_deep !== '') {
        $lightbox_classes['data-deep'] = $media;
    }
    if ($lbox_no_tmb !== '') {
        $lightbox_classes['data-notmb'] = true;
    }
    if ($lbox_no_arrows !== '') {
        $lightbox_classes['data-noarr'] = true;
    }
    if (count($lightbox_classes) === 0) {
        $lightbox_classes['data-active'] = true;
    }
}
if ($advanced === 'yes') {
    $layout = uncode_flatArray(vc_sorted_list_parse_value($media_items));
    if ($media_lightbox !== 'yes') {
        $lightbox_classes = array();
        if (!isset($media_link['url']) || $media_link['url'] === '') {
            $block_data['link_class'] = 'inactive-link';
            $block_data['link'] = '#';
        } else {
            if ($media_link !== '') {
                $block_data['link']['url'] = $a_href;
                $block_data['link']['target'] = $a_target;
            }
        }
    }
    if (isset($layout['media'][0]) && $layout['media'][0] === 'poster') {
        $block_data['poster'] = true;
    }
Ejemplo n.º 4
0
        public function render($atts, $content = null)
        {
            global $vc_teaser_box;
            $grid_link = $grid_layout_mode = $title = $filter = $shows_date_class = '';
            $posts = array();
            extract(shortcode_atts(array('title' => '', 'grid_columns_count' => 4, 'grid_teasers_count' => 8, 'grid_layout' => 'title,thumbnail,text', 'grid_link_target' => '_self', 'filter' => '', 'grid_thumb_size' => 'thumbnail', 'grid_layout_mode' => 'fitRows', 'el_class' => '', 'teaser_width' => '12', 'orderby' => null, 'order' => 'DESC', 'loop' => '', 'date_format' => 'M j, Y'), $atts));
            $this->resetTaxonomies();
            if (empty($loop)) {
                return;
            }
            $this->getLoop($loop);
            $my_query = $this->query;
            $args = $this->loop_args;
            $teaser_blocks = vc_sorted_list_parse_value($grid_layout);
            while ($my_query->have_posts()) {
                $my_query->the_post();
                // Get post from query
                $post = new stdClass();
                // Creating post object.
                $post->id = get_the_ID();
                $post->link = get_permalink($post->id);
                if ($vc_teaser_box->getTeaserData('enable', $post->id) === '1') {
                    $post->custom_user_teaser = true;
                    $data = $vc_teaser_box->getTeaserData('data', $post->id);
                    if (!empty($data)) {
                        $data = json_decode($data);
                    }
                    $post->bgcolor = $vc_teaser_box->getTeaserData('bgcolor', $post->id);
                    $post->custom_teaser_blocks = array();
                    $post->title_attribute = the_title_attribute('echo=0');
                    if (!empty($data)) {
                        foreach ($data as $block) {
                            $settings = array();
                            if ($block->name === 'title') {
                                $post->title = the_title("", "", false);
                            } elseif ($block->name === 'image') {
                                if ($block->image === 'featured') {
                                    $post->thumbnail_data = $this->getPostThumbnail($post->id, $grid_thumb_size);
                                } elseif (!empty($block->image)) {
                                    $post->thumbnail_data = wpb_getImageBySize(array('attach_id' => (int) $block->image, 'thumb_size' => $grid_thumb_size));
                                } else {
                                    $post->thumbnail_data = false;
                                }
                                $post->thumbnail = $post->thumbnail_data && isset($post->thumbnail_data['thumbnail']) ? $post->thumbnail_data['thumbnail'] : '';
                                $post->image_link = empty($video) && $post->thumbnail && isset($post->thumbnail_data['p_img_large'][0]) ? $post->thumbnail_data['p_img_large'][0] : $video;
                            } elseif ($block->name === 'text') {
                                if ($block->mode === 'custom') {
                                    $settings[] = 'text';
                                    $post->content = $block->text;
                                } elseif ($block->mode === 'excerpt') {
                                    $settings[] = $block->mode;
                                    $post->excerpt = $this->getPostExcerpt();
                                } else {
                                    $settings[] = $block->mode;
                                    $post->content = $this->getPostContent();
                                }
                            }
                            if (isset($block->link)) {
                                if ($block->link === 'post') {
                                    $settings[] = 'link_post';
                                } elseif ($block->link === 'big_image') {
                                    $settings[] = 'link_image';
                                } else {
                                    $settings[] = 'no_link';
                                }
                                $settings[] = '';
                            }
                            $post->custom_teaser_blocks[] = array($block->name, $settings);
                        }
                    }
                } else {
                    $post->custom_user_teaser = false;
                    $post->title = the_title("", "", false);
                    $post->title_attribute = the_title_attribute('echo=0');
                    $post->post_type = get_post_type();
                    $post->content = $this->getPostContent();
                    $post->excerpt = $this->getPostExcerpt();
                    $post->thumbnail_data = $this->getPostThumbnail($post->id, $grid_thumb_size);
                    $post->thumbnail = $post->thumbnail_data && isset($post->thumbnail_data['thumbnail']) ? $post->thumbnail_data['thumbnail'] : '';
                    $video = get_post_meta($post->id, "_p_video", true);
                    $post->imae_link = empty($video) && $post->thumbnail && isset($post->thumbnail_data['p_img_large'][0]) ? $post->thumbnail_data['p_img_large'][0] : $video;
                    $post->comment_count = get_comments_number($post->id);
                    $posttags = get_the_tags($post->id);
                    $tags = '';
                    if ($posttags) {
                        foreach ($posttags as $tag) {
                            $tags .= '<a href="' . get_tag_link($tag->term_id) . '">' . $tag->name . '</a> ';
                        }
                        $tags .= ' |';
                    }
                    $post->tags = $tags;
                }
                $post->categories_css = $this->getCategoriesCss($post->id);
                $posts[] = $post;
            }
            wp_reset_query();
            /**
             * Css classes for grid and teasers.
             * {{
             */
            $post_types_teasers = '';
            if (!empty($args['post_type']) && is_array($args['post_type'])) {
                foreach ($args['post_type'] as $post_type) {
                    $post_types_teasers .= 'wpb_teaser_grid_' . $post_type . ' ';
                }
            }
            $el_class = $this->getExtraClass($el_class);
            $li_span_class = $this->spanClass($grid_columns_count);
            $css_class = 'wpb_row wpb_teaser_grid wpb_content_element scp_teaser_grid_custom ' . $this->getMainCssClass($filter) . ' columns_count_' . $grid_columns_count . ' columns_count_' . $grid_columns_count . ' ' . $post_types_teasers . $el_class;
            // Custom css class from shortcode attributes
            // }}
            $this->setLinktarget($grid_link_target);
            ob_start();
            ?>
			<div
				class="<?php 
            echo apply_filters(VC_SHORTCODE_CUSTOM_CSS_FILTER_TAG, $css_class, $this->settings['base'], $atts);
            ?>
">
				<div class="wpb_wrapper">
					<?php 
            echo wpb_widget_title(array('title' => $title, 'extraclass' => 'wpb_teaser_grid_heading'));
            ?>
					<div class="teaser_grid_container">
						<?php 
            if ($filter === 'yes' && !empty($this->filter_categories)) {
                $categories_array = $this->getFilterCategories();
                ?>
							<ul class="categories_filter vc_col-sm-12 vc_clearfix">
								<li class="active"><a href="#"
								                      data-filter="*"><?php 
                _e('All', $this->textdomain);
                ?>
</a>
								</li>
								<?php 
                foreach ($this->getFilterCategories() as $cat) {
                    ?>
									<li><a href="#"
									       data-filter=".grid-cat-<?php 
                    echo $cat->term_id;
                    ?>
"><?php 
                    echo esc_attr($cat->name);
                    ?>
</a>
									</li>
								<?php 
                }
                ?>
							</ul>
							<div class="vc_clearfix"></div>
						<?php 
            }
            ?>
						<ul class="wpb_thumbnails wpb_thumbnails-fluid vc_clearfix"
						    data-layout-mode="<?php 
            echo $grid_layout_mode;
            ?>
">
							<?php 
            /**
             * Enqueue js/css
             * {{
             */
            wp_enqueue_style('isotope-css');
            wp_enqueue_script('isotope');
            ?>
							<?php 
            if (count($posts) > 0) {
                ?>
								<?php 
                foreach ($posts as $post) {
                    ?>
									<?php 
                    $blocks_to_build = $post->custom_user_teaser === true ? $post->custom_teaser_blocks : $teaser_blocks;
                    $block_style = isset($post->bgcolor) ? ' style="background-color: ' . $post->bgcolor . '"' : '';
                    ?>
									<li
										class="isotope-item <?php 
                    echo apply_filters(VC_SHORTCODE_CUSTOM_CSS_FILTER_TAG, $li_span_class, 'vc_teaser_grid_li', $atts) . $post->categories_css;
                    ?>
"<?php 
                    echo $block_style;
                    ?>
>

										<div class="isotope-inner<?php 
                    echo $shows_date_class;
                    ?>
">
											<?php 
                    foreach ($blocks_to_build as $block_data) {
                        ?>

												<?php 
                        if (file_exists(SCP_PLUGIN_PATH . 'vc-addons/posts-grid-custom/templates/_item.php')) {
                            ?>
													<?php 
                            include SCP_PLUGIN_PATH . 'vc-addons/posts-grid-custom/templates/_item.php';
                            ?>
												<?php 
                        }
                        ?>
											<?php 
                    }
                    ?>
										</div>
									</li> <?php 
                    echo $this->endBlockComment('single teaser');
                    ?>
								<?php 
                }
                ?>
							<?php 
            } else {
                ?>
								<li class="<?php 
                echo $this->spanClass(1);
                ?>
"><?php 
                _e("Nothing found.", "js_composer");
                ?>
</li>
							<?php 
            }
            ?>
						</ul>
					</div>
				</div> <?php 
            echo $this->endBlockComment('.wpb_wrapper');
            ?>
				<div class="clear"></div>
			</div> <?php 
            echo $this->endBlockComment('.wpb_teaser_grid');
            ?>

		<?php 
            $content = ob_get_clean();
            return $content;
        }