# post-carousel/2.4.16/public/helpers/sp-pc-output.php

Smart Post – Post Grid, Post Carousel, Post Slider Gutenberg Blocks for Blog &amp; News, version 2.4.16. 132 lines.

- Page: https://pluginprobe.com/plugins/post-carousel/2.4.16/code/public/helpers/sp-pc-output.php
- Raw: https://pluginprobe.com/plugins/post-carousel/2.4.16/raw/public/helpers/sp-pc-output.php
- Modified: 2022-10-07T11:32:46+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/post-carousel/2.4.16/code/public/helpers/sp-pc-output.php#L10-L20`.

```php
<?php
/**
 * The file of html inside the loop.
 *
 * @package Smart_Post_Show
 * @subpackage public
 *
 * @since 2.0.0
 */

// If this file is called directly, abort.
if ( ! defined( 'WPINC' ) ) {
	die;
}
/**
 * Post output query.
 *
 * @since 2.0.0
 */
class SP_PC_Output {
	/**
	 * Post responsive columns class.
	 *
	 * @param string $layout Layout preset.
	 * @param string $columns Columns number.
	 * @return string
	 */
	public static function pcp_post_responsive_columns( $layout, $columns ) {
		$pcp_post_columns = '';
		if ( 'carousel_layout' === $layout ) {
			$pcp_post_columns .= ' swiper-slide swiper-lazy';
		} else {
			$pcp_post_columns .= " sp-pcp-col-xs-$columns[mobile] sp-pcp-col-sm-$columns[mobile_landscape] sp-pcp-col-md-$columns[tablet] sp-pcp-col-lg-$columns[desktop] sp-pcp-col-xl-$columns[lg_desktop]";
		}
		return $pcp_post_columns;
	}
	/**
	 * PCP shortcode markup wrapper classes.
	 *
	 * @param string $layout_preset The selected layout name.
	 * @param int    $shortcode_id The shortcode ID.
	 */
	public static function pcp_wrapper_classes( $layout_preset, $shortcode_id ) {
		$wrapper_class = "sp-pcp-section sp-pcp-container pcp-wrapper-{$shortcode_id}";
		switch ( $layout_preset ) {
			case 'carousel_layout':
				$wrapper_class .= ' pcp-carousel-wrapper';
				break;
		}
		echo esc_attr( $wrapper_class );
	}
	/**
	 * Post Loop.
	 *
	 * @param array  $options Views options.
	 * @param string $layout Layout preset.
	 * @param array  $sorter Post sorting options.
	 * @param int    $scode_id Shortcode ID.
	 * @return void
	 */
	public static function pcp_post_loop( $options, $layout, $sorter, $scode_id ) {
		global $post;
		$number_of_columns = SP_PC_Functions::pcp_metabox_value( 'pcp_number_of_columns', $options );
		?>
		<div class="<?php echo esc_attr( self::pcp_post_responsive_columns( $layout, $number_of_columns ) ); ?>">
			<div class="sp-pcp-post pcp-item-<?php echo esc_attr( $post->ID ); ?>" data-id="<?php echo esc_attr( $post->ID ); ?>">
				<?php
					SP_PC_HTML::pcp_post_content_with_thumb( $sorter, $layout, $scode_id, $post, $options );
				?>
			</div>
		</div>
		<?php
	}

	/**
	 * Get all query posts.
	 *
	 * @param array  $options Views options.
	 * @param array  $layout Layout preset.
	 * @param array  $sorter  Post sorting options.
	 * @param object $pcp_query post query.
	 * @param int    $view_id Shortcode ID.
	 * @return void
	 */
	public static function pcp_get_posts( $options, $layout, $sorter, $pcp_query, $view_id ) {
		$pcp_count = 1;
		while ( $pcp_query->have_posts() ) {
			$pcp_query->the_post();
			$without_post_thumbnail = apply_filters( 'sps_without_thumbnail_post_hide', true ) ? true : has_post_thumbnail();
			if ( $without_post_thumbnail ) {
				self::pcp_post_loop( $options, $layout, $sorter, $view_id );
			}
			$pcp_count++;
		}
		wp_reset_postdata();
	}

	/**
	 * All markup
	 *
	 * @param  mixed $view_options shortcode options.
	 * @param  mixed $layout all layout based options.
	 * @param  mixed $pcp_gl_id shortcode id.
	 * @param  mixed $section_title Section title.
	 * @return void
	 */
	public static function pc_html_show( $view_options, $layout, $pcp_gl_id, $section_title ) {
		$pcp_settings         = get_option( 'sp_post_carousel_settings' );
		$post_content_sorter  = isset( $view_options['post_content_sorter'] ) ? $view_options['post_content_sorter'] : '';
		$pcp_content_position = isset( $view_options['post_content_orientation'] ) ? $view_options['post_content_orientation'] : '';
		$margin_between_post  = isset( $view_options['margin_between_post']['all'] ) ? $view_options['margin_between_post']['all'] : '';
		$show_preloader       = isset( $view_options['show_preloader'] ) ? $view_options['show_preloader'] : 0;
		$query_args           = SP_PC_QueryInside::get_filtered_content( $view_options, $pcp_gl_id, $layout );
		$pcp_query            = new WP_Query( $query_args );
		$total_post_count     = $pcp_query->post_count;
		// Pagination.
		$show_pagination = isset( $view_options['show_post_pagination'] ) ? $view_options['show_post_pagination'] : '';
		$layout_preset   = isset( $layout['pcp_layout_preset'] ) ? $layout['pcp_layout_preset'] : '';
		wp_enqueue_script( 'pcp_script' );
		$pcp_custom_js = $pcp_settings['pcp_custom_js'];
		if ( ! empty( $pcp_custom_js ) ) {
			wp_add_inline_script( 'pcp_script', $pcp_custom_js );
		}

		if ( 'carousel_layout' === $layout_preset ) {
			require SP_PC_TEMPLATE_PATH . '/carousel.php';
		} elseif ( 'grid_layout' === $layout_preset ) {
			require SP_PC_TEMPLATE_PATH . '/grid.php';
		}
	}
}

```
