0,
'grid-one-layout-three' => 1,
'grid-one-layout-four' => 1,
'grid-one-layout-five' => 0,
'grid-one-layout-six' => 2,
'grid-one-layout-six-updated' => 4,
'grid-one-layout-seven' => 4,
'grid-one-layout-eight' => 3,
'grid-one-layout-nine' => 3,
);
$large_item_part_one = array_slice( $post_query, 0, 1 );
$large_item_part_two = array_slice( $post_query, 1, $skip_items_for_grid_top_section[ $layout ] );
$skip_items = ( 'grid-one-layout-one' === $layout || 'grid-one-layout-five' === $layout ) || wp_is_mobile() ? 0 : $skip_items_for_grid_top_section[ $layout ] + 1;
$hide_part = array( 'readMoreButton', 'taxonomy', 'excerpt' );
$hide_part_small_items = array();
switch ( $layout ) {
case 'grid-one-layout-six':
case 'grid-one-layout-six-updated':
case 'grid-one-layout-seven':
case 'grid-one-layout-eight':
case 'grid-one-layout-nine':
$hide_part_small_items = array( 'excerpt', 'taxonomy', 'readMoreButton' );
break;
case 'grid-one-layout-three':
case 'grid-one-layout-four':
$hide_part = array();
break;
}
ob_start();
if ( 'load-more' === $pagination_type ) { // When data load by ajax and pagination type is load more.
foreach ( $post_query as $data ) {
self::template_one( $attributes, $data, $hide_part_small_items );
}
} else {
if ( ! wp_is_mobile() && ! in_array(
$layout,
array(
'grid-one-layout-one',
'grid-one-layout-five',
),
true
) ) {
?>
2,
'grid-three-layout-two' => 2,
'grid-three-layout-three' => 1,
'grid-three-layout-four' => 0,
'grid-three-layout-five' => 3,
);
$large_item_part_one = array_slice( $post_query, 0, $skip_items_for_grid_top_section[ $layout ] );
$large_item_part_two = array_slice( $post_query, $skip_items_for_grid_top_section[ $layout ] );
ob_start();
if ( 'load-more' === $pagination_type ) { // When data load by ajax and pagination type is load more.
foreach ( $post_query as $data ) {
self::template_one( $attributes, $data );
}
} else {
?>
5,
'grid-four-layout-two' => 5,
'grid-four-layout-three' => 5,
'grid-four-layout-four' => 4,
'grid-four-layout-five' => 4,
'grid-four-layout-six' => 3,
);
$large_item_part_one = array_slice( $post_query, 0, $skip_items_for_grid_top_section[ $layout ] );
$skip_post = $skip_items_for_grid_top_section[ $layout ];
$large_item_part_two = array_slice( $post_query, $skip_post );
ob_start();
if ( 'load-more' === $pagination_type ) {
foreach ( $post_query as $data ) {
self::template_one( $attributes, $data );
}
} else {
?>
inner_blocks ) ) {
return;
}
// Check how many inner blocks are available.
$item_count = $blocks->inner_blocks->count();
for ( $index = 1; $index <= $item_count; $index++ ) {
// Get the inner block data.
$inner_block = $blocks->inner_blocks->current();
// If the inner block is a pagination block, get its attributes.
if ( 'sp-smart-post-show/pagination' === $inner_block->name ) {
$attributes = $inner_block->attributes;
break;
}
}
return $attributes;
}
/**
* Renders the loop template for a single post item.
*
* @param array $attributes Block attributes.
* @param array $data Post data for the current item.
* @param array $hide_part Parts to hide in the template.
*/
public static function loop_template( $attributes, $data, $hide_part ) {
$content_part_array = isset( $attributes['contentPartArray'] ) ? $attributes['contentPartArray'] : array();
$orientation = $attributes['contentOrientation'] ?? 'orientation_one';
$category_position = $attributes['catTabCategoryPosition'] ?? '';
$social_share_icon_position = isset( $attributes['socialShareIconPosition'] ) ? $attributes['socialShareIconPosition'] : '';
$social_icon_display_type = isset( $attributes['socialIconDisplayType'] ) ? $attributes['socialIconDisplayType'] : 'inline-icon';
$show_social_share = ( 'inline-icon' === $social_icon_display_type || '' === $social_share_icon_position ) ? true : false;
$content_part = array(
'taxonomy' => ( empty( $category_position ) && 'orientation_three' !== $orientation && 'orientation_four' !== $orientation ) ? Template_Part::category( $attributes, $data ) : null,
'title' => Template_Part::title( $attributes, $data ),
'metadata' => Template_Part::meta_data( $attributes, $data ),
'excerpt' => Template_Part::excerpt( $attributes, $data ),
'readMoreButton' => Template_Part::read_more_button( $attributes, $data ),
'socialShare' => $show_social_share ? Template_Part::social_share( $attributes, $data ) : null,
'starRating' => Template_Part::star_rating( $attributes, $data ),
'price' => Template_Part::price( $attributes, $data ),
'addToCart' => Template_Part::add_to_cart( $attributes, $data ),
);
ob_start();
if ( ! in_array( 'feature_image', $hide_part, true ) ) {
Template_Part::feature_image( $attributes, $data );
}
?>
';
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
echo Template_Part::title( $attributes, $data );
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
echo 'list-one-layout-five' === $layout ? Template_Part::meta_data( $attributes, $data ) : '';
echo '
';
}
?>
' : ''; ?>
' : ''; ?>
$show_excerpt,
'excerptType' => 'limited',
'excerpt_ending_points' => '...',
'excerptLength' => $excerpt_limit,
'excerptGlobalTypography' => $meta_global_typo,
);
$placeholder_img = SP_PC_URL . 'public/assets/img/placeholder.png';
ob_start();
foreach ( $post_query as $data ) {
$permalink = isset( $data['link'] ) ? $data['link'] : '';
$image_alt_text = 'alt="' . ( ! empty( $data['image_alt'] ) ? esc_attr( $data['image_alt'] ) : esc_attr( $data['title'] ) ) . '"';
$post_thumbnail_url = isset( $data['post_thumbnail_url'] ) ? $data['post_thumbnail_url'] : false;
$feature_image = $post_thumbnail_url ? '
' : '';
$feature_image = ! empty( $feature_image ) ? $feature_image : '
';
$title = isset( $data['title'] ) ? $data['title'] : '';
?>