HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.30
System: Linux iZj6c1151k3ad370bosnmsZ 3.10.0-1160.76.1.el7.x86_64 #1 SMP Wed Aug 10 16:21:17 UTC 2022 x86_64
User: root (0)
PHP: 7.4.30
Disabled: NONE
Upload Files
File: /var/www/html/somonline.org/wp-content/themes/zeen/inc/classes/blocks/class-zeen-block-grid.php
<?php
/**
 * Zeen block grid
 *
 * @since 1.0.0
 */

class ZeenBlockGrid extends ZeenBlocks {

	/**
	 * Constructor
	 *
	 * @since 1.0.0
	 *
	*/
	public function __construct( $args ) {
		$this->type = 'grid';
		parent::__construct( $args );
	}

	/**
	 * Block output
	 *
	 * @since 1.0.0
	 *
	*/
	public function output( $echo = true ) {

		if ( $this->enabled() != true ) {
			return;
		}

		if ( empty( $echo ) ) {
			ob_start();
		}

		$i               = 0;
		$j               = 0;
		$qry             = $this->qry();
		$args            = $this->args;
		$args['qry']     = $qry;
		$args['preview'] = $this->args['preview'];
		$p               = $args['preview'];

		$close_a   = '';
		$close_b   = '';
		$open_a    = '';
		$open_b    = '';
		$fclose_a  = '';
		$fclose_b  = '';
		$fopen_a   = '';
		$fopen_b   = '';
		$fdisabled = '';
		$limit     = -1;
		$top_block = isset( $this->args['specific'] ) && 'top_block' == $this->args['specific'];
		$classes   = get_theme_mod( 'grid_rounded_corners' ) == 1 && empty( $top_block ) ? ' rounded-corners' : '';
		$classes  .= ' tile-design-wrap block-icon-base-' . get_theme_mod( 'icon_design', 1 );
		$tile      = array(
			array(
				'width' => 33,
				'shape' => 's',
			),
		);
		if ( 'related' == $this->args['specific'] ) {
			$tile[0]['width'] = 25;
		}
		$img_shape = '';
		if ( ! empty( $this->args['img_shape'] ) && ( 81 == $p || 82 == $p || 83 == $p || 84 == $p ) ) {
			if ( 3 == $this->args['img_shape'] ) {
				$img_shape        = 'p';
				$tile[0]['shape'] = 'p';
			} elseif ( 4 == $this->args['img_shape'] ) {
				$img_shape        = 'p';
				$tile[0]['shape'] = 'lr';
			}
			$classes .= ' img__shape-' . $this->args['img_shape'];
		}

		if ( 91 == $p ) {
			$limit     = 3;
			$tile      = array(
				array(
					'width' => 100,
					'shape' => 'l',
				),
				array(
					'width' => 50,
					'shape' => 's',
				),
				array(
					'width' => 50,
					'shape' => 's',
				),
			);
			$fdisabled = true;
		} elseif ( 92 == $p ) {
			$limit    = 5;
			$open_a   = 0;
			$open_b   = 1;
			$close_a  = 0;
			$close_b  = 4;
			$fopen_a  = 0;
			$fopen_b  = 4;
			$fclose_a = 3;
			$fclose_b = 4;
			$tile     = array(
				array(
					'width' => 50,
					'shape' => 's',
				),
				array(
					'width' => 25,
					'shape' => 's',
				),
				array(
					'width' => 25,
					'shape' => 's',
				),
				array(
					'width' => 25,
					'shape' => 's',
				),
				array(
					'width' => 25,
					'shape' => 's',
				),
			);
		} elseif ( 93 == $p ) {
			$limit    = 3;
			$open_a   = 0;
			$open_b   = 1;
			$close_a  = 0;
			$close_b  = 2;
			$fopen_a  = 0;
			$fopen_b  = 2;
			$fclose_a = 1;
			$fclose_b = 2;
			$tile     = array(
				array(
					'width' => 66,
					'shape' => 's',
				),
				array(
					'width' => 33,
					'shape' => 's',
				),
				array(
					'width' => 33,
					'shape' => 's',
				),
			);

		} elseif ( 98 == $p ) {
			$limit    = 3;
			$open_a   = 0;
			$open_b   = 1;
			$close_a  = 0;
			$close_b  = 2;
			$fopen_a  = 0;
			$fopen_b  = 2;
			$fclose_a = 1;
			$fclose_b = 2;
			$tile     = array(
				array(
					'width' => 50,
					'shape' => 's',
				),
				array(
					'width' => 50,
					'shape' => 'l',
				),
				array(
					'width' => 50,
					'shape' => 'l',
				),
			);

		} elseif ( 94 == $p ) {
			$limit    = 4;
			$open_a   = 0;
			$open_b   = 1;
			$close_a  = 0;
			$close_b  = 3;
			$fopen_a  = 0;
			$fopen_b  = 3;
			$fclose_a = 2;
			$fclose_b = 3;
			$tile     = array(
				array(
					'width' => 50,
					'shape' => 's',
				),
				array(
					'width' => 50,
					'shape' => 'h',
				),
				array(
					'width' => 25,
					'shape' => 's',
				),
				array(
					'width' => 25,
					'shape' => 's',
				),
			);
		} elseif ( 95 == $p ) {
			$limit     = 5;
			$open_a    = 0;
			$open_b    = 2;
			$close_a   = 1;
			$close_b   = 4;
			$tile      = array(
				array(
					'width' => 50,
					'shape' => 'l',
				),
				array(
					'width' => 50,
					'shape' => 'l',
				),
				array(
					'width' => 33,
					'shape' => 'l',
				),
				array(
					'width' => 33,
					'shape' => 'l',
				),
				array(
					'width' => 33,
					'shape' => 'l',
				),
			);
			$fdisabled = true;
		} elseif ( 96 == $p ) {
			$limit     = 4;
			$tile      = array(
				array(
					'width' => 100,
					'shape' => 'l',
				),
				array(
					'width' => 33,
					'shape' => 's',
				),
				array(
					'width' => 33,
					'shape' => 's',
				),
				array(
					'width' => 33,
					'shape' => 's',
				),
			);
			$fdisabled = true;
		} elseif ( 97 == $p ) {
			$limit     = 4;
			$open_a    = 0;
			$open_b    = 2;
			$close_a   = 1;
			$close_b   = 3;
			$tile      = array(
				array(
					'width' => 50,
					'shape' => 's',
				),
				array(
					'width' => 50,
					'shape' => 'l',
				),
				array(
					'width' => 50,
					'shape' => 'l',
				),
				array(
					'width' => 50,
					'shape' => 's',
				),
			);
			$fdisabled = true;
		} elseif ( 86 == $p ) {
			$tile = array(
				array(
					'width' => 50,
					'shape' => 's',
				),
				array(
					'width' => 25,
					'shape' => 'p',
				),
				array(
					'width' => 25,
					'shape' => 'p',
				),
			);
		} elseif ( 84 == $p ) {
			$tile = array(
				array(
					'width' => 25,
					'shape' => 's',
				),
			);
			if ( ! empty( $img_shape ) ) {
				$tile[0]['shape'] = $img_shape;
			}
		} elseif ( 82 == $p ) {
			$tile = array(
				array(
					'width' => 50,
					'shape' => 's',
				),
			);
			if ( ! empty( $img_shape ) ) {
				$tile[0]['shape'] = $img_shape;
			}
			if ( 'related' == $this->args['specific'] ) {
				$tile[0]['width'] = 33;
			}
		} elseif ( 81 == $p ) {
			$tile = array(
				array(
					'width' => 100,
					'shape' => 'l',
				),
			);
			if ( ! empty( parent::$is_110 ) ) {
				$tile[0]['width'] = parent::$is_110_size > 45 ? 75 : 33;
				$tile[0]['width'] = parent::$is_110_size == 66 ? 50 : $tile[0]['width'];
			}
			if ( ! empty( $img_shape ) ) {
				$tile[0]['shape'] = $img_shape;
			}
		}

		$final_close = false;
		$first_close = false;
		$flipped     = ! empty( $this->args['flip'] ) && 'on' == $this->args['flip'] ? true : false;
		$tile        = apply_filters( 'zeen_grid_tile', $tile, $p );
		if ( $qry->have_posts() ) :
			if ( empty( $this->mnp ) ) {
				if ( ! empty( $qry->query['offset'] ) ) {
					$this->mnp = ceil( ( $qry->found_posts - $qry->query['offset'] ) / $qry->query['posts_per_page'] );
				} else {
					$this->mnp = $qry->max_num_pages;
				}
			}
			$this->found_posts = $qry->found_posts;
			if ( $this->found_posts == 1 && 'related' == $this->args['specific'] ) {
				$this->preview = $this->args['preview'] = 81;
				$classes       = str_replace( 'img__shape-2', 'img__shape-1', $classes );
			}
			if ( empty( $this->args['only_inner'] ) && empty( $this->args['only_block'] ) ) {
				$this->opening_wrap(
					array(
						'classes' => $classes,
					)
				);
				if ( apply_filters( 'zeen_archive_pagination_before', '' ) == true ) {
					$this->pagi();
				}
				$this->block_title();
			}
			while ( $qry->have_posts() ) :
				$qry->the_post();

				if ( 0 == $i ) {
					$first_close = true;
					echo '<div class="block block-' . intval( $this->args['preview'] ) . ' tipi-flex ';
					if ( ! empty( $flipped ) ) {
						echo ' block-flipped';
					}
					echo '">';
				}

				if ( $i === $open_a ) {
					$final_close = true;
					echo '<div class="block-piece block-piece-1 cf">';
				}
				if ( $i === $open_b ) {
					$final_close = true;
					echo '<div class="block-piece block-piece-2 cf">';
				}

				global $post;
				$this->id_coll( $post->ID );
				$tile_arg     = empty( $tile[ $i ] ) ? $tile[0] : $tile[ $i ];
				$args['i']    = $j;
				$args['tile'] = $tile_arg;

				zeen_block( $post, $args );

				if ( ( $close_a === $i || $close_b === $i ) ) {
					echo '</div>';
					$final_close = false;
				}

				$i++;
				$j++;
				if ( 6 == $j ) {
					$j = 0;
				}

				if ( $i === $limit ) {
					echo '</div>';
					$i = 0;
					if ( true == $final_close ) {
						echo '</div>';
					}
					$flipped     = empty( $fdisabled ) ? ! $flipped : false;
					$final_close = false;
					$first_close = false;
				}
			endwhile;
			if ( empty( $this->args['only_inner'] ) ) {
				if ( true == $final_close ) {
					echo '</div>';
				}

				if ( true == $first_close ) {
					echo '</div>';
				}

				if ( empty( $this->args['only_block'] ) ) {
					$this->block_js();
					$this->load_more( 2 );
				}
				$this->pagi();
				if ( empty( $this->args['only_block'] ) ) {
					$this->closing_wrap();
				}
			}

			wp_reset_postdata();

		endif;

		if ( empty( $echo ) ) {
			return ob_get_clean();
		}

	}

	function output_with_sb( $echo = true, $args = array() ) {
		$p = $args['preview'];
		if ( $this->enabled() != true ) {
			return;
		}
		$classes    = '';
		$responsive = $this->responsive_check();
		if ( empty( $responsive['mobile'] ) ) {
			$classes .= ' mob-off';
		}

		if ( empty( $responsive['desktop'] ) ) {
			$classes .= ' dt-off';
		}

		if ( empty( $echo ) ) {
			ob_start();
		}
		if ( empty( $this->args['only_inner'] ) ) {
			echo '<div class="content-bg block-300 clearfix block-300-grid';
			if ( empty( $this->args['is_fs'] ) ) {
				echo ' tipi-row';
			}
			echo esc_attr( $classes );
			echo '">';
			echo '<main class="main ';
			zeen_classes(
				array(
					'preview'  => $p,
					'complete' => 'off',
				)
			);
			echo '">';
		}
		$this->output();
		if ( empty( $this->args['only_inner'] ) ) {
			echo '</main><!-- .site-main -->';
			echo '</div>';
		}

		if ( empty( $echo ) ) {
			return ob_get_clean();
		}
	}


}