Viewing File: /home/maglabs/exclusive/wp-content/plugins/g5-element/templates/gallery.php

<?php
// Do not allow directly accessing this file.
if (!defined('ABSPATH')) {
    exit('Direct script access denied.');
}

/**
 * Shortcode attributes
 * @var $atts
 * @var $images
 * @var $layout
 * @var $columns_gutter
 * @var $post_animation
 * @var $hover_effect
 * @var $hover_image_effect
 * @var $el_id
 * @var $el_class
 * @var $columns_xl
 * @var $columns_lg
 * @var $columns_md
 * @var $columns_sm
 * @var $columns
 * @var $image_size
 * @var $image_width
 * @var $image_ratio_width
 * @var $image_ratio_height
 * @var $justified_row_height
 * @var $justified_row_max_height
 * @var $animation_style
 * @var $animation_duration
 * @var $animation_delay
 * @var $css_editor
 * @var $responsive
 * Shortcode class
 * @var $this WPBakeryShortCode_G5Element_Gallery
 */

$images = $layout = $columns_gutter = $post_animation = $hover_effect = $hover_image_effect =
$el_id = $el_class =
$columns_xl = $columns_lg = $columns_md = $columns_sm = $columns =
$image_size = $image_width = $image_ratio_width = $image_ratio_height =
$justified_row_height = $justified_row_max_height =
$animation_style = $animation_duration = $animation_delay = $css_editor = $responsive = '';
$atts = vc_map_get_attributes($this->getShortcode(), $atts);
extract($atts);
G5ELEMENT()->assets()->enqueue_assets_for_shortcode('gallery');

$images = array_filter(explode(',', $images),'strlen') ;
if (count($images) === 0) return;
$columns_gutter = absint($columns_gutter);
$columns_xl = absint($columns_xl);
$columns_lg = absint($columns_lg);
$columns_md = absint($columns_md);
$columns_sm = absint($columns_sm);
$columns = absint($columns);
$justified_row_height = absint($justified_row_height);
$justified_row_max_height = absint($justified_row_max_height);

$columns = array(
    'xl' => $columns_xl,
    'lg' => $columns_lg,
    'md' => $columns_md,
    'sm' => $columns_sm,
    '' => $columns
);



$justified_options = array();
if ($layout === 'justified') {
    $justified_options = array(
        'rowHeight' => $justified_row_height > 0 ? $justified_row_height : 200,
        'maxRowHeight' => $justified_row_max_height > 0 ? $justified_row_max_height : false,
        'margins' => $columns_gutter,
        'selector' => '.g5element__gallery-item',
        'imgSelector' => '.g5core__entry-thumbnail-image > img'
    );
}


$layout_matrix_config = apply_filters('g5element_gallery_layout_matrix',array(
    'grid' => array(
        'layout' => array(
            array()
        ),
    ),
    'masonry'        => array(
        'layout'         => array(
            array(),
        ),
        'image_mode'         => 'image',
        'isotope'        => array(
            'itemSelector' => '.g5element__gallery-item',
            'layoutMode'   => 'masonry',
        ),
    ),
    'masonry-2' => array(
        'isotope'        => array(
            'itemSelector' => '.g5element__gallery-item',
            'layoutMode'   => 'masonry',
        ),
        'layout' => array(
            array('columns' => g5core_get_bootstrap_columns(array('xl' => 3, 'lg' => 3, 'md' => 3, 'sm' => 2, '' => 1)),  'layout_ratio' => '1x1'),
            array('columns' => g5core_get_bootstrap_columns(array('xl' => 3, 'lg' => 3, 'md' => 3, 'sm' => 2, '' => 1)),  'layout_ratio' => '1x1.55'),
            array('columns' => g5core_get_bootstrap_columns(array('xl' => 3, 'lg' => 3, 'md' => 3, 'sm' => 2, '' => 1)),  'layout_ratio' => '1x1'),
            array('columns' => g5core_get_bootstrap_columns(array('xl' => 3, 'lg' => 3, 'md' => 3, 'sm' => 2, '' => 1)),  'layout_ratio' => '1x1.55'),
            array('columns' => g5core_get_bootstrap_columns(array('xl' => 3, 'lg' => 3, 'md' => 3, 'sm' => 2, '' => 1)),  'layout_ratio' => '1x1.55'),
            array('columns' => g5core_get_bootstrap_columns(array('xl' => 3, 'lg' => 3, 'md' => 3, 'sm' => 2, '' => 1)),  'layout_ratio' => '1x1'),

        )
    ),
    'justified' =>  array(
        'layout'         => array(
            array(),
        ),
        'image_mode'         => 'image',
        'image_size' => 'full',
        'justified' => $justified_options
    )
));

$layout_matrix = isset($layout_matrix_config[$layout]) ? $layout_matrix_config[$layout] : '';
//if (!is_array($layout_matrix) || $layout_matrix === '') return;
$layout_settings = isset($layout_matrix['layout']) ? $layout_matrix['layout'] : '';
$justified = isset($layout_matrix['justified']) ? $layout_matrix['justified'] : '';
$image_mode = isset($layout_matrix['image_mode']) ? $layout_matrix['image_mode'] : '';
$image_size = isset($layout_matrix['image_size']) ? $layout_matrix['image_size'] : $image_size;
$image_lazy_load = g5element_lazy_load_is_active();


if ($layout === 'masonry') {
    $image_width = absint($image_width);
    if ($image_width > 0) {
        $image_size = "{$image_width}x0";
    } else {
        $image_size = '300x0';
    }
}

$image_ratio = '';
if ($image_size === 'full') {
    $_image_ratio_width = absint($image_ratio_width);
    $_image_ratio_height = absint($image_ratio_height);
    if (($_image_ratio_width > 0) && ($_image_ratio_height > 0)) {
        $image_ratio = "{$_image_ratio_width}x{$_image_ratio_height}";
    }
    if ($image_ratio === '') {
        $image_ratio = '1x1';
    }
}



$wrapper_classes = array(
    'g5element__gallery',
    "g5element__gallery-{$layout}",
    $this->getExtraClass($el_class),
    $this->getCSSAnimation($css_animation),
    vc_shortcode_custom_css_class($css)
);


$wrapper_attributes = array();

$inner_attributes = array(
    'data-items-container'
);

$inner_classes = array(
    'g5element__gallery-inner'
);


$post_classes = array(
    'g5core__gutter-item',
    'g5element__gallery-item'
);

if ($justified !== '') {
    $post_classes[] = g5core_get_animation_class($post_animation);
}

$post_inner_classes = array(
    'g5element__gallery-item-inner',
);

if ($justified === '') {
    $post_inner_classes[] = g5core_get_animation_class($post_animation);
}

if ($justified !== '') {
    $inner_classes[] = 'g5core__justified-gallery';
    $inner_attributes[] = "data-justified-options='" . esc_attr(json_encode($justified)) . "'";
	$image_lazy_load = false;
} else {
    if ($layout_settings !== '') {
        $inner_classes[] = 'row';
        if ($columns !== '') {
            if ($columns === 1) {
                $inner_classes[] = 'no-gutters';
            }
        }

        if ($columns_gutter !== '') {
            $inner_classes[] = "g5core__gutter-{$columns_gutter}";
        }

        if (isset($layout_matrix['isotope'])) {
            $inner_classes[] = 'isotope';
            $inner_attributes[] = "data-isotope-options='" . json_encode($layout_matrix['isotope']) . "'";
            $wrapper_attributes[] = 'data-isotope-wrapper="true"';
        }
    }
}

$gallery_id = uniqid();
if (!empty($el_id)) {
    $wrapper_attributes[] = 'id="' . esc_attr($el_id) . '"';
}

$inner_class = join(' ', $inner_classes);
$post_inner_class = join(' ', $post_inner_classes);


$class_to_filter = implode(' ', array_filter($wrapper_classes));
$css_class = apply_filters(VC_SHORTCODE_CUSTOM_CSS_FILTER_TAG, $class_to_filter, $this->getShortcode(), $atts);
?>
<div class="<?php echo esc_attr($css_class) ?>" <?php echo implode(' ', $wrapper_attributes) ?>>
	<?php if ($layout_settings != ''): ?>
		<div <?php echo join(' ', $inner_attributes); ?> class="<?php echo esc_attr($inner_class); ?>">
			<?php
			$index = 0;
			foreach ($images as $image) {
				$index = $index % sizeof($layout_settings);
				$current_layout = $layout_settings[$index];


				$current_post_classes = array();

				if ($justified === '') {
					$current_columns = isset($current_layout['columns']) ? $current_layout['columns'] : $columns;
					if ($current_columns !== '') {
						$current_post_classes[] = is_array($current_columns) ? g5core_get_bootstrap_columns($current_columns) : ($current_columns === 1 ? 'col-12' : $current_columns);
					}
				}

				$current_image_size = isset($current_layout['image_size']) ? $current_layout['image_size'] : $image_size;
				$current_image_ratio = $image_ratio;

				$current_post_classes = wp_parse_args($current_post_classes, $post_classes);
				$current_post_class = join(' ', $current_post_classes);

				$post_inner_attributes = array();

				if (isset($current_layout['layout_ratio'])) {
					$layout_ratio = $current_layout['layout_ratio'];
					if ($image_size !== 'full') {
						$current_image_size = g5core_get_metro_image_size($image_size, $layout_ratio, $columns_gutter);
					} else {
						$current_image_ratio = g5core_get_metro_image_ratio($image_ratio, $layout_ratio);
					}
					$post_inner_attributes[] = 'data-ratio="' . $layout_ratio . '"';
				}

				G5ELEMENT()->get_template('gallery/item.php',array(
					'image' => $image,
					'image_lazy_load' => $image_lazy_load,
					'image_size' => $current_image_size,
					'image_ratio' => $current_image_ratio,
					'image_mode' => $image_mode,
					'hover_effect' => $hover_effect,
					'hover_image_effect' => 		$hover_image_effect,
					'gallery_id' => $gallery_id,
					'item_class' => $current_post_class,
					'item_inner_class' => $post_inner_class,
					'post_inner_attributes' =>  $post_inner_attributes
				));
				$index++;
			}
			?>
		</div>
	<?php else: ?>
		<?php
		G5ELEMENT()->get_template( "gallery/{$layout}.php",array(
			'images' => $images,
			'image_lazy_load' => $image_lazy_load,
			'image_size' => $image_size,
			'image_ratio' => $image_ratio,
			'image_mode' => $image_mode,
			'hover_effect' => $hover_effect,
			'hover_image_effect' => $hover_image_effect,
			'gallery_id' => $gallery_id,
			'item_inner_class' => $post_inner_class,
			'columns_gutter' => $columns_gutter,
			'columns' => $columns,
			'post_classes' => $post_classes
		));
		?>
	<?php endif; ?>
</div>


Back to Directory File Manager