PluginProbe
BlockSpare – Gutenberg Blocks, AI Content Generator & Site Builder for News, Magazine & Blogs / 2.6.6
BlockSpare – Gutenberg Blocks, AI Content Generator & Site Builder for News, Magazine & Blogs v2.6.6
5.0.1 4.1.0 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.1.0 1.1.1 1.1.2 1.2.0 1.2.1 1.2.2 1.2.3 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 2.1.2 2.5.0 2.5.3 All 39 releases
blockspare / inc / latest-post-block / posts-carousel-grid / index.php

index.php in BlockSpare – Gutenberg Blocks, AI Content Generator & Site Builder for News, Magazine & Blogs 2.6.6, at inc/latest-post-block/posts-carousel-grid/index.php

534 lines 23.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 if(!function_exists('blockspare_carousel_render_block_core_latest_posts_list')){
4 function blockspare_carousel_render_block_core_latest_posts_list($attributes)
5 {
6
7 ob_start();
8 $unq_class = mt_rand(100000,999999);
9 $blockuniqueclass = '';
10
11 if(!empty($attributes['uniqueClass'])){
12 $blockuniqueclass = $attributes['uniqueClass'];
13 }else{
14 $blockuniqueclass = 'blockspare-posts-block-list-'.$unq_class;
15 }
16
17
18 if ( isset( $attributes['categories'] ) && ! empty( $attributes['categories'] ) && is_array( $attributes['categories'] ) ) {
19 $categories = array();
20 $i = 1;
21 foreach ( $attributes['categories'] as $key => $value ) {
22 $categories[] = $value['value'];
23 }
24 } else {
25 $categories = array();
26 }
27
28 if ( isset( $attributes['tags'] ) && ! empty( $attributes['tags'] ) && is_array( $attributes['tags'] ) ) {
29 $tags = array();
30 $i = 1;
31 foreach ( $attributes['tags'] as $key => $value ) {
32 $tags[] = $value['value'];
33 }
34 } else {
35 $tags = array();
36 }
37
38 /* Setup the query */
39
40 $query_args = array(
41 'posts_per_page' => $attributes['postsToShow'],
42 'post_status' => 'publish',
43 'order' => $attributes['order'],
44 'orderby' => $attributes['orderBy'],
45 'offset' => $attributes['offset'],
46 'post_type' => $attributes['postType'],
47 'ignore_sticky_posts' => 1,
48 );
49
50 if($attributes['taxType'] =='category'){
51 $query_args['category__in'] =$categories;
52
53 }
54 if($attributes['taxType'] =='post_tag'){
55 $query_args['tag__in'] =$tags;
56
57 }
58
59
60 if($attributes['taxType'] !='category' && $attributes['taxType'] != 'post_tag'){
61
62 $tax_type = $attributes['taxType'];
63 if ( $tax_type ) {
64 $query_args['tax_query'][] = array(
65 'taxonomy' => ( isset( $tax_type ) ) ? $tax_type : 'category',
66 'field' => 'id',
67 'terms' => $categories,
68 'operator' => 'IN' ,
69 );
70 }
71 }
72
73 $grid_query = new WP_Query($query_args);
74
75 $next = $attributes['carouselNextIcon'];
76 $prevstr = str_replace("-right", "-left",$attributes['carouselNextIcon']);
77
78 $centermode = false;
79
80 $responsivelayoutTab = 1;
81 $responsivelayoutMobile = 1;
82
83
84 if($attributes['numberofSlide']>2){
85 $responsivelayoutTab = 2;
86 $responsivelayoutMobile =1;
87 }else{
88 $responsivelayoutTab = $attributes['numberofSlide'];
89 }
90
91
92 $carousel_args = array(
93
94 'dots'=>$attributes['showDots'],
95 'loop'=>true,
96 'autoplay'=> $attributes['enableAutoPlay'],
97 'speed'=>$attributes['carouselSpeed'],
98 'arrows'=>$attributes['showsliderNextPrev'],
99 'slidesToShow'=> ($attributes['postListingOption'] ==='latest-posts-block-carousel-grid')?$attributes['numberofSlide']:1,
100 'centerMode'=>$centermode,
101 'responsive' => array(
102 array(
103 'breakpoint' => 769,
104 'settings' => array(
105 'slidesToShow' => $responsivelayoutTab,
106 'slidesToScroll' => 1,
107 'infinite' => true,
108 'centerMode'=>false,
109 ),
110 ),
111 // array(
112 // 'breakpoint' => 600,
113 // 'settings' => array(
114 // 'slidesToShow' => $responsivelayoutTab,
115 // 'slidesToScroll' => 1,
116 // 'centerMode'=>false,
117 // ),
118 // ),
119 array(
120 'breakpoint' => 481,
121 'settings' => array(
122 'slidesToShow' => $responsivelayoutMobile,
123 'slidesToScroll' => 1,
124 'centerMode'=>false,
125 ),
126 ),
127 ),
128 );
129 $carousel_args_encoded = wp_json_encode($carousel_args);
130
131
132
133 /* Start the loop */
134 if ($grid_query->have_posts()) {
135 $alignclass = blockspare_checkalignment($attributes['align']);
136 /* Build the block classes */
137 $class = "wp-block-blockspare-posts-block-blockspare-posts-block-latest-posts align".$alignclass.' '.$attributes['blockHoverEffect'].' '.$blockuniqueclass;
138
139 if (isset($attributes['className'])) {
140 $class .= ' ' . $attributes['className'];
141 }
142 if($attributes['enableBoxShadow']){
143 $class .= ' bs-has-shadow';
144 }
145
146 $list_layout_class = $attributes['grid'];
147
148
149 $hoverNavClass ='';
150 if($attributes['enableNavInHover']){
151 $hoverNavClass ='nav-on-hover';
152 }
153 //$list_layout_class = $attributes['design'];
154 $listgridClass = 'blockspare-posts-block-is-carousel' . " ".$attributes['navigationSize'].' '.$attributes['navigationShape'].' '.$hoverNavClass .' blockspare-slides-'.$attributes['numberofSlide'];
155
156 $animation_class = '';
157 if( $attributes['animation']){
158 $animation_class='blockspare-block-animation';
159 }
160
161 /* Layout orientation class */
162 $grid_class = 'blockspare-posts-block-latest-post-carousel-wrap blockspare-posts-block-latest-post-wrap'.' ' . $listgridClass . ' ' . $list_layout_class. ' has-gutter-space-'.$attributes['gutterSpace']. " ".$attributes['postListingOption'].' '.$animation_class;
163
164 $category_class = 'blockspare-posts-block-post-category';
165
166 if($attributes['categoryLayoutOption'] =='none'){
167 $category_class .= ' has-no-category-style';
168 }
169
170
171
172 ?>
173
174 <div class="<?php echo esc_attr($class);?>">
175 <section class="blockspare-posts-block-post-wrap">
176 <div class="<?php echo esc_attr($grid_class);?>" blockspare-animation=<?php echo esc_attr( $attributes['animation'] )?>>
177 <div class="latest-post-carousel" data-slick="<?php echo esc_attr($carousel_args_encoded); ?>"
178 data-next="<?php echo esc_attr($next);?>" data-prev="<?php echo esc_attr($prevstr);?>">
179 <?php while ($grid_query->have_posts()) {
180 $grid_query->the_post();
181
182 /* Setup the post ID */
183 $post_id = get_the_ID();
184
185 /* Setup the featured image ID */
186 $post_thumb_id = get_post_thumbnail_id($post_id);
187
188 $has_img_class = '';
189
190 if (!$post_thumb_id) {
191 $has_img_class = "post-has-no-image";
192 }
193
194 $contentOrderClass ='';
195 if($attributes['contentOrder']=='content-order-1'){
196 $contentOrderClass .= 'contentorderone';
197 }
198 if( $attributes['contentOrder']=='content-order-2'){
199 $contentOrderClass .= 'contentordertwo';
200 }
201
202
203 /* Setup the post classes */
204 $post_classes = 'blockspare-posts-block-post-single blockspare-hover-item '. $contentOrderClass;
205 if($attributes['enableEqualHeight']){
206 $post_classes .= ' bs-has-equal-height';
207 }
208
209 $layoutclass = false;
210
211 if ($attributes['grid'] != 'blockspare-posts-block-grid-layout-3' && $attributes['grid'] != 'blockspare-posts-block-grid-layout-4') {
212 $layoutclass = true;
213 }
214
215 if ($layoutclass) {
216 $post_classes .= ' has-background';
217 } else {
218 $post_classes .= ' blockspare-hover-child';
219 }
220
221 /* Add sticky class */
222 if (is_sticky($post_id)) {
223 $post_classes .= ' sticky';
224 } else {
225 $post_classes .= null;
226 }
227 ?>
228 <div>
229 <div id="<?php echo esc_attr($post_id);?>" class="<?php echo esc_attr($post_classes).' '.$has_img_class; ?>">
230 <?php blockspare_post_image($attributes,$post_id,$category_class);?>
231 <?php blockspare_post_content($attributes,$post_id,$category_class);?>
232 </div>
233 </div>
234
235
236 <?php } ?>
237 </div>
238 </div>
239 </section>
240 </div>
241 <?php wp_reset_postdata();
242 $data_content = latest_posts_style_control_carousel($blockuniqueclass ,$attributes);
243 $data_content .= ob_get_clean();
244 return $data_content;
245 }
246 }
247 }
248
249 /**
250 * Registers the post grid block on server
251 */
252 if(!function_exists('blockspare_carousel_register_block_core_latest_posts_list')){
253 function blockspare_carousel_register_block_core_latest_posts_list()
254 {
255
256 if (!function_exists('register_block_type')) {
257 return;
258 }
259
260
261 ob_start();
262 include BLOCKSPARE_PLUGIN_DIR . 'inc/latest-post-block/posts-carousel-grid/block.json';
263
264 $metadata = json_decode(ob_get_clean(), true);
265
266 /* Block attributes */
267 register_block_type(
268 'blockspare/latest-posts-block-carousel-grid',
269 array(
270 'attributes' =>$metadata['attributes'],
271 'render_callback' => 'blockspare_carousel_render_block_core_latest_posts_list',
272 )
273 );
274 }
275
276 add_action('init', 'blockspare_carousel_register_block_core_latest_posts_list');
277 }
278
279
280
281 if(!function_exists('latest_posts_style_control_carousel')){
282 function latest_posts_style_control_carousel($blockuniqueclass ,$attributes)
283 {
284
285
286 $block_content = '';
287 $block_content .= '<style type="text/css">';
288 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-wrap{
289 margin-top:' . $attributes['marginTop'] . 'px;
290 margin-bottom:' . $attributes['marginBottom'] . 'px;
291 margin-left:' . $attributes['marginLeft'] . 'px;
292 margin-right:' . $attributes['marginRight'] . 'px;
293 }';
294
295 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-content{
296 padding-top:' . $attributes['contentPaddingTop'] . 'px;
297 padding-right:' . $attributes['contentPaddingRight'] . 'px;
298 padding-bottom:' . $attributes['contentPaddingBottom'] . 'px;
299 padding-left:' . $attributes['contentPaddingLeft'] . 'px;
300 }';
301
302
303 if ($attributes['categoryLayoutOption'] == 'solid') {
304
305 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-category a{
306 color:' . $attributes['categoryTextColor'] . "!important" . ';
307 background-color:' . $attributes['categoryBackgroundColor'] . "!important" . ';
308 border-radius:' . $attributes['categoryBorderRadius'] . "px" . ';
309 }';
310
311 } else if ($attributes['categoryLayoutOption'] == 'border') {
312
313 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-category a{
314 color:' . $attributes['categoryTextColor'] . "!important" . ';
315 background-color:' . "transparent" . ';
316 border:' . "1px solid" . $attributes['categoryBorderColor'] . ';
317 border-radius:' . $attributes['categoryBorderRadius'] . "px" . ';
318 border-width:' . $attributes['categoryBorderWidth'] . "px" . ';
319 }';
320
321 } else {
322 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-category a{
323 color:' . $attributes['categoryTextColor'] . "!important" . ';
324 }';
325 }
326
327
328 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-category{
329 margin-top:' . $attributes['categoryMarginTop'] . 'px' . ';
330 margin-bottom:' . $attributes['categoryMarginBottom'] . 'px' . ';
331 margin-left:' . $attributes['categoryMarginLeft'] . 'px' . ';
332 margin-right:' . $attributes['categoryMarginRight'] . 'px' . ';
333 }';
334
335
336 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-byline{
337
338 margin-top:' . $attributes['metaMarginTop'] . 'px' . ';
339 margin-bottom:' . $attributes['metaMarginBottom'] . 'px' . ';
340 margin-left:' . $attributes['metaMarginLeft'] . 'px' . ';
341 margin-right:' . $attributes['metaMarginRight'] . 'px' . ';
342 }';
343
344
345 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-more-link{
346 margin-top:' . $attributes['moreLinkMarginTop'] . 'px' . ';
347 margin-bottom:' . $attributes['moreLinkMarginBottom'] . 'px' . ';
348 margin-left:' . $attributes['moreLinkMarginLeft'] . 'px' . ';
349 margin-right:' . $attributes['moreLinkMarginRight'] . 'px' . ';
350 }';
351
352 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-is-carousel span:before, .blockspare-posts-block-latest-post-carousel-wrap ul li button{
353 color:' . $attributes['navigationColor'] . ';
354 }';
355
356 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-is-carousel .slick-slider .slick-dots > li button{
357 background-color:'. $attributes['navigationColor']. ';
358 }';
359
360 if($attributes['navigationShape'] == 'lpc-navigation-1' || $attributes['navigationShape'] == 'lpc-navigation-2'){
361 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-is-carousel .slick-slider .slick-arrow:after{
362 background-color:'. $attributes['navigationShapeColor']. '
363 }';
364 }elseif($attributes['navigationShape'] == 'lpc-navigation-3' || $attributes['navigationShape'] == 'lpc-navigation-4'){
365 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-is-carousel .slick-slider .slick-arrow{
366 border-color:'. $attributes['navigationShapeColor']. '
367 }';
368 }else{
369 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-is-carousel .slick-slider .slick-arrow{
370 border-color:transparent ;
371 background-color:transparent
372 }';
373
374 }
375
376 //Title Hover
377
378 if($attributes['titleOnHover']=='lpc-title-hover') {
379 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-content .blockspare-posts-block-title-link:hover span{
380 color: ' . $attributes['titleOnHoverColor'] . ';
381
382 }';
383 }
384
385 if($attributes['titleOnHover']=='lpc-title-border') {
386 $block_content .= ' .' . $blockuniqueclass . ' .lpc-title-border .blockspare-posts-block-post-grid-title .blockspare-posts-block-title-link span:hover{
387 box-shadow: inset 0 -2px 0 0 ' . $attributes['titleOnHoverColor'] . ';
388
389 }';
390 }
391
392 //Content Bakcground
393
394 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-title a span{
395 color: ' . $attributes['postTitleColor'] . ';
396
397 }';
398
399 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-author a span{
400 color:' . $attributes['linkColor'] . ';
401 }';
402
403
404 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-more-link span{
405 color:' . $attributes['linkColor'] . ';
406 }';
407
408 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-date{
409 color:' . $attributes['generalColor'] . ';
410 }';
411
412 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-excerpt-content,' . ' .' . $blockuniqueclass . ' .comment_count{
413 color:' . $attributes['generalColor'] . ';
414
415 }';
416
417
418 //end Content Background
419
420
421 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-title{
422 margin-top:' . $attributes['titleMarginTop'] . 'px' . ';
423 margin-bottom:' . $attributes['titleMarginBottom'] . 'px' . ';
424 margin-left:' . $attributes['titleMarginLeft'] . 'px' . ';
425 margin-right:' . $attributes['titleMarginRight'] . 'px' . ';
426 }';
427
428
429 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-excerpt-content{
430 margin-top:' . $attributes['exceprtMarginTop'] . 'px' . ';
431 margin-bottom:' . $attributes['exceprtMarginBottom'] . 'px' . ';
432 margin-left:' . $attributes['exceprtMarginLeft'] . 'px' . ';
433 margin-right:' . $attributes['exceprtMarginRight'] . 'px' . ';
434 }';
435
436
437
438
439 $boxshadow= false;
440
441 if(!empty($attributes['grid']) && isset($attributes['grid'])){
442 if($attributes['grid']=='blockspare-posts-block-grid-layout-1' || $attributes['grid']=='blockspare-posts-block-grid-layout-2' || $attributes['grid']=='blockspare-posts-block-grid-layout-5' || $attributes['grid']=='blockspare-posts-block-grid-layout-6' || $attributes['grid']=='blockspare-posts-block-grid-layout-9' || $attributes['grid']=='blockspare-posts-block-grid-layout-10' || $attributes['grid']=='blockspare-posts-block-grid-layout-13' || $attributes['grid']=='blockspare-posts-block-grid-layout-14'){
443 $boxshadow = true;
444 }
445 }
446
447
448
449
450
451
452 if($boxshadow) {
453 if($attributes['enableBoxShadow']) {
454 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-single{
455 box-shadow: ' . $attributes['xOffset'] . 'px ' . $attributes['yOffset'] . 'px ' . $attributes['blur'] . 'px ' . $attributes['spread'] . 'px ' . $attributes['shadowColor'] . ';
456 border-radius:' . $attributes['borderRadius'] . 'px' . ';
457 }';
458 }else{
459 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-single{
460 border-radius:' . $attributes['borderRadius'] . 'px' . ';
461 }';
462 }
463 }else{
464 if($attributes['enableBoxShadow']){
465 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-wrap .blockspare-posts-block-post-single .blockspare-posts-block-post-img img{
466 box-shadow: ' . $attributes['xOffset'] . 'px ' . $attributes['yOffset'] . 'px ' . $attributes['blur'] . 'px ' . $attributes['spread'] . 'px ' . $attributes['shadowColor'] . ';
467 border-radius:' . $attributes['borderRadius'] . 'px' . ';
468 }';
469 }else{
470 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-wrap .blockspare-posts-block-post-single .blockspare-posts-block-post-img img{
471 border-radius:' . $attributes['borderRadius'] . 'px' . ';
472 }';
473 }
474
475 }
476
477
478
479
480 if ($attributes['grid'] != 'blockspare-posts-block-grid-layout-3' && $attributes['grid'] != 'blockspare-posts-block-grid-layout-4' && $attributes['grid'] != 'blockspare-posts-block-grid-layout-7'&& $attributes['grid'] != 'blockspare-posts-block-grid-layout-8' && $attributes['grid'] != 'blockspare-posts-block-grid-layout-11' && $attributes['grid'] != 'blockspare-posts-block-grid-layout-12') {
481
482 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-single{
483 background-color:' . $attributes['backGroundColor'] . ';
484 }';
485 }
486
487
488
489
490 //Font Settings
491
492 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-title a span{
493
494 font-size: ' . $attributes['postTitleFontSize'] . $attributes['titleFontSizeType'] . ';
495 '.bscheckFontfamily($attributes['titleFontFamily']).';
496 '.bscheckFontfamilyWeight($attributes['titleFontWeight']).';
497
498 }';
499
500 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-title{
501
502 line-height:' .$attributes['lineHeight'].';
503 }';
504
505 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-content .blockspare-posts-block-post-grid-excerpt .blockspare-posts-block-post-grid-excerpt-content{
506 font-size:' . $attributes['descriptionFontSize'] . $attributes['descriptionFontSizeType'] . ';
507 '.bscheckFontfamily($attributes['descriptionFontFamily']).';
508 '.bscheckFontfamilyWeight($attributes['descriptionFontWeight']).';
509 }';
510
511 $block_content .= '@media (max-width: 1025px) { ';
512 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-title a span{
513 font-size: ' . $attributes['titleFontSizeTablet'] . $attributes['titleFontSizeType'] . ';
514 }';
515 $block_content .= ' .' . $blockuniqueclass .' .blockspare-posts-block-post-content .blockspare-posts-block-post-grid-excerpt .blockspare-posts-block-post-grid-excerpt-content{
516 font-size:' . $attributes['descriptionFontSizeTablet'].$attributes['descriptionFontSizeType'].'
517 }';
518 $block_content .= '}';
519
520
521 $block_content .= '@media (max-width: 767px) { ';
522 $block_content .= ' .' . $blockuniqueclass . ' .blockspare-posts-block-post-grid-title a span{
523 font-size: ' . $attributes['titleFontSizeMobile'] . $attributes['titleFontSizeType'] . ';
524 }';
525 $block_content .= ' .' . $blockuniqueclass .' .blockspare-posts-block-post-content .blockspare-posts-block-post-grid-excerpt .blockspare-posts-block-post-grid-excerpt-content{
526 font-size:' . $attributes['descriptionFontSizeMobile'].$attributes['descriptionFontSizeType'].'
527 }';
528 $block_content .= '}';
529
530 $block_content .= '</style>';
531 return $block_content;
532 }
533 }
534