PluginProbe
Smart Post – Post Grid, Post Carousel, Post Slider Gutenberg Blocks for Blog & News / 2.2.7
Smart Post – Post Grid, Post Carousel, Post Slider Gutenberg Blocks for Blog & News v2.2.7
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.2.7, at public/template/loop/class-loop-html.php

338 lines 11.9 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 $pcp_id Shortcode id.
26 * @return void
27 */
28 public static function pcp_section_title( $pcp_id ) {
29 $section_title_text = apply_filters( 'pcp_section_title_text', get_the_title( $pcp_id ) );
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 * @return void
40 */
41 public static function pcp_post_title( $sorter, $layout, $options ) {
42
43 $_meta_settings = SP_PC_Functions::pcp_metabox_value( 'pcp_post_meta', $sorter );
44 $post_meta_fields = SP_PC_Functions::pcp_metabox_value( 'pcp_post_meta_group', $_meta_settings );
45 $show_post_meta = SP_PC_Functions::pcp_metabox_value( 'show_post_meta', $_meta_settings, true );
46 $pcp_page_link_type = SP_PC_Functions::pcp_metabox_value( 'pcp_page_link_type', $options );
47 $pcp_link_rel = SP_PC_Functions::pcp_metabox_value( 'pcp_link_rel', $options );
48 $pcp_link_rel_text = '';
49 if ( $pcp_link_rel ) {
50 $pcp_link_rel_text = "rel='nofollow'";
51 }
52 $pcp_link_target = SP_PC_Functions::pcp_metabox_value( 'pcp_link_target', $options );
53 if ( is_array( $post_meta_fields ) && 'accordion_layout' !== $layout && $show_post_meta ) {
54 foreach ( $post_meta_fields as $each_meta ) {
55 if ( 'taxonomy' === $each_meta['select_post_meta'] ) {
56 $taxonomy = $each_meta['post_meta_taxonomy'];
57 $meta_position = $each_meta['pcp_meta_position'];
58 if ( 'above_title' === $meta_position ) {
59 $terms = get_the_term_list( get_the_ID(), $taxonomy, '', ' ' );
60 if ( $terms ) {
61 ?>
62 <div class="pcp-category above_title <?php echo $taxonomy; ?>">
63 <?php echo $terms; ?>
64 </div>
65 <?php
66 };
67 }
68 }
69 }
70 }
71
72 $post_title_setting = isset( $sorter['pcp_post_title'] ) ? $sorter['pcp_post_title'] : '';
73 $show_post_title = SP_PC_Functions::pcp_metabox_value( 'show_post_title', $post_title_setting );
74
75 $pcp_post_title = get_the_title( get_the_ID() );
76
77 if ( $show_post_title && ! empty( $pcp_post_title ) ) {
78 // Post Title Settings.
79 $post_title_tag = SP_PC_Functions::pcp_metabox_value( 'post_title_tag', $post_title_setting, 'h2' );
80 $allowed_html_tags = array(
81 'em' => array(),
82 'strong' => array(),
83 'sup' => array(),
84 'i' => array(),
85 'small' => array(),
86 'del' => array(),
87 'br' => array(),
88 'ins' => array(),
89 'span' => array(
90 'style' => array(),
91 'class' => array(),
92 ),
93 );
94 ?>
95 <<?php echo esc_attr( $post_title_tag ); ?> class="sp-pcp-title">
96 <?php if ( 'none' === $pcp_page_link_type ) { ?>
97 <?php echo sprintf( '<a %2$s>%1$s</a>', wp_kses( trim( $pcp_post_title ), $allowed_html_tags ), esc_attr( $pcp_link_rel_text ) ); ?>
98 <?php } else { ?>
99 <?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 ), esc_attr( $pcp_link_rel_text ), esc_attr( $pcp_link_target ) ); ?>
100 <?php } ?>
101 </<?php echo esc_attr( $post_title_tag ); ?>>
102 <?php
103 }
104 }
105
106 /**
107 * Show Post Content html.
108 *
109 * @param array $sorter The field ID array.
110 * @param array $options options.
111 * @return void
112 */
113 public static function pcp_content_html( $sorter, $options ) {
114 $post_content_setting = SP_PC_Functions::pcp_metabox_value( 'pcp_post_content', $sorter );
115 $show_post_content = SP_PC_Functions::pcp_metabox_value( 'show_post_content', $post_content_setting );
116 if ( $show_post_content ) {
117 $pcp_content_type = SP_PC_Functions::pcp_metabox_value( 'post_content_type', $post_content_setting );
118 ?>
119 <div class="sp-pcp-post-content">
120 <?php
121 echo wp_kses_post( SP_PC_Functions::pcp_content( $post_content_setting, $pcp_content_type ) );
122 wp_kses(
123 self::pcp_readmore( $post_content_setting, $pcp_content_type, $options ),
124 array(
125 'a' => array(
126 'href' => array(),
127 'title' => array(),
128 ),
129 'em' => array(),
130 'strong' => array(),
131 )
132 );
133 ?>
134 </div>
135 <?php
136 }
137 }
138
139 /**
140 * Read more function
141 *
142 * @param array $view_options Read more options array.
143 * @param array $content_type The content type.
144 * @param array $options The parent of this field.
145 */
146 public static function pcp_readmore( $view_options, $content_type, $options ) {
147 $show_read_more = isset( $view_options['show_read_more'] ) ? $view_options['show_read_more'] : '';
148 if ( ! $show_read_more || 'full_content' === $content_type ) {
149 return '';
150 }
151 // $read_more_type = isset( $view_options['read_more_type'] ) ? $view_options['read_more_type'] : '';
152 $pcp_read_label = isset( $view_options['pcp_read_label'] ) ? $view_options['pcp_read_label'] : '';
153 $pcp_page_link_type = SP_PC_Functions::pcp_metabox_value( 'pcp_page_link_type', $options );
154 $pcp_link_rel = SP_PC_Functions::pcp_metabox_value( 'pcp_link_rel', $options );
155 $pcp_link_rel_text = '';
156 if ( $pcp_link_rel ) {
157 $pcp_link_rel_text = "rel='nofollow'";
158 }
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 esc_html( $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 esc_html( $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 * @param int $visitor_count views count.
217 * @return void
218 */
219 public static function pcp_post_meta_html( $sorter ) {
220 $_meta_settings = SP_PC_Functions::pcp_metabox_value( 'pcp_post_meta', $sorter );
221 $post_meta_fields = SP_PC_Functions::pcp_metabox_value( 'pcp_post_meta_group', $_meta_settings );
222 $show_post_meta = SP_PC_Functions::pcp_metabox_value( 'show_post_meta', $_meta_settings, true );
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 apply_filters( 'pcp_post_meta_wrapper_start', '<ul>' );
229 SP_PC_Functions::pcp_get_post_meta( $post_meta_fields, $_meta_separator );
230 echo 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 * @return void
245 */
246 public static function pcp_post_content_with_thumb( $sorter, $layout, $scode_id, $post, $options ) {
247 if ( $sorter ) {
248 foreach ( $sorter as $style_key => $style_value ) {
249 switch ( $style_key ) {
250 case 'pcp_post_thumb':
251 self::pcp_post_thumb_html( $sorter, $scode_id, $post->ID, $options );
252 break;
253 case 'pcp_post_title':
254 self::pcp_post_title( $sorter, $layout, $options );
255 break;
256 case 'pcp_post_content':
257 self::pcp_content_html( $sorter, $options );
258 break;
259 case 'pcp_post_meta':
260 self::pcp_post_meta_html( $sorter );
261 break;
262 }
263 }
264 }
265 }
266
267 /**
268 * Post content without thumb.
269 *
270 * @param array $sorter post sorting option.
271 * @param string $layout Layout preset.
272 * @param object $post visitor number.
273 * @return void
274 */
275 public static function pcp_post_content_without_thumb( $sorter, $layout, $post, $options ) {
276 if ( $sorter ) {
277 foreach ( $sorter as $style_key => $style_value ) {
278 switch ( $style_key ) {
279 case 'pcp_post_title':
280 self::pcp_post_title( $sorter, $layout, $options );
281 break;
282 case 'pcp_post_content':
283 self::pcp_content_html( $sorter, $options );
284 break;
285 case 'pcp_post_meta':
286 self::pcp_post_meta_html( $sorter );
287 break;
288 }
289 }
290 }
291 }
292
293 /**
294 * Pagination function
295 *
296 * @param array $loop Query array.
297 * @param array $upper_id Fields upper id.
298 * @param array $paged The pagination type.
299 * @param array $on_screen screen type.
300 */
301 public static function pcp_pagination_bar( $loop, $upper_id, $paged = null, $on_screen = null ) {
302 $view_options = get_post_meta( $upper_id, 'sp_pcp_view_options', true );
303 // $posts_found;
304 $posts_found = $loop->found_posts;
305 $post_offset = isset( $view_options['pcp_post_offset'] ) ? $view_options['pcp_post_offset'] : 0;
306 $post_limit = isset( $view_options['pcp_post_limit'] ) ? $view_options['pcp_post_limit'] : '';
307 $post_limit = ( $post_limit > 0 && $posts_found > $post_limit ) ? $post_limit : $posts_found;
308 $post_per_page = isset( $view_options['post_per_page'] ) ? $view_options['post_per_page'] : '';
309 $post_per_page = ( $post_per_page > $post_limit ) ? $post_limit : $post_per_page;
310 // Post display settings.
311 $pagination_type = isset( $view_options['post_pagination_type'] ) ? $view_options['post_pagination_type'] : '';
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 $page_current = max( 1, get_query_var( 'paged' ) );
321 $page_links = paginate_links(
322 array(
323 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
324 'format' => '?paged=%#%',
325 'current' => $page_current,
326 'total' => $pages,
327 'show_all' => true,
328 'prev_next' => true,
329 'type' => 'array',
330 'prev_text' => '<i class="fa fa-angle-left"></i>',
331 'next_text' => '<i class="fa fa-angle-right"></i>',
332 )
333 );
334 echo implode( $page_links );
335 }
336 }
337 }
338