Advertisement
Guest User

Untitled

a guest
Jun 26th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.16 KB | None | 0 0
  1. function gstaad_mainpage_carousel( $category ) {
  2.  
  3. // allowed feeds
  4. $categories = [
  5. 'new',
  6. 'highlights'
  7. ];
  8.  
  9. if( !in_array( $category, $categories ) ) {
  10. return;
  11. }
  12.  
  13. $args = [
  14. 'post_type' => 'video',
  15. 'suppress_filters' => 0
  16. ];
  17.  
  18.  
  19. switch( $category ) {
  20. case 'highlights':
  21.  
  22. // extend category with order by likes and filtered by "highlight" enabled
  23. $_args = [
  24. 'meta_key' => 'likes',
  25. 'orderby' => 'meta_value_num',
  26. 'order' => 'DESC',
  27. 'meta_query' =>
  28.  
  29. /**
  30. * Merge the default video filters with the highlight filter
  31. */
  32. array_merge(
  33. [
  34. [
  35. 'key' => 'highlight',
  36. 'value' => '1',
  37. 'compare' => '='
  38. ],
  39. ],
  40. gstaadpluginVideo::getDefaultVideoFilters()
  41. )
  42.  
  43. ];
  44.  
  45. break;
  46.  
  47. case 'new':
  48.  
  49. // only filter out default filters
  50. $_args = [
  51. 'meta_query' => gstaadpluginVideo::getDefaultVideoFilters()
  52. ];
  53.  
  54. break;
  55.  
  56. }
  57.  
  58. $args = array_merge( $args, $_args );
  59.  
  60.  
  61. $query = new WP_Query( $args );
  62.  
  63. // loop the videos
  64.  
  65. if( !$query->have_posts() ) {
  66. return;
  67. }
  68.  
  69. $html = '<ul class="owl-carousel carousel-fw fw-carousel"
  70. id="%s-carousel"
  71. data-columns="6"
  72. data-autoplay="yes"
  73. data-loop="yes"
  74. data-padding="0"
  75. data-center-align="yes"
  76. data-autoplay-timeout="5000"
  77. data-pagination="no"
  78. data-arrows="yes"
  79. data-items-desktop="2"
  80. data-items-desktop-small="1"
  81. data-items-tablet="1"
  82. data-items-mobile="3">';
  83.  
  84. $html = sprintf( $html, $category );
  85.  
  86. while( $query->have_posts() ) {
  87.  
  88. $query->the_post();
  89.  
  90. // set video object
  91. $video = new gstaadpluginVideo( get_the_ID() );
  92.  
  93. // get image
  94. $image = $video->getThumbnail();
  95.  
  96. // get description
  97. $description = $video->getDescription( 'short' );
  98. if( strlen( $description ) > 0 ) {
  99. $description = sprintf(
  100. '<span>%s</span>',
  101. $video->getDescription( 'short' )
  102. );
  103. }else {
  104. $description = '<div class="no-description"></div>';
  105. }
  106.  
  107. // get list of categories without links as the container itself is already linked
  108. $categories = $video->getCategoryList( false );
  109.  
  110. // set up item
  111. $item =
  112. '<li class="item match-height">
  113. <!-- start news items -->
  114. <a href="%1$s" title="%2$s" class="news-items">
  115. <!-- start news media -->
  116. <span class="news-media">
  117. <span class="media-box">
  118. <img src="%3$s" alt="%2$s">
  119. <span class="ico-play"><i class="fa fa-play-circle-o"></i></span>
  120. </span>
  121. <span class="news-caption">
  122. <span>%4$s</span>
  123. <strong>%2$s</strong>
  124. </span>
  125. </span>
  126. <!-- end news media -->
  127. <!-- start news content -->
  128. <span class="news-content">
  129. %5$s
  130. </span>
  131. <!-- end news content -->
  132. </a>
  133. <!-- end news items -->
  134. </li>';
  135.  
  136. $item = sprintf(
  137. $item,
  138. get_permalink(),
  139. get_the_title(),
  140. $image,
  141. $categories,
  142. $description
  143. );
  144.  
  145. $html .= $item;
  146. }
  147.  
  148. $html .= '</ul>';
  149.  
  150. wp_reset_postdata();
  151.  
  152. return $html;
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement