loop.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <?php
  2. /**
  3. * Catch-all post loop
  4. */
  5. // display full post/image or thumbs
  6. if ( ! isset( $called_from_shortcode ) ) {
  7. $settings = new stdClass;
  8. $settings->show_content = class_exists( 'Vamtam_Elements_B' );
  9. $settings->show_title = true;
  10. $settings->show_media = true;
  11. $settings->pagination = true;
  12. $settings->layout = class_exists( 'Vamtam_Elements_B' ) ? rd_vamtam_get_option( 'archive-layout' ) : 'normal';
  13. $settings->columns = $settings->layout === 'normal' ? 1 : 2;
  14. $settings->gap = true;
  15. $news = 'mosaic' === $settings->layout;
  16. $max_columns = 0;
  17. }
  18. if ( defined( 'VAMTAM_ARCHIVE_TEMPLATE' ) && ! $news ) {
  19. $settings->show_content = false;
  20. }
  21. global $vamtam_loop_vars;
  22. $old_vamtam_loop_vars = $vamtam_loop_vars;
  23. $vamtam_loop_vars = array(
  24. 'show_content' => $settings->show_content,
  25. 'show_title' => $settings->show_title,
  26. 'show_media' => $settings->show_media,
  27. 'news' => $news,
  28. 'columns' => $settings->columns,
  29. 'layout' => $settings->layout,
  30. );
  31. $is_cube = in_array( $settings->layout, array( 'mosaic', 'small' ), true );
  32. $wrapper_class = array();
  33. $wrapper_class[] = $news ? 'news' : 'regular';
  34. $wrapper_class[] = $settings->layout;
  35. if ( $news && ! $is_cube ) {
  36. $wrapper_class[] = 'row';
  37. }
  38. $cube_options = array();
  39. $data_options = '';
  40. if ( $is_cube ) {
  41. $cube_options = array(
  42. 'layoutMode' => $settings->layout,
  43. 'sortToPreventGaps' => true,
  44. 'defaultFilter' => '*',
  45. 'animationType' => 'quicksand',
  46. 'gapHorizontal' => $settings->gap ? 30 : 0,
  47. 'gapVertical' => $settings->gap ? 30 : 0,
  48. 'gridAdjustment' => 'responsive',
  49. 'mediaQueries' => VamtamTemplates::scrollable_columns( $max_columns ),
  50. 'displayType' => 'bottomToTop',
  51. 'displayTypeSpeed' => 100,
  52. );
  53. $wrapper_class[] = 'vamtam-cubeportfolio cbp';
  54. $data_options = 'data-options="' . esc_attr( json_encode( $cube_options ) ) . '"';
  55. wp_enqueue_style( 'cubeportfolio' );
  56. if ( VamtamTemplates::early_cube_load() ) {
  57. wp_enqueue_script( 'cubeportfolio' );
  58. }
  59. $GLOBALS['vamtam_inside_cube'] = true;
  60. // print late styles, otherwise Beaver will skip over some of them
  61. print_late_styles();
  62. }
  63. ?>
  64. <div class="loop-wrapper clearfix <?php echo esc_attr( implode( ' ', $wrapper_class ) ) ?>" data-columns="<?php echo esc_attr( $settings->columns ) ?>" <?php echo $data_options // xss ok ?>>
  65. <?php
  66. do_action( 'vamtam_before_main_loop' );
  67. $i = 0;
  68. if ( ! isset( $blog_query ) ) {
  69. $blog_query = $GLOBALS['wp_query'];
  70. }
  71. if ( $blog_query->have_posts() ) :
  72. while ( $blog_query->have_posts() ) : $blog_query->the_post();
  73. $post_class = array();
  74. $post_class[] = 'page-content post-header';
  75. if ( $settings->columns === 1 && ! $news ) {
  76. $post_class[] = 'clearfix';
  77. }
  78. if ( $news && 0 === $i % $settings->columns ) {
  79. $post_class[] = 'clearboth';
  80. }
  81. if ( ! $blog_query->is_single() ) {
  82. $post_class[] = 'list-item';
  83. }
  84. if ( $is_cube ) {
  85. $post_class[] = 'cbp-item';
  86. }
  87. $starting_width = 100 / $settings->columns;
  88. ?>
  89. <div <?php post_class( implode( ' ', $post_class ) ) ?> style="width: <?php echo esc_attr( $starting_width ) ?>%">
  90. <div>
  91. <?php include locate_template( 'templates/post.php' ); ?>
  92. </div>
  93. </div>
  94. <?php
  95. $i++;
  96. endwhile;
  97. endif;
  98. do_action( 'vamtam_after_main_loop' );
  99. ?>
  100. </div>
  101. <?php
  102. if ( vamtam_sanitize_bool( $settings->pagination ) ) {
  103. $pagination_type = rd_vamtam_get_option( 'pagination-type' );
  104. if ( 'mosaic' !== $settings->layout || defined( 'VAMTAM_ARCHIVE_TEMPLATE' ) ) {
  105. $pagination_type = 'paged';
  106. }
  107. VamtamTemplates::pagination( $pagination_type, true, $vamtam_loop_vars, $blog_query );
  108. }
  109. if ( $settings->layout === 'mosaic' || $settings->layout === 'grid' ) {
  110. $GLOBALS['vamtam_inside_cube'] = false;
  111. }
  112. $vamtam_loop_vars = $old_vamtam_loop_vars;