Example #1
0
 /**
  * Render the parent shortcode
  * @param  array $args	 Shortcode paramters
  * @param  string $content Content between shortcode
  * @return string		  HTML output
  */
 function render($args, $content = '')
 {
     global $smof_data;
     $defaults = FusionCore_Plugin::set_shortcode_defaults(array('class' => '', 'id' => '', 'boxed_text' => 'unboxed', 'cat_slug' => '', 'column_spacing' => '12', 'columns' => 3, 'exclude_cats' => '', 'excerpt_length' => '', 'excerpt_words' => '15', 'filters' => 'yes', 'layout' => 'carousel', 'number_posts' => 8, 'picture_size' => 'fixed', 'animation_direction' => 'left', 'animation_speed' => '', 'animation_type' => ''), $args);
     $defaults['filters'] == 'yes' || $defaults['filters'] == 'true' ? $defaults['filters'] = true : ($defaults['filters'] = false);
     if ($defaults['column_spacing'] === '0') {
         $defaults['column_spacing'] = '0.0';
     }
     extract($defaults);
     self::$args = $defaults;
     // set the image size for the slideshow
     $this->set_image_size();
     if ($excerpt_length || $excerpt_length === '0') {
         $excerpt_words = $excerpt_length;
     }
     $args = array('post_type' => 'avada_portfolio', 'paged' => 1, 'posts_per_page' => $number_posts, 'has_password' => false);
     if (self::$args['exclude_cats']) {
         $cats_to_exclude = explode(',', self::$args['exclude_cats']);
     } else {
         $cats_to_exclude = array();
     }
     if (self::$args['cat_slug']) {
         $cat_slugs = explode(',', self::$args['cat_slug']);
     } else {
         $cat_slugs = array();
     }
     if (isset($cats_to_exclude) && $cats_to_exclude) {
         $args['tax_query'] = array(array('taxonomy' => 'portfolio_category', 'field' => 'slug', 'terms' => $cats_to_exclude, 'operator' => 'NOT IN'));
         if ($cat_slugs) {
             $args['tax_query']['relation'] = 'AND';
             $args['tax_query'][] = array('taxonomy' => 'portfolio_category', 'field' => 'slug', 'terms' => $cat_slugs, 'operator' => 'IN');
         }
     } else {
         if ($cat_slugs) {
             $args['tax_query'] = array(array('taxonomy' => 'portfolio_category', 'field' => 'slug', 'terms' => $cat_slugs));
         }
     }
     wp_reset_query();
     $recent_works = new WP_Query($args);
     $works = '';
     while ($recent_works->have_posts()) {
         $recent_works->the_post();
         $rich_snippets = $entry_title = $item_classes = $terms = $image_wrapper = $item_content = $buttons = $url = '';
         // set classes, link and target for the image extras content
         $this->set_image_extras(get_the_ID());
         if ($layout == 'carousel') {
             if (has_post_thumbnail()) {
                 if ($smof_data['image_rollover']) {
                     $image = get_the_post_thumbnail(get_the_ID(), $this->image_size);
                     $image .= $this->get_image_extras(get_the_ID());
                 } else {
                     $image = sprintf('<a href="%s">%s</a>', get_permalink(get_the_ID()), get_the_post_thumbnail(get_the_ID(), $this->image_size));
                 }
                 $works .= sprintf('<li>%s<div %s>%s</div></li>', avada_render_rich_snippets_for_pages(), FusionCore_Plugin::attributes('recentworks-shortcode-img-div'), $image);
             }
         } else {
             if (has_post_thumbnail() || get_post_meta(get_the_ID(), 'pyre_video', true)) {
                 $item_classes = 'portfolio-' . $boxed_text . ' ';
                 $item_cats = get_the_terms(get_the_ID(), 'portfolio_category');
                 if ($item_cats) {
                     foreach ($item_cats as $item_cat) {
                         $item_classes .= $item_cat->slug . ' ';
                     }
                 }
                 if ($column_spacing) {
                     $item_classes .= ' col-spacing';
                 }
                 $permalink = get_permalink();
                 if (has_post_thumbnail()) {
                     $thumbnail = wp_get_attachment_image_src(get_post_thumbnail_id(get_the_ID()), $this->image_size);
                     $src = $thumbnail[0];
                     $alt = get_post_meta(get_post_thumbnail_id(get_the_ID()), '_wp_attachment_image_alt', true);
                     if ($smof_data['image_rollover']) {
                         $image = sprintf('<img %s />', FusionCore_Plugin::attributes('recentworks-shortcode-img', array('src' => $src, 'alt' => $alt)));
                         $image .= $this->get_image_extras(get_the_ID());
                     } else {
                         $image = sprintf('<a href="%s"><img %s /></a>', $permalink, FusionCore_Plugin::attributes('recentworks-shortcode-img', array('src' => $src, 'alt' => $alt)));
                     }
                     $image_wrapper = sprintf('<div %s>%s</div>', FusionCore_Plugin::attributes('recentworks-shortcode-img-div'), $image);
                 }
                 if ($layout == 'grid-with-excerpts') {
                     $rich_snippets = avada_render_rich_snippets_for_pages(false);
                     if (!$smof_data['disable_date_rich_snippet_pages']) {
                         $entry_title = 'entry-title';
                     }
                     $stripped_content = strip_shortcodes(tf_content($excerpt_words, $smof_data['strip_html_excerpt']));
                     if ($columns == 1) {
                         if (get_post_meta(get_the_ID(), 'pyre_project_url', true)) {
                             $url = sprintf('<a href="%s" %s>%s</a>', get_post_meta(get_the_ID(), 'pyre_project_url', true), FusionCore_Plugin::attributes('fusion-button medium default'), __('View Project', 'fusion-core'));
                         }
                         $buttons = sprintf('<div %s><a href="%s" %s>%s</a>%s</div>', FusionCore_Plugin::attributes('buttons'), $permalink, FusionCore_Plugin::attributes('fusion-button medium default'), __('Learn More', 'fusion-core'), $url);
                     }
                     $item_content = sprintf('<div %s><h2 class="%s"><a href="%s">%s</a></h2><h4>%s</h4>%s</div>', FusionCore_Plugin::attributes('portfolio-content'), $entry_title, $permalink, get_the_title(), get_the_term_list(get_the_ID(), 'portfolio_category', '', ', ', ''), $stripped_content);
                 } else {
                     $rich_snippets = avada_render_rich_snippets_for_pages();
                 }
                 $works .= sprintf('<div %s><div class="portfolio-item-wrapper">%s%s%s</div></div>', FusionCore_Plugin::attributes('portfolio-item ' . $item_classes), $rich_snippets, $image_wrapper, $item_content);
             }
         }
     }
     wp_reset_query();
     if ($layout == 'carousel') {
         $html = sprintf('<div %s><div %s><div %s><ul>%s</ul></div><div %s><span %s></span><span %s></span></div></div></div>', FusionCore_Plugin::attributes('recentworks-shortcode'), FusionCore_Plugin::attributes('es-carousel-wrapper fusion-carousel-large'), FusionCore_Plugin::attributes('es-carousel'), $works, FusionCore_Plugin::attributes('es-nav'), FusionCore_Plugin::attributes('es-nav-prev'), FusionCore_Plugin::attributes('es-nav-next'));
     } else {
         $portfolio_category = get_terms('portfolio_category');
         $filter = '';
         $filter_wrapper = '';
         $styles = '';
         if ($portfolio_category && $filters == true) {
             $filter = sprintf('<li %s><a %s>%s</a></li>', FusionCore_Plugin::attributes('active'), FusionCore_Plugin::attributes('recentworks-shortcode-filter-link', array('data-filter' => '*')), __('All', 'fusion-core'));
             foreach ($portfolio_category as $portfolio_cat) {
                 if (!in_array($portfolio_cat->slug, $cats_to_exclude)) {
                     if (isset(self::$args['cat_slug']) && self::$args['cat_slug']) {
                         $cat_slug = preg_replace('/\\s+/', '', self::$args['cat_slug']);
                         $cat_slug = explode(',', $cat_slug);
                         if (in_array($portfolio_cat->slug, $cat_slug)) {
                             $filter .= sprintf('<li><a %s>%s</a></li>', FusionCore_Plugin::attributes('recentworks-shortcode-filter-link', array('data-filter' => '.' . $portfolio_cat->slug)), $portfolio_cat->name);
                         }
                     } else {
                         $filter .= sprintf('<li><a %s>%s</a></li>', FusionCore_Plugin::attributes('recentworks-shortcode-filter-link', array('data-filter' => '.' . $portfolio_cat->slug)), $portfolio_cat->name);
                     }
                 }
             }
             $filter_wrapper = sprintf('<ul %s>%s</ul>', FusionCore_Plugin::attributes('portfolio-tabs'), $filter);
         }
         if ($column_spacing) {
             $styles = sprintf('<style type="text/css">.fusion-recent-works-%s .portfolio-wrapper .col-spacing{padding:%spx;}</style>', $this->recent_works_counter, $column_spacing / 2);
         }
         $html = sprintf('<div %s>%s%s<div %s>%s</div></div>', FusionCore_Plugin::attributes('recentworks-shortcode'), $filter_wrapper, $styles, FusionCore_Plugin::attributes('recentworks-shortcode-portfolio-wrapper'), $works);
     }
     $this->recent_works_counter++;
     return $html;
 }
                echo ' class="entry-title"';
            }
            ?>
><a href="<?php 
            echo $permalink;
            ?>
"><?php 
            the_title();
            ?>
</a></h2>
						<h4><?php 
            echo get_the_term_list($post->ID, 'portfolio_category', '', ', ', '');
            ?>
</h4>
						<?php 
            echo avada_render_rich_snippets_for_pages(false);
            ?>
						<?php 
            if ($smof_data['portfolio_text_layout']) {
                ?>
						<div class="content-sep"></div>
						<?php 
            }
            ?>
						<div class="post-content">
						<?php 
            if (get_post_meta($current_page_id, 'pyre_portfolio_excerpt', true)) {
                $excerpt_length = get_post_meta($current_page_id, 'pyre_portfolio_excerpt', true);
            } else {
                $excerpt_length = $smof_data['excerpt_length_portfolio'];
            }
 /**
  * Render the parent shortcode
  * @param  array $args	 Shortcode paramters
  * @param  string $content Content between shortcode
  * @return string		  HTML output
  */
 function render($args, $content = '')
 {
     global $smof_data;
     $defaults = FusionCore_Plugin::set_shortcode_defaults(array('class' => '', 'id' => '', 'autoplay' => 'no', 'boxed_text' => 'unboxed', 'cat_slug' => '', 'carousel_layout' => 'title_on_rollover', 'column_spacing' => '12', 'columns' => 3, 'exclude_cats' => '', 'excerpt_length' => '15', 'excerpt_words' => '', 'filters' => 'yes', 'layout' => 'carousel', 'mouse_scroll' => 'no', 'number_posts' => 8, 'offset' => '', 'picture_size' => 'fixed', 'scroll_items' => '', 'show_nav' => 'yes', 'strip_html' => 'yes', 'animation_direction' => 'left', 'animation_speed' => '', 'animation_type' => ''), $args);
     if ($defaults['column_spacing'] === '0') {
         $defaults['column_spacing'] = '0.0';
     }
     if ($defaults['strip_html'] == 'yes') {
         $defaults['strip_html'] = TRUE;
     }
     extract($defaults);
     self::$args = $defaults;
     // Set the image size for the slideshow
     $this->set_image_size();
     // As $excerpt_words is deprecated, only use it when explicity set
     if ($excerpt_words || $excerpt_words === '0') {
         $excerpt_length = $excerpt_words;
     }
     // Transform $cat_slugs to array
     if (self::$args['cat_slug']) {
         $cat_slugs = preg_replace('/\\s+/', '', self::$args['cat_slug']);
         $cat_slugs = explode(',', self::$args['cat_slug']);
     } else {
         $cat_slugs = array();
     }
     // Transform $cats_to_exclude to array
     if (self::$args['exclude_cats']) {
         $cats_to_exclude = preg_replace('/\\s+/', '', self::$args['cat_slug']);
         $cats_to_exclude = explode(',', self::$args['exclude_cats']);
     } else {
         $cats_to_exclude = array();
     }
     // Initialize the query array
     $args = array('post_type' => 'avada_portfolio', 'paged' => 1, 'posts_per_page' => $number_posts, 'has_password' => false);
     if ($defaults['offset']) {
         $args['offset'] = $offset;
     }
     // Check if the are categories that should be excluded
     if (!empty($cats_to_exclude)) {
         // Exclude the correct cats from tax_query
         $args['tax_query'] = array(array('taxonomy' => 'portfolio_category', 'field' => 'slug', 'terms' => $cats_to_exclude, 'operator' => 'NOT IN'));
         // Include the correct cats in tax_query
         if (!empty($cat_slugs)) {
             $args['tax_query']['relation'] = 'AND';
             $args['tax_query'][] = array('taxonomy' => 'portfolio_category', 'field' => 'slug', 'terms' => $cat_slugs, 'operator' => 'IN');
         }
     } else {
         // Include the cats from $cat_slugs in tax_query
         if (!empty($cat_slugs)) {
             $args['tax_query'] = array(array('taxonomy' => 'portfolio_category', 'field' => 'slug', 'terms' => $cat_slugs));
         }
     }
     // If placeholder images are disabled, add the _thumbnail_id meta key to the query to only retrieve posts with featured images
     if (!$smof_data['featured_image_placeholder']) {
         $args['meta_key'] = '_thumbnail_id';
     }
     wp_reset_query();
     $recent_works = new WP_Query($args);
     $portfolio_posts = '';
     // Loop through returned posts
     // Setup the inner HTML for each elements
     while ($recent_works->have_posts()) {
         $recent_works->the_post();
         // Reset vars
         $rich_snippets = $post_classes = $title_terms = $image = $post_title = $post_terms = $separator = $post_content = $buttons = $view_project_button = '';
         // For carousels we only need the image and a li wrapper
         if ($layout == 'carousel') {
             // Title on rollover layout
             if ($carousel_layout == 'title_on_rollover') {
                 $show_title = 'default';
                 // Title below image layout
             } else {
                 $show_title = 'disable';
                 // Get the post title
                 $title_terms .= sprintf('<h4 %s><a href="%s" target="%s">%s</a></h4>', FusionCore_Plugin::attributes('fusion-carousel-title'), get_permalink(get_the_ID()), '_self', get_the_title());
                 // Get the terms
                 $title_terms .= get_the_term_list(get_the_ID(), 'portfolio_category', '<div class="fusion-carousel-meta">', ', ', '</div>');
             }
             // Render the video set in page options if no featured image is present
             if (!has_post_thumbnail() && fusion_get_page_option('video', get_the_ID())) {
                 $video_max_width = '540px';
                 $image = sprintf('<div class="fusion-image-wrapper fusion-video" style="max-width:%s;">%s</div>', $video_max_width, fusion_get_page_option('video', get_the_ID()));
             } else {
                 // Get the post image
                 $image = avada_render_first_featured_image_markup(get_the_ID(), $this->image_size, get_permalink(get_the_ID()), TRUE, FALSE, FALSE, 'disable', $show_title, '', $this->recent_works_counter);
             }
             $portfolio_posts .= sprintf('<li %s><div %s>%s%s%s</div></li>', FusionCore_Plugin::attributes('fusion-carousel-item'), FusionCore_Plugin::attributes('fusion-carousel-item-wrapper'), avada_render_rich_snippets_for_pages(), $image, $title_terms);
         } else {
             // Get the post permalink
             $permalink = get_permalink();
             // Include the post categories as css classes for later useage with filters
             $post_categories = get_the_terms(get_the_ID(), 'portfolio_category');
             if ($post_categories) {
                 foreach ($post_categories as $post_category) {
                     $post_classes .= urldecode($post_category->slug) . ' ';
                 }
             }
             // Add the col-spacing class if needed
             if ($column_spacing) {
                 $post_classes .= 'fusion-col-spacing';
             }
             // Render the video set in page options if no featured image is present
             if (!has_post_thumbnail() && fusion_get_page_option('video', get_the_ID())) {
                 $video_max_width = '540px';
                 $image = sprintf('<div class="fusion-image-wrapper fusion-video" style="max-width:%s;">%s</div>', $video_max_width, fusion_get_page_option('video', get_the_ID()));
             } else {
                 // Get the post image
                 $image = avada_render_first_featured_image_markup(get_the_ID(), $this->image_size, get_permalink(get_the_ID()), TRUE, FALSE, FALSE, 'disable', 'default', '', $this->recent_works_counter);
             }
             // Additional content for grid-with-excerpts layout
             if ($layout == 'grid-with-excerpts') {
                 // Get the rich snippets, if enabled
                 $rich_snippets = avada_render_rich_snippets_for_pages(false);
                 // Get the post title
                 $post_title = avada_render_post_title(get_the_ID());
                 // Get the post terms
                 $post_terms = sprintf('<h4>%s</h4>', get_the_term_list(get_the_ID(), 'portfolio_category', '', ', ', ''));
                 // Get the post content
                 ob_start();
                 /**
                  * fusion_recent_works_shortcode_content hook
                  *
                  * @hooked content - 10 (outputs the post content)
                  */
                 do_action('fusion_recent_works_shortcode_content');
                 $stripped_content = ob_get_clean();
                 // For boxed layouts add a content separator if there is a post content
                 if ($boxed_text == 'boxed' && $stripped_content) {
                     $separator = '<div class="fusion-content-sep"></div>';
                 }
                 // On one column layouts render the "Learn More" and "View Project" buttons
                 if ($columns == '1') {
                     $classes = sprintf('fusion-button fusion-button-small fusion-button-default fusion-button-%s fusion-button-%s', strtolower($smof_data['button_shape']), strtolower($smof_data['button_type']));
                     // Add the "Learn More" button
                     $learn_more_button = sprintf('<a href="%s" %s>%s</a>', $permalink, FusionCore_Plugin::attributes($classes), __('Learn More', 'fusion-core'));
                     // If there is a project url, add the "View Project" button
                     $view_project_button = '';
                     if (fusion_get_page_option('project_url', get_the_ID())) {
                         $view_project_button = sprintf('<a href="%s" %s>%s</a>', fusion_get_page_option('project_url', get_the_ID()), FusionCore_Plugin::attributes($classes), __('View Project', 'fusion-core'));
                     }
                     // Wrap buttons
                     $buttons = sprintf('<div %s>%s%s</div>', FusionCore_Plugin::attributes('fusion-portfolio-buttons'), $learn_more_button, $view_project_button);
                 }
                 // Put it all together
                 $post_content = sprintf('<div %s>%s%s%s<div %s>%s%s</div></div>', FusionCore_Plugin::attributes('fusion-portfolio-content'), $post_title, $post_terms, $separator, FusionCore_Plugin::attributes('fusion-post-content'), $stripped_content, $buttons);
             } else {
                 // Get the rich snippets for grid layout without excerpts
                 $rich_snippets = avada_render_rich_snippets_for_pages();
             }
             $portfolio_posts .= sprintf('<div %s><div %s>%s%s%s</div></div>', FusionCore_Plugin::attributes('fusion-portfolio-post ' . $post_classes), FusionCore_Plugin::attributes('fusion-portfolio-content-wrapper'), $rich_snippets, $image, $post_content);
         }
     }
     // end while
     wp_reset_query();
     // Wrap all the portfolio posts with the appropriate HTML markup
     // Carousel layout
     if ($layout == 'carousel') {
         $main_carousel = sprintf('<ul %s>%s</ul>', FusionCore_Plugin::attributes('fusion-carousel-holder'), $portfolio_posts);
         // Check if navigation should be shown
         $navigation = '';
         if ($show_nav == 'yes') {
             $navigation = sprintf('<div %s><span %s></span><span %s></span></div>', FusionCore_Plugin::attributes('fusion-carousel-nav'), FusionCore_Plugin::attributes('fusion-nav-prev'), FusionCore_Plugin::attributes('fusion-nav-next'));
         }
         $html = sprintf('<div %s><div %s><div %s>%s%s</div></div></div>', FusionCore_Plugin::attributes('recentworks-shortcode'), FusionCore_Plugin::attributes('recentworks-shortcode-carousel'), FusionCore_Plugin::attributes('fusion-carousel-positioner'), $main_carousel, $navigation);
         // Grid layouts
     } else {
         // Reset vars
         $filter_wrapper = $filter = $styles = '';
         // Setup the filters, if enabled
         $portfolio_categories = get_terms('portfolio_category');
         // Check if filters should be displayed
         if ($portfolio_categories && $filters != 'no') {
             // Check if the "All" filter should be displayed
             if ($filters != 'yes-without-all') {
                 $filter = sprintf('<li %s><a %s>%s</a></li>', FusionCore_Plugin::attributes('fusion-filter fusion-filter-all fusion-active'), FusionCore_Plugin::attributes('recentworks-shortcode-filter-link', array('data-filter' => '*')), __('All', 'fusion-core'));
                 $first_filter = FALSE;
             } else {
                 $first_filter = TRUE;
             }
             // Loop through categories
             foreach ($portfolio_categories as $portfolio_category) {
                 // Only display filters of non excluded categories
                 if (!in_array($portfolio_category->slug, $cats_to_exclude)) {
                     // Check if categories have been chosen
                     if (!empty(self::$args['cat_slug'])) {
                         // Only display filters for explicitly included categories
                         if (in_array($portfolio_category->slug, $cat_slugs)) {
                             // Set the first category filter to active, if the all filter isn't shown
                             $active_class = '';
                             if ($first_filter) {
                                 $active_class = ' fusion-active';
                                 $first_filter = FALSE;
                             }
                             $filter .= sprintf('<li %s><a %s>%s</a></li>', FusionCore_Plugin::attributes('fusion-filter fusion-hidden' . $active_class), FusionCore_Plugin::attributes('recentworks-shortcode-filter-link', array('data-filter' => '.' . $portfolio_category->slug)), $portfolio_category->name);
                         }
                         // Display all categories
                     } else {
                         // Set the first category filter to active, if the all filter isn't shown
                         $active_class = '';
                         if ($first_filter) {
                             $active_class = ' fusion-active';
                             $first_filter = FALSE;
                         }
                         $filter .= sprintf('<li %s><a %s>%s</a></li>', FusionCore_Plugin::attributes('fusion-filter fusion-hidden' . $active_class), FusionCore_Plugin::attributes('recentworks-shortcode-filter-link', array('data-filter' => '.' . $portfolio_category->slug)), $portfolio_category->name);
                     }
                 }
             }
             // end foreach
             // Wrap filters
             $filter_wrapper = sprintf('<ul %s>%s</ul>', FusionCore_Plugin::attributes('fusion-filters'), $filter);
         }
         // For column spacing set needed css
         if ($column_spacing) {
             $styles = sprintf('<style type="text/css">.fusion-recent-works-%s .fusion-portfolio-wrapper .fusion-col-spacing{padding:%spx;}</style>', $this->recent_works_counter, $column_spacing / 2);
         }
         // Put it all together
         $html = sprintf('<div %s>%s%s<div %s>%s</div></div>', FusionCore_Plugin::attributes('recentworks-shortcode'), $filter_wrapper, $styles, FusionCore_Plugin::attributes('recentworks-shortcode-portfolio-wrapper'), $portfolio_posts);
     }
     $this->recent_works_counter++;
     return $html;
 }
Example #4
0
 /**
  * Render the full meta data for blog archive and single layouts
  * @param 	string $layout 	The blog layout (either single, standard, alternate or grid_timeline)
  *
  * @return 	string 			HTML markup to display the date and post format box
  **/
 function avada_render_post_metadata($layout, $settings = array())
 {
     $html = $author = $date = $metadata = '';
     if (!$settings) {
         $settings['post_meta'] = Avada()->settings->get('post_meta');
         $settings['post_meta_author'] = Avada()->settings->get('post_meta_author');
         $settings['post_meta_date'] = Avada()->settings->get('post_meta_date');
         $settings['post_meta_cats'] = Avada()->settings->get('post_meta_cats');
         $settings['post_meta_tags'] = Avada()->settings->get('post_meta_tags');
         $settings['post_meta_comments'] = Avada()->settings->get('post_meta_comments');
     }
     // Check if meta data is enabled
     if ($settings['post_meta'] && get_post_meta(get_queried_object_id(), 'pyre_post_meta', TRUE) != 'no' || !$settings['post_meta'] && get_post_meta(get_queried_object_id(), 'pyre_post_meta', TRUE) == 'yes') {
         // For alternate, grid and timeline layouts return empty single-line-meta if all meta data for that position is disabled
         if (($layout == 'alternate' || $layout == 'grid_timeline') && $settings['post_meta_author'] && $settings['post_meta_date'] && $settings['post_meta_cats'] && $settings['post_meta_tags'] && $settings['post_meta_comments']) {
             return $html;
         }
         // Render author meta data
         if (!$settings['post_meta_author']) {
             ob_start();
             the_author_posts_link();
             $author_post_link = ob_get_clean();
             // Check if rich snippets are enabled
             if (Avada()->settings->get('disable_date_rich_snippet_pages')) {
                 $metadata .= sprintf('%s <span>%s</span><span class="fusion-inline-sep">|</span>', __('By', 'Avada'), $author_post_link);
             } else {
                 $metadata .= sprintf('%s <span class="vcard"><span class="fn">%s</span></span><span class="fusion-inline-sep">|</span>', __('By', 'Avada'), $author_post_link);
             }
             // If author meta data won't be visible, render just the invisible author rich snippet
         } else {
             $author .= avada_render_rich_snippets_for_pages(FALSE, TRUE, FALSE);
         }
         // Render the updated meta data or at least the rich snippet if enabled
         if (!$settings['post_meta_date']) {
             $metadata .= avada_render_rich_snippets_for_pages(FALSE, FALSE, TRUE);
             $metadata .= sprintf('<span>%s</span><span class="fusion-inline-sep">|</span>', get_the_time(Avada()->settings->get('date_format')));
         } else {
             $date .= avada_render_rich_snippets_for_pages(FALSE, FALSE, TRUE);
         }
         // Render rest of meta data
         if ($layout != 'grid_timeline') {
             // Render categories
             if (!$settings['post_meta_cats']) {
                 ob_start();
                 the_category(', ');
                 $categories = ob_get_clean();
                 if ($categories) {
                     if (!$settings['post_meta_tags']) {
                         $metadata .= __('Categories:', 'Avada') . ' ';
                     }
                     $metadata .= sprintf('%s<span class="fusion-inline-sep">|</span>', $categories);
                 }
             }
             // Render tags
             if (!$settings['post_meta_tags']) {
                 ob_start();
                 the_tags('');
                 $tags = ob_get_clean();
                 if ($tags) {
                     $metadata .= sprintf('<span class="meta-tags">%s %s</span><span class="fusion-inline-sep">|</span>', __('Tags:', 'Avada'), $tags);
                 }
             }
             // Render comments
             if (!$settings['post_meta_comments']) {
                 ob_start();
                 comments_popup_link(__('0 Comments', 'Avada'), __('1 Comment', 'Avada'), '% ' . __('Comments', 'Avada'));
                 $comments = ob_get_clean();
                 $metadata .= sprintf('<span class="fusion-comments">%s</span>', $comments);
             }
         }
         // Render the HTML wrappers for the different layouts
         if ($metadata) {
             $metadata = $author . $date . $metadata;
             if ($layout == 'single') {
                 $html .= sprintf('<div class="fusion-meta-info"><div class="fusion-meta-info-wrapper">%s</div></div>', $metadata);
             } elseif ($layout == 'alternate' || $layout == 'grid_timeline') {
                 $html .= sprintf('<p class="fusion-single-line-meta">%s</p>', $metadata);
             } else {
                 $html .= sprintf('<div class="fusion-alignleft">%s</div>', $metadata);
             }
         } else {
             $html .= $author . $date;
         }
         // Render author and updated rich snippets for grid and timeline layouts
     } else {
         if (!Avada()->settings->get('disable_date_rich_snippet_pages')) {
             $html .= avada_render_rich_snippets_for_pages(FALSE);
         }
     }
     return $html;
 }
Example #5
0
 /**
  * Render the parent shortcode
  * @param  array $args	 Shortcode paramters
  * @param  string $content Content between shortcode
  * @return string		  HTML output
  */
 function render($args, $content = '')
 {
     global $smof_data;
     $defaults = FusionCore_Plugin::set_shortcode_defaults(array('class' => '', 'id' => '', 'cat_id' => '', 'cat_slug' => '', 'columns' => 3, 'excerpt' => 'no', 'exclude_cats' => '', 'excerpt_length' => '', 'excerpt_words' => '15', 'layout' => 'default', 'meta' => 'yes', 'number_posts' => 4, 'offset' => '', 'strip_html' => 'yes', 'title' => 'yes', 'thumbnail' => 'yes', 'animation_direction' => 'left', 'animation_speed' => '', 'animation_type' => ''), $args);
     if ($defaults['columns'] > 6) {
         $defaults['columns'] = 6;
     }
     $defaults['strip_html'] == 'yes' || $defaults['strip_html'] == 'true' ? $defaults['strip_html'] = true : ($defaults['strip_html'] = false);
     if ($defaults['number_posts']) {
         $defaults['posts_per_page'] = $defaults['number_posts'];
     }
     if ($defaults['excerpt_length'] || $defaults['excerpt_length'] === '0') {
         $defaults['excerpt_words'] = $defaults['excerpt_length'];
     }
     //check for cats to exclude; needs to be checked via exclude_cats param and '-' prefixed cats on cats param
     //exclution via exclude_cats param
     $cats_to_exclude = explode(',', $defaults['exclude_cats']);
     if ($cats_to_exclude) {
         foreach ($cats_to_exclude as $cat_to_exclude) {
             $idObj = get_category_by_slug($cat_to_exclude);
             if ($idObj) {
                 $cats_id_to_exclude[] = $idObj->term_id;
             }
         }
         if (isset($cats_id_to_exclude) && $cats_id_to_exclude) {
             $defaults['category__not_in'] = $cats_id_to_exclude;
         }
     }
     //setting up cats to be used and exclution using '-' prefix on cats param; transform slugs to ids
     $cat_ids = '';
     $categories = explode(',', $defaults['cat_slug']);
     if (isset($categories) && $categories) {
         foreach ($categories as $category) {
             if ($category) {
                 $cat_obj = get_category_by_slug($category);
                 if (isset($cat_obj->term_id)) {
                     if (strpos($category, '-') === 0) {
                         $cat_ids .= '-' . $cat_obj->cat_ID . ',';
                     } else {
                         $cat_ids .= $cat_obj->cat_ID . ',';
                     }
                 }
             }
         }
     }
     $defaults['cat'] = substr($cat_ids, 0, -1);
     $defaults['cat'] .= $defaults['cat_id'];
     $items = '';
     $args = array('posts_per_page' => $defaults['number_posts'], 'ignore_sticky_posts' => 1);
     if ($defaults['offset']) {
         $args['offset'] = $defaults['offset'];
     }
     if ($defaults['cat']) {
         $args['cat'] = $defaults['cat'];
     }
     if (isset($defaults['category__not_in']) && is_array($defaults['category__not_in'])) {
         $args['category__not_in'] = $defaults['category__not_in'];
     }
     extract($defaults);
     self::$args = $defaults;
     $recent_posts = new WP_Query($args);
     $count = 1;
     while ($recent_posts->have_posts()) {
         $recent_posts->the_post();
         $attachment = $date_box = $slideshow = $slides = $content = '';
         if ($layout == 'date-on-side') {
             switch (get_post_format()) {
                 case 'gallery':
                     $format_class = 'images';
                     break;
                 case 'link':
                     $format_class = 'link';
                     break;
                 case 'image':
                     $format_class = 'image';
                     break;
                 case 'quote':
                     $format_class = 'quotes-left';
                     break;
                 case 'video':
                     $format_class = 'film';
                     break;
                 case 'audio':
                     $format_class = 'headphones';
                     break;
                 case 'chat':
                     $format_class = 'bubbles';
                     break;
                 default:
                     $format_class = 'pen';
                     break;
             }
             $date_box = sprintf('<div %s><div %s><span %s>%s</span><span %s>%s</span></div><div %s><i %s></i></div></div>', FusionCore_Plugin::attributes('fusion-date-and-formats'), FusionCore_Plugin::attributes('fusion-date-box updated'), FusionCore_Plugin::attributes('fusion-date'), get_the_time($smof_data['alternate_date_format_day']), FusionCore_Plugin::attributes('fusion-month-year'), get_the_time($smof_data['alternate_date_format_month_year']), FusionCore_Plugin::attributes('fusion-format-box'), FusionCore_Plugin::attributes('fusion-icon-' . $format_class));
         }
         if ($thumbnail == 'yes' && $layout != 'date-on-side' && !post_password_required(get_the_ID())) {
             if ($layout == 'default') {
                 $image_size = 'recent-posts';
             } elseif ($layout == 'thumbnails-on-side') {
                 $image_size = 'portfolio-five';
             }
             if (has_post_thumbnail() || get_post_meta(get_the_ID(), 'pyre_video', true)) {
                 if (get_post_meta(get_the_ID(), 'pyre_video', true)) {
                     $slides .= sprintf('<li><div %s>%s</div></li>', FusionCore_Plugin::attributes('full-video'), get_post_meta(get_the_ID(), 'pyre_video', true));
                 }
                 if (has_post_thumbnail()) {
                     $attachment_image = wp_get_attachment_image_src(get_post_thumbnail_id(), $image_size);
                     $full_image = wp_get_attachment_image_src(get_post_thumbnail_id(), 'full');
                     $attachment_data = wp_get_attachment_metadata(get_post_thumbnail_id());
                     $attachment = get_post(get_post_thumbnail_id());
                     $slides .= sprintf('<li><a href="%s"><img %s/></a></li>', get_permalink(get_the_ID()), FusionCore_Plugin::attributes('recentposts-shortcode-img', array('src' => $attachment_image[0], 'alt' => $attachment->post_title)));
                 }
                 $i = 2;
                 while ($i <= $smof_data['posts_slideshow_number']) {
                     $attachment_new_id = kd_mfi_get_featured_image_id('featured-image-' . $i, 'post');
                     if ($attachment_new_id) {
                         $attachment_image = wp_get_attachment_image_src($attachment_new_id, $image_size);
                         $full_image = wp_get_attachment_image_src($attachment_new_id, 'full');
                         $attachment_data = wp_get_attachment_metadata($attachment_new_id);
                         $slides .= sprintf('<li><a href="%s"><img %s/></a></li>', get_permalink(get_the_ID()), FusionCore_Plugin::attributes('recentposts-shortcode-img', array('src' => $attachment_image[0], 'alt' => '')));
                     }
                     $i++;
                 }
                 $slideshow = sprintf('<div %s><ul %s>%s</ul></div>', FusionCore_Plugin::attributes('recentposts-shortcode-slideshow'), FusionCore_Plugin::attributes('slides'), $slides);
             }
         }
         if ($title == 'yes') {
             $content .= avada_render_rich_snippets_for_pages(false);
             $entry_title = '';
             if (!$smof_data['disable_date_rich_snippet_pages']) {
                 $entry_title = 'entry-title';
             }
             $content .= sprintf('<h4 class="%s"><a href="%s">%s</a></h4>', $entry_title, get_permalink(get_the_ID()), get_the_title());
         } else {
             $content .= avada_render_rich_snippets_for_pages();
         }
         if ($meta == 'yes') {
             $comments = $comments_link = '';
             ob_start();
             comments_popup_link(__('0 Comments', 'fusion-core'), __('1 Comment', 'fusion-core'), '% ' . __('Comments', 'fusion-core'));
             $comments_link = ob_get_contents();
             ob_get_clean();
             $comments = sprintf('<span %s>|</span><span>%s</span>', FusionCore_Plugin::attributes('meta-separator'), $comments_link);
             $content .= sprintf('<p %s><span><span %s>%s</span></span>%s</p>', FusionCore_Plugin::attributes('meta'), FusionCore_Plugin::attributes('date'), get_the_time($smof_data['date_format'], get_the_ID()), $comments);
         }
         if ($excerpt == 'yes') {
             $content .= fusion_get_post_content('', 'yes', $excerpt_words, $strip_html);
         }
         if ($count == self::$args['columns']) {
             $count = 0;
             $items .= sprintf('<div %s>%s%s<div %s>%s</div></div><div class="fusion-clearfix"></div>', FusionCore_Plugin::attributes('recentposts-shortcode-column'), $date_box, $slideshow, FusionCore_Plugin::attributes('recent-posts-content'), $content);
         } else {
             $items .= sprintf('<div %s>%s%s<div %s>%s</div></div>', FusionCore_Plugin::attributes('recentposts-shortcode-column'), $date_box, $slideshow, FusionCore_Plugin::attributes('recent-posts-content'), $content);
         }
         $count++;
     }
     $html = sprintf('<div %s><section %s>%s</section></div>', FusionCore_Plugin::attributes('recentposts-shortcode'), FusionCore_Plugin::attributes('recentposts-shortcode-section'), $items);
     wp_reset_query();
     return $html;
 }
Example #6
0
 /**
  * Render the full meta data for blog archive and single layouts
  * @param     string $layout     The blog layout (either single, standard, alternate or grid_timeline)
  *
  * @return    string             HTML markup to display the date and post format box
  **/
 function avada_render_post_metadata($layout, $settings = array())
 {
     $html = $author = $date = $metadata = '';
     $settings = is_array($settings) ? $settings : array();
     $default_settings = array('post_meta' => Avada()->settings->get('post_meta'), 'post_meta_author' => Avada()->settings->get('post_meta_author'), 'post_meta_date' => Avada()->settings->get('post_meta_date'), 'post_meta_cats' => Avada()->settings->get('post_meta_cats'), 'post_meta_tags' => Avada()->settings->get('post_meta_tags'), 'post_meta_comments' => Avada()->settings->get('post_meta_comments'));
     $settings = wp_parse_args($settings, $default_settings);
     // Check if meta data is enabled
     if ($settings['post_meta'] && 'no' != get_post_meta(get_queried_object_id(), 'pyre_post_meta', true) || !$settings['post_meta'] && 'yes' == get_post_meta(get_queried_object_id(), 'pyre_post_meta', true)) {
         // For alternate, grid and timeline layouts return empty single-line-meta if all meta data for that position is disabled
         if (in_array($layout, array('alternate', 'grid_timeline')) && !$settings['post_meta_author'] && !$settings['post_meta_date'] && !$settings['post_meta_cats'] && !$settings['post_meta_tags'] && !$settings['post_meta_comments']) {
             return '';
         }
         // Render author meta data
         if ($settings['post_meta_author']) {
             ob_start();
             the_author_posts_link();
             $author_post_link = ob_get_clean();
             // Check if rich snippets are enabled
             if (!Avada()->settings->get('disable_date_rich_snippet_pages')) {
                 $metadata .= sprintf(esc_html__('By %s', 'Avada'), '<span>' . $author_post_link . '</span>');
             } else {
                 $metadata .= sprintf(esc_html__('By %s', 'Avada'), '<span class="vcard"><span class="fn">' . $author_post_link . '</span></span>');
             }
             $metadata .= '<span class="fusion-inline-sep">|</span>';
             // If author meta data won't be visible, render just the invisible author rich snippet
         } else {
             $author .= avada_render_rich_snippets_for_pages(false, true, false);
         }
         // Render the updated meta data or at least the rich snippet if enabled
         if ($settings['post_meta_date']) {
             $metadata .= avada_render_rich_snippets_for_pages(false, false, true);
             $metadata .= '<span>' . get_the_time(Avada()->settings->get('date_format')) . '</span><span class="fusion-inline-sep">|</span>';
         } else {
             $date .= avada_render_rich_snippets_for_pages(false, false, true);
         }
         // Render rest of meta data
         // Render categories
         if ($settings['post_meta_cats']) {
             ob_start();
             the_category(', ');
             $categories = ob_get_clean();
             if ($categories) {
                 $metadata .= $settings['post_meta_tags'] ? sprintf(esc_html__('Categories: %s', 'Avada'), $categories) : $categories;
                 $metadata .= '<span class="fusion-inline-sep">|</span>';
             }
         }
         // Render tags
         if ($settings['post_meta_tags']) {
             ob_start();
             the_tags('');
             $tags = ob_get_clean();
             if ($tags) {
                 $metadata .= '<span class="meta-tags">' . sprintf(esc_html__('Tags: %s', 'Avada'), $tags) . '</span><span class="fusion-inline-sep">|</span>';
             }
         }
         // Render comments
         if ($settings['post_meta_comments'] && $layout != 'grid_timeline') {
             ob_start();
             comments_popup_link(esc_html__('0 Comments', 'Avada'), esc_html__('1 Comment', 'Avada'), esc_html__('% Comments', 'Avada'));
             $comments = ob_get_clean();
             $metadata .= '<span class="fusion-comments">' . $comments . '</span>';
         }
         // Render the HTML wrappers for the different layouts
         if ($metadata) {
             $metadata = $author . $date . $metadata;
             if ('single' == $layout) {
                 $html .= '<div class="fusion-meta-info"><div class="fusion-meta-info-wrapper">' . $metadata . '</div></div>';
             } elseif (in_array($layout, array('alternate', 'grid_timeline'))) {
                 $html .= '<p class="fusion-single-line-meta">' . $metadata . '</p>';
             } else {
                 $html .= '<div class="fusion-alignleft">' . $metadata . '</div>';
             }
         } else {
             $html .= $author . $date;
         }
         // Render author and updated rich snippets for grid and timeline layouts
     } else {
         if (Avada()->settings->get('disable_date_rich_snippet_pages')) {
             $html .= avada_render_rich_snippets_for_pages(false);
         }
     }
     return $html;
 }
Example #7
0
 function avada_render_post_metadata($layout)
 {
     global $smof_data;
     $html = $metadata = '';
     if ($smof_data['post_meta'] && get_post_meta(get_queried_object_id(), 'pyre_post_meta', true) != 'no' || !$smof_data['post_meta'] && get_post_meta(get_queried_object_id(), 'pyre_post_meta', true) == 'yes') {
         if (($layout == 'alternate' || $layout == 'grid_timeline') && $smof_data['post_meta_author'] && $smof_data['post_meta_date'] && $smof_data['post_meta_cats'] && $smof_data['post_meta_tags'] && $smof_data['post_meta_comments']) {
             return $html;
         }
         if (!$smof_data['post_meta_author']) {
             ob_start();
             the_author_posts_link();
             $author_post_link = ob_get_clean();
             if ($smof_data['disable_date_rich_snippet_pages']) {
                 $metadata .= sprintf('%s <span>%s</span><span class="sep">|</span>', __('By', 'Avada'), $author_post_link);
             } else {
                 $metadata .= sprintf('%s <span class="vcard"><span class="fn">%s</span></span><span class="sep">|</span>', __('By', 'Avada'), $author_post_link);
             }
         } else {
             $metadata .= avada_render_rich_snippets_for_pages(false, true, false);
         }
         if (!$smof_data['post_meta_date']) {
             $metadata .= avada_render_rich_snippets_for_pages(false, false, true);
             $metadata .= sprintf('<span>%s</span><span class="sep">|</span>', get_the_time($smof_data['date_format']));
         } else {
             $metadata .= avada_render_rich_snippets_for_pages(false, false, true);
         }
         if ($layout != 'grid_timeline') {
             if (!$smof_data['post_meta_cats']) {
                 ob_start();
                 the_category(', ');
                 $categories = ob_get_clean();
                 if ($categories) {
                     if (!$smof_data['post_meta_tags']) {
                         $metadata .= __('Categories:', 'Avada') . ' ';
                     }
                     $metadata .= sprintf('%s<span class="sep">|</span>', $categories);
                 }
             }
             if (!$smof_data['post_meta_tags']) {
                 ob_start();
                 the_tags('');
                 $tags = ob_get_clean();
                 if ($tags) {
                     $metadata .= sprintf('<span class="meta-tags">%s %s</span><span class="sep">|</span>', __('Tags:', 'Avada'), $tags);
                 }
             }
             if (!$smof_data['post_meta_comments']) {
                 ob_start();
                 comments_popup_link(__('0 Comments', 'Avada'), __('1 Comment', 'Avada'), '% ' . __('Comments', 'Avada'));
                 $comments = ob_get_clean();
                 $metadata .= sprintf('<span class="comments">%s</span>', $comments);
             }
         }
         if ($layout == 'single') {
             $html .= sprintf('<div class="meta-info"><div class="meta-info-wrapper">%s</div></div>', $metadata);
         } elseif ($layout == 'alternate' || $layout == 'grid_timeline') {
             $html .= sprintf('<p class="single-line-meta">%s</p>', $metadata);
         } else {
             $html .= sprintf('<div class="alignleft">%s</div>', $metadata);
         }
     } else {
         if (!$smof_data['disable_date_rich_snippet_pages']) {
             $html .= avada_render_rich_snippets_for_pages(false);
         }
     }
     return $html;
 }