PluginProbe
Smart Post – Post Grid, Post Carousel, Post Slider Gutenberg Blocks for Blog & News / 2.3.6
Smart Post – Post Grid, Post Carousel, Post Slider Gutenberg Blocks for Blog & News v2.3.6
4.0.8 4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 4.0.2 4.0.1 2.3.5 2.3.6 2.4.0 2.4.1 2.4.10 2.4.11 2.4.12 2.4.13 2.4.14 2.4.15 2.4.16 2.4.17 2.4.18 2.4.19 2.4.2 2.4.20 2.4.21 All 88 releases
post-carousel / public / template / loop / class-loop-html.php

class-loop-html.php in Smart Post – Post Grid, Post Carousel, Post Slider Gutenberg Blocks for Blog & News 2.3.6, at public/template/loop/class-loop-html.php

344 lines 12.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * The file of query insides.
4 *
5 * @package Smart_Post_Show
6 * @subpackage Smart_Post_Show/public
7 *
8 * @since 2.0.0
9 */
10
11 // If this file is called directly, abort.
12 if ( ! defined( 'WPINC' ) ) {
13 die;
14 }
15 /**
16 * Post all html method.
17 *
18 * @since 2.0.0
19 */
20 class SP_PC_HTML {
21
22 /**
23 * Section title
24 *
25 * @param int $title shortcode title.
26 * @return void
27 */
28 public static function pcp_section_title( $title ) {
29 $section_title_text = apply_filters( 'pcp_section_title_text', $title );
30 $section_title = apply_filters( 'pcp_filter_section_title', sprintf( '<h2 class="pcp-section-title">%1$s</h2>', $section_title_text ), $section_title_text );
31 echo wp_kses_post( $section_title );
32 }
33
34 /**
35 * Post title html.
36 *
37 * @param array $sorter post content option array.
38 * @param string $layout layout preset.
39 * @param array $options The options array.
40 * @return void
41 */
42 public static function pcp_post_title( $sorter, $layout, $options ) {
43
44 $_meta_settings = SP_PC_Functions::pcp_metabox_value( 'pcp_post_meta', $sorter );
45 $post_meta_fields = SP_PC_Functions::pcp_metabox_value( 'pcp_post_meta_group', $_meta_settings );
46 $show_post_meta = SP_PC_Functions::pcp_metabox_value( 'show_post_meta', $_meta_settings, true );
47 $pcp_page_link_type = SP_PC_Functions::pcp_metabox_value( 'pcp_page_link_type', $options );
48 $pcp_link_rel = SP_PC_Functions::pcp_metabox_value( 'pcp_link_rel', $options );
49 $pcp_link_rel_text = $pcp_link_rel ? 'rel="nofollow"' : '';
50 $pcp_link_target = SP_PC_Functions::pcp_metabox_value( 'pcp_link_target', $options );
51 if ( is_array( $post_meta_fields ) && 'accordion_layout' !== $layout && $show_post_meta ) {
52 foreach ( $post_meta_fields as $each_meta ) {
53 if ( 'taxonomy' === $each_meta['select_post_meta'] ) {
54 $taxonomy = $each_meta['post_meta_taxonomy'];
55 $meta_position = $each_meta['pcp_meta_position'];
56 if ( 'above_title' === $meta_position ) {
57 $terms = get_the_term_list( get_the_ID(), $taxonomy, '', ' ' );
58 if ( $terms ) {
59 ?>
60 <div class="pcp-category above_title <?php echo esc_attr( $taxonomy ); ?>">
61 <?php echo wp_kses_post( $terms ); ?>
62 </div>
63 <?php
64 };
65 }
66 }
67 }
68 }
69
70 $post_title_setting = isset( $sorter['pcp_post_title'] ) ? $sorter['pcp_post_title'] : '';
71 $show_post_title = SP_PC_Functions::pcp_metabox_value( 'show_post_title', $post_title_setting );
72
73 $pcp_post_title = get_the_title( get_the_ID() );
74
75 if ( $show_post_title && ! empty( $pcp_post_title ) ) {
76 // Post Title Settings.
77 $post_title_tag = SP_PC_Functions::pcp_metabox_value( 'post_title_tag', $post_title_setting, 'h2' );
78 $allowed_html_tags = array(
79 'em' => array(),
80 'strong' => array(),
81 'sup' => array(),
82 'i' => array(),
83 'small' => array(),
84 'del' => array(),
85 'br' => array(),
86 'ins' => array(),
87 'span' => array(
88 'style' => array(),
89 'class' => array(),
90 ),
91 );
92 ?>
93 <<?php echo esc_attr( $post_title_tag ); ?> class="sp-pcp-title">
94 <?php if ( 'none' === $pcp_page_link_type ) { ?>
95 <?php echo sprintf( '<a %2$s>%1$s</a>', wp_kses( trim( $pcp_post_title ), $allowed_html_tags ), wp_kses_post( $pcp_link_rel_text ) ); ?>
96 <?php } else { ?>
97 <?php echo sprintf( '<a href="%1$s" %3$s target="%4$s">%2$s</a>', esc_url( get_the_permalink() ), wp_kses( trim( $pcp_post_title ), $allowed_html_tags ), wp_kses_post( $pcp_link_rel_text ), esc_attr( $pcp_link_target ) ); ?>
98 <?php } ?>
99 </<?php echo esc_attr( $post_title_tag ); ?>>
100 <?php
101 }
102 }
103
104 /**
105 * Show Post Content html.
106 *
107 * @param array $sorter The field ID array.
108 * @param array $options options.
109 * @return void
110 */
111 public static function pcp_content_html( $sorter, $options ) {
112 $post_content_setting = SP_PC_Functions::pcp_metabox_value( 'pcp_post_content', $sorter );
113 $show_post_content = SP_PC_Functions::pcp_metabox_value( 'show_post_content', $post_content_setting );
114 $show_read_more = SP_PC_Functions::pcp_metabox_value( 'show_read_more', $post_content_setting );
115 $pcp_content_type = SP_PC_Functions::pcp_metabox_value( 'post_content_type', $post_content_setting );
116 if ( $show_post_content || $show_read_more ) {
117 ?>
118 <div class="sp-pcp-post-content">
119 <?php
120 if ( $show_post_content ) {
121 echo wp_kses_post( SP_PC_Functions::pcp_content( $post_content_setting, $pcp_content_type ) );
122 }
123 if ( $show_read_more ) {
124 wp_kses(
125 self::pcp_readmore( $post_content_setting, $pcp_content_type, $options ),
126 array(
127 'a' => array(
128 'href' => array(),
129 'title' => array(),
130 ),
131 'em' => array(),
132 'strong' => array(),
133 )
134 );
135 }
136 ?>
137 </div>
138 <?php
139 }
140 }
141
142 /**
143 * Read more function
144 *
145 * @param array $view_options Read more options array.
146 * @param array $content_type The content type.
147 * @param array $options The parent of this field.
148 */
149 public static function pcp_readmore( $view_options, $content_type, $options ) {
150 $show_read_more = isset( $view_options['show_read_more'] ) ? $view_options['show_read_more'] : '';
151 if ( ! $show_read_more || 'full_content' === $content_type ) {
152 return '';
153 }
154
155 $pcp_read_label = isset( $view_options['pcp_read_label'] ) ? $view_options['pcp_read_label'] : '';
156 $pcp_page_link_type = SP_PC_Functions::pcp_metabox_value( 'pcp_page_link_type', $options );
157 $pcp_link_rel = SP_PC_Functions::pcp_metabox_value( 'pcp_link_rel', $options );
158 $pcp_link_rel_text = $pcp_link_rel ? 'rel="nofollow"' : '';
159 $readmore_target = SP_PC_Functions::pcp_metabox_value( 'pcp_link_target', $options );
160 ?>
161 <div class="sp-pcp-readmore">
162 <?php if ( 'none' === $pcp_page_link_type ) { ?>
163 <a class="pcp-readmore-link" target="<?php echo esc_attr( $readmore_target ); ?>" <?php echo wp_kses_post( $pcp_link_rel_text ); ?>>
164 <?php } else { ?>
165 <a class="pcp-readmore-link" target="<?php echo esc_attr( $readmore_target ); ?>" href="<?php the_permalink(); ?>" <?php echo wp_kses_post( $pcp_link_rel_text ); ?>>
166 <?php } ?>
167 <?php echo esc_html( $pcp_read_label ); ?> </a>
168 </div>
169 <?php
170 }
171
172 /**
173 * Post thumb HTML.
174 *
175 * @param array $sorter post content option array.
176 * @param int $scode_id Shortcode ID.
177 * @param int $slide_id The slide/post ID.
178 * @param array $options The slide/post ID.
179 * @return void
180 */
181 public static function pcp_post_thumb_html( $sorter, $scode_id, $slide_id, $options ) {
182 $_post_thumb_setting = SP_PC_Functions::pcp_metabox_value( 'pcp_post_thumb', $sorter );
183 $pcp_page_link_type = SP_PC_Functions::pcp_metabox_value( 'pcp_page_link_type', $options );
184 $pcp_link_rel = SP_PC_Functions::pcp_metabox_value( 'pcp_link_rel', $options );
185 $pcp_link_rel_text = '';
186 if ( $pcp_link_rel ) {
187 $pcp_link_rel_text = "rel='nofollow'";
188 }
189 $pcp_link_target = SP_PC_Functions::pcp_metabox_value( 'pcp_link_target', $options );
190 if ( SP_PC_Functions::pcp_metabox_value( 'post_thumb_show', $_post_thumb_setting ) ) {
191 $pcp_image_attr = SP_PC_Functions::pcp_sized_thumb( $_post_thumb_setting, $slide_id );
192 $thumb_url = $pcp_image_attr['src'];
193 $alter_text = SP_PC_Functions::pcp_thumb_alter_text( $slide_id );
194 if ( ! empty( $thumb_url ) ) {
195 ?>
196 <div class="pcp-post-thumb-wrapper">
197 <div class="sp-pcp-post-thumb-area">
198 <?php if ( 'none' === $pcp_page_link_type ) { ?>
199 <a class="sp-pcp-thumb" <?php echo esc_attr( $pcp_link_rel_text ); ?>>
200 <?php } else { ?>
201 <a class="sp-pcp-thumb" href="<?php the_permalink(); ?>" target="<?php echo esc_attr( $pcp_link_target ); ?>" <?php echo esc_attr( $pcp_link_rel_text ); ?>>
202 <?php } ?>
203 <img src="<?php echo esc_url( $thumb_url ); ?>" width="<?php echo esc_attr( $pcp_image_attr['width'] ); ?>" height="<?php echo esc_attr( $pcp_image_attr['height'] ); ?>" alt="<?php echo esc_attr( $alter_text ); ?>">
204 </a>
205 </div>
206 </div>
207 <?php
208 }
209 }
210 }
211
212 /**
213 * Post meta HTML
214 *
215 * @param array $sorter post content option array.
216 * @return void
217 */
218 public static function pcp_post_meta_html( $sorter ) {
219 $_meta_settings = SP_PC_Functions::pcp_metabox_value( 'pcp_post_meta', $sorter );
220 $post_meta_fields = SP_PC_Functions::pcp_metabox_value( 'pcp_post_meta_group', $_meta_settings );
221 $show_post_meta = SP_PC_Functions::pcp_metabox_value( 'show_post_meta', $_meta_settings, true );
222 $_meta_separator = ' ';
223 // $_meta_separator = SP_PC_Functions::pcp_metabox_value( 'meta_separator', $_meta_settings );
224 if ( $post_meta_fields && $show_post_meta ) {
225 ?>
226 <div class="sp-pcp-post-meta">
227 <?php
228 echo wp_kses_post( apply_filters( 'pcp_post_meta_wrapper_start', '<ul>' ) );
229 SP_PC_Functions::pcp_get_post_meta( $post_meta_fields, $_meta_separator );
230 echo wp_kses_post( apply_filters( 'pcp_post_meta_wrapper_end', '</ul>' ) );
231 ?>
232 </div>
233 <?php
234 }
235 }
236
237 /**
238 * Post content with thumb.
239 *
240 * @param array $sorter post sorting option.
241 * @param string $layout Layout preset.
242 * @param int $scode_id The Shortcode ID.
243 * @param object $post The Post object.
244 * @param array $options The options array.
245 * @return void
246 */
247 public static function pcp_post_content_with_thumb( $sorter, $layout, $scode_id, $post, $options ) {
248 if ( $sorter ) {
249 foreach ( $sorter as $style_key => $style_value ) {
250 switch ( $style_key ) {
251 case 'pcp_post_thumb':
252 self::pcp_post_thumb_html( $sorter, $scode_id, $post->ID, $options );
253 break;
254 case 'pcp_post_title':
255 self::pcp_post_title( $sorter, $layout, $options );
256 break;
257 case 'pcp_post_content':
258 self::pcp_content_html( $sorter, $options );
259 break;
260 case 'pcp_post_meta':
261 self::pcp_post_meta_html( $sorter );
262 break;
263 }
264 }
265 }
266 }
267
268 /**
269 * Post content without thumb.
270 *
271 * @param array $sorter post sorting option.
272 * @param string $layout Layout preset.
273 * @param object $post visitor number.
274 * @param array $options The options array.
275 * @return void
276 */
277 public static function pcp_post_content_without_thumb( $sorter, $layout, $post, $options ) {
278 if ( $sorter ) {
279 foreach ( $sorter as $style_key => $style_value ) {
280 switch ( $style_key ) {
281 case 'pcp_post_title':
282 self::pcp_post_title( $sorter, $layout, $options );
283 break;
284 case 'pcp_post_content':
285 self::pcp_content_html( $sorter, $options );
286 break;
287 case 'pcp_post_meta':
288 self::pcp_post_meta_html( $sorter );
289 break;
290 }
291 }
292 }
293 }
294
295 /**
296 * Pagination function
297 *
298 * @param object $loop Query array.
299 * @param array $view_options shortcode options.
300 * @param array $paged The pagination type.
301 * @param array $on_screen screen type.
302 */
303 public static function pcp_pagination_bar( $loop, $view_options, $paged = null, $on_screen = null ) {
304 // $posts_found;
305 $posts_found = $loop->found_posts;
306 $post_offset = isset( $view_options['pcp_post_offset'] ) ? $view_options['pcp_post_offset'] : 0;
307 $post_limit = isset( $view_options['pcp_post_limit'] ) ? $view_options['pcp_post_limit'] : '';
308 $post_limit = ( $post_limit > 0 && $posts_found > $post_limit ) ? $post_limit : $posts_found;
309 $post_per_page = isset( $view_options['post_per_page'] ) ? $view_options['post_per_page'] : '';
310 $post_per_page = ( $post_per_page > $post_limit ) ? $post_limit : $post_per_page;
311 // Post display settings.
312 $post_limit = (int) $post_limit;
313 if ( $post_limit < 1 ) {
314 $pages = 0;
315 } else {
316 $pages = SP_PC_Functions::pcp_max_pages( $post_limit, $post_per_page );
317 }
318 $big = 999999999; // need an unlikely integer.
319 if ( $pages > 1 ) {
320 if ( get_query_var( 'paged' ) ) {
321 $page_current = max( 1, get_query_var( 'paged' ) );
322 } elseif ( get_query_var( 'page' ) ) {
323 $page_current = max( 1, get_query_var( 'page' ) );
324 } else {
325 $page_current = 1;
326 }
327 $page_links = paginate_links(
328 array(
329 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
330 'format' => '?paged=%#%',
331 'current' => $page_current,
332 'total' => $pages,
333 'show_all' => true,
334 'prev_next' => true,
335 'type' => 'array',
336 'prev_text' => '<i class="fa fa-angle-left"></i>',
337 'next_text' => '<i class="fa fa-angle-right"></i>',
338 )
339 );
340 echo wp_kses_post( implode( $page_links ) );
341 }
342 }
343 }
344