HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux sa-dev.otherchirps.net 5.15.0-139-generic #149-Ubuntu SMP Fri Apr 11 22:06:13 UTC 2025 x86_64
User: www-data (33)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/wp-content/themes/kalium/tpls/portfolio-gallery.php
<?php
/**
 * Kalium WordPress Theme
 *
 * Laborator.co
 * www.laborator.co
 *
 * @deprecated 3.0 This template file will be removed or replaced with new one in templates/ folder.
 */
if ( ! defined( 'ABSPATH' ) ) {
	exit; // Direct access not allowed.
}

$masonry_mode_gallery = kalium_get_field( 'masonry_mode_gallery' );

$img_presentation_role = [
	'role' => 'presentation',
];

// Container classes
$gallery_classes = [ 'gallery' ];

if ( $full_width_gallery ) {
	$gallery_classes[] = 'full-width-container';
}

if ( 'nospacing' === $image_spacing ) {
	$gallery_classes[] = 'no-spacing';
}

if ( 'below' === $image_captions_position ) {
	$gallery_classes[] = 'captions-below';
}

if ( 'hide' === $image_captions_position ) {
	$gallery_classes[] = 'captions-hide';
}

if ( $masonry_mode_gallery ) {
	$gallery_classes[] = 'masonry-mode-gallery';

	// Enqueue Isotope
	kalium_enqueue_isotope_and_packery_library();
}

?>
<div <?php kalium_class_attr( $gallery_classes ); ?>>

    <div class="row nivo">
		<?php
		foreach ( $gallery_items as $i => $gallery_item ) :

			$main_thumbnail_size = 1;

			// General Vars
			$column_width = isset( $gallery_item['column_width'] ) ? $gallery_item['column_width'] : '1-2';

			// Column Classes
			$column_classes = [ 'col-xs-12' ];

			if ( $column_width == '1-2' ) {
				$column_classes[]    = 'col-sm-6';
				$main_thumbnail_size = 2;
			} elseif ( $column_width == '1-3' ) {
				$column_classes[]    = 'col-sm-4';
				$main_thumbnail_size = 3;
			} elseif ( $column_width == '2-3' ) {
				$column_classes[]    = 'col-sm-8';
				$main_thumbnail_size = 2;
			} elseif ( $column_width == '1-4' ) {
				$column_classes[]    = 'col-sm-3';
				$main_thumbnail_size = 4;
			}

			$main_thumbnail_size = apply_filters( 'kalium_single_portfolio_gallery_image', 'portfolio-single-img-' . $main_thumbnail_size );

			$item_classes           = [ 'photo' ];
			$item_animation_classes = '';

			switch ( $images_reveal_effect ) {
				case 'slidenfade':
					$item_animation_classes = 'wow fadeInLab';
					break;

				case 'fade':
					$item_animation_classes = 'wow fadeIn';
					break;

				default:
					$item_animation_classes = 'wow';
			}

			$item_classes[]       = $item_animation_classes;

			// Image Type
			if ( 'image' == $gallery_item['acf_fc_layout'] ) :

				if ( empty( $gallery_item['image'] ) ) {
					continue;
				}

				$img      = $gallery_item['image'];
				$caption  = nl2br( make_clickable( $img['caption'] ) );
				$alt_text = $img['alt'];
				$href     = $img['url'];

				if ( ! $img['id'] ) {
					continue;
				}

				$is_video = $alt_text && preg_match( '/(youtube\.com|vimeo\.com)/i', $alt_text );

				?>
                <div <?php kalium_class_attr( $column_classes ); ?>>

                    <div class="<?php echo implode( ' ', $item_classes ); ?>">

                        <a href="<?php echo $is_video ? esc_url( $alt_text ) : esc_url( $href ); ?>" data-lightbox-gallery="post-gallery" <?php
						if ( apply_filters( 'kalium_portfolio_gallery_image_titles_lightbox', false ) ) {
							echo ' title="' . esc_attr( $caption ) . '"';
						}
						?>>
							<?php
							if ( 0 === $i ) { // No lazy loading
								echo kalium_get_attachment_image_raw( $img['id'], $main_thumbnail_size, $img_presentation_role );
							} else {
								echo kalium_get_attachment_image( $img['id'], $main_thumbnail_size, $img_presentation_role );
							}
							?>
                        </a>

						<?php if ( $caption ) : ?>

                            <div class="caption">
								<?php echo wp_kses_post( $caption ); ?>
                            </div>

						<?php endif; ?>

                    </div>

                </div>
			<?php

			endif;
			// End: Image Type


			// Image Slider
			if ( 'images_slider' == $gallery_item['acf_fc_layout'] ) :

				$gallery_images = $gallery_item['images'];
				$auto_switch      = $gallery_item['auto_switch'];

				if ( ! is_array( $gallery_images ) || ! $gallery_images ) {
					continue;
				}

				kalium_enqueue_slick_slider_library();

				?>
                <div <?php kalium_class_attr( $column_classes ); ?>>

                    <div class="portfolio-images-slider <?php echo $item_animation_classes; ?>"<?php if ( $auto_switch ) : ?> data-autoswitch="<?php echo esc_attr( $auto_switch ); ?>"<?php endif; ?>>
						<?php
						foreach ( $gallery_images as $j => $image ) :

							$img_class = when_match( $j > 0, 'hidden', '', false );
							$caption = $image['caption'];

							?>
                            <div class="image-slide nivo">

                                <a href="<?php echo esc_url( $image['url'] ); ?>" title="<?php echo esc_attr( apply_filters( 'kalium_portfolio_lightbox_image_caption', $caption ) ); ?>" data-lightbox-gallery="post-gallery-<?php echo esc_attr( $i ); ?>">

									<?php
									echo kalium_get_attachment_image( $image['id'], $main_thumbnail_size, $img_presentation_role, ( $j > 0 ? array( 'class' => 'hidden' ) : '' ) );
									?>

                                </a>

                            </div>
						<?php

						endforeach;
						?>
                    </div>

                </div>
			<?php

			endif;
			// End: Image Slider


			// Comparison Images
			if ( 'comparison_images' == $gallery_item['acf_fc_layout'] ) :

				$image_1 = $gallery_item['image_1'];
				$image_2          = $gallery_item['image_2'];

				$image_1_label = $image_1['title'];
				$image_2_label = $image_2['title'];

				$image_1_attachment = wp_get_attachment_image_src( $image_1['id'], $main_thumbnail_size );
				$image_1_id         = laborator_generate_as_element( array(
					$image_1_attachment[1],
					$image_1_attachment[2]
				) );

				?>
                <div <?php kalium_class_attr( $column_classes ); ?>>

                    <div class="image-placeholder">
                        <figure class="comparison-image-slider image-placeholder-bg <?php echo esc_attr( $image_1_id ); ?>">

                            <img data-src="<?php echo esc_url( $image_1_attachment[0] ); ?>" class="lazyload"/>

							<?php if ( $image_1_label ) : ?>
                                <span class="cd-image-label" data-type="original"><?php echo esc_html( $image_1_label ); ?></span>
							<?php endif; ?>

                            <div class="cd-resize-img">
								<?php echo wp_get_attachment_image( $image_2['id'], $main_thumbnail_size ); ?>
								<?php if ( $image_2_label ) : ?>
                                    <span class="cd-image-label" data-type="modified"><?php echo esc_html( $image_2_label ); ?></span>
								<?php endif; ?>
                            </div>

                            <span class="cd-handle"></span>
                        </figure>
                    </div>

                </div>
			<?php

			endif;
			// End: Comparison Images


			// YouTube Video
			if ( 'youtube_video' == $gallery_item['acf_fc_layout'] ) :

				$video_url = $gallery_item['video_url'];
				$video_resolution = $gallery_item['video_resolution'];
				$video_poster     = $gallery_item['video_poster'];

				$default_player = $gallery_item['default_youtube_player'];
				$autoplay       = $gallery_item['auto_play'];
				$loop           = $gallery_item['loop'];


				// Video atts
				$atts = array();

				if ( ! empty( $video_resolution ) ) {
					$atts = array_merge( $atts, kalium_extract_aspect_ratio( $video_resolution ) );
				}

				if ( ! empty( $video_poster['url'] ) ) {
					$atts['poster'] = $video_poster['url'];
				}

				if ( $autoplay ) {
					$atts['autoplay'] = true;
				}

				if ( $loop ) {
					$atts['loop'] = true;
				}

				?>
                <div <?php kalium_class_attr( $column_classes ); ?>>

                    <div class="<?php echo $item_animation_classes; ?>">

                        <div class="portfolio-video">

							<?php
							/**
							 * Display Youtube video
							 */
							if ( $default_player ) {
								echo kalium()->media->embed_youtube( $video_url, $atts );
							} else {
								echo kalium()->media->parse_media( $video_url, $atts );
							}
							?>

                        </div>

                    </div>

                </div>
			<?php

			endif;
			// End: YouTube Video


			// Vimeo Video
			if ( 'vimeo_video' == $gallery_item['acf_fc_layout'] ) :

				$video_url = $gallery_item['video_url'];
				$video_resolution = $gallery_item['video_resolution'];

				$autoplay = $gallery_item['auto_play'];
				$loop     = $gallery_item['loop'];

				$atts = array();

				if ( ! empty( $video_resolution ) ) {
					$atts = array_merge( $atts, kalium_extract_aspect_ratio( $video_resolution ) );
				}

				if ( $autoplay ) {
					$atts['autoplay'] = true;
				}

				if ( $loop ) {
					$atts['loop'] = true;
				}

				?>
                <div <?php kalium_class_attr( $column_classes ); ?>>

                    <div class="<?php echo $item_animation_classes; ?>">

                        <div class="portfolio-video">

							<?php
							/**
							 * Display Vimeo video
							 */
							echo kalium()->media->embed_vimeo( $video_url, $atts );
							?>

                        </div>

                    </div>

                </div>
			<?php

			endif;
			// End: Vimeo Video


			// Self-Hosted Video
			if ( 'selfhosted_video' == $gallery_item['acf_fc_layout'] ) :

				$video_file = $gallery_item['video_file'];
				$video_resolution = $gallery_item['video_resolution'];
				$video_poster     = $gallery_item['video_poster'];

				$video_src = $video_file['url'];

				$autoplay = $gallery_item['auto_play'];
				$loop     = $gallery_item['loop'];

				// Video Resolution
				if ( ! preg_match( '/^[0-9]+:[0-9]+$/', $video_resolution ) ) {
					$video_resolution = '16:9';
				}

				$video_resolution = kalium_extract_aspect_ratio( $video_resolution );

				// Video atts
				$atts = $video_resolution;

				if ( ! empty( $video_poster['url'] ) ) {
					$atts['poster'] = $video_poster['url'];
				}

				if ( $autoplay ) {
					$atts['autoplay'] = true;
				}

				if ( $loop ) {
					$atts['loop'] = true;
				}
				?>
                <div <?php kalium_class_attr( $column_classes ); ?>>

                    <div class="<?php echo $item_animation_classes; ?>">

                        <div class="portfolio-video">

							<?php
							/**
							 * Display self-hosted video
							 */
							echo kalium()->media->parse_media( $video_src, $atts );
							?>

                        </div>

                    </div>

                </div>
			<?php

			endif;
			// End: Self-Hosted Video


			// Text Quote
			if ( 'text_quote' == $gallery_item['acf_fc_layout'] ) :

				$quote_text = $gallery_item['quote_text'];
				$quote_author     = $gallery_item['quote_author'];
				?>
                <div <?php kalium_class_attr( $column_classes ); ?>>
                    <blockquote>
						<?php echo do_shortcode( $quote_text ); ?>

						<?php if ( $quote_author ) : ?>
                            <span>- <?php echo wp_kses_post( $quote_author ); ?></span>
						<?php endif; ?>
                    </blockquote>
                </div>
			<?php

			endif;
			// End: Text Quote

			// HTML
			if ( $gallery_item['acf_fc_layout'] == 'html' ) :
				?>
                <div <?php kalium_class_attr( $column_classes ); ?>>
                    <div class="post-formatting">
						<?php echo $gallery_item['content']; ?>
                    </div>
                </div>
			<?php
			endif;
			// End: HTML

		endforeach;
		?>
    </div>

</div>