Viewing File: /home/maglabs/exclusive/wp-content/plugins/g5-element/inc/functions/template.php

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

function g5element_render_image_markup($args = array()) {
    $args = wp_parse_args($args, array(
        'image_size' => 'thumbnail',
        'image_lazy_load' => g5element_lazy_load_is_active(),
        'image_ratio' => '',
        'image_id' => '',
        'image_mode' => '',
        'gallery_id' => '',
        'hover_effect' => '',
	    'hover_image_effect' => ''
    ));

    $image_data = g5core_get_image_data(array(
        'image_id' => $args['image_id'],
        'image_size' => $args['image_size']
    ));

    if (!$image_data) {
        $args['image_mode'] = '';
    }

    ob_start();

    if ($args['image_mode'] !== 'image') {
        $attributes = array();
	    $attributes_styles = array();

        $classes = array(
            'g5core__entry-thumbnail',
            'g5core__embed-responsive',
        );

        if (empty($args['image_ratio'])) {
            if (preg_match('/x/', $args['image_size'])) {
	            if ( ! isset( $image_data['width'] ) && ! isset( $image_data['height'] ) ) {
		            $image_sizes  = preg_split( '/x/', $args['image_size'] );
		            $image_width  = isset( $image_sizes[0] ) ? intval( $image_sizes[0] ) : 0;
		            $image_height = isset( $image_sizes[1] ) ? intval( $image_sizes[1] ) : 0;
	            } else {
		            $image_width  = $image_data['width'];
		            $image_height = $image_data['height'];
	            }


	            if ( ( $image_width > 0 ) && ( $image_height > 0 ) ) {
		            $ratio      = ( $image_height / $image_width ) * 100;
		            $attributes_styles[] = sprintf('--g5core-image-ratio : %s;',$ratio.'%');
	            }

            } else {
                $classes[] = "g5core__image-size-{$args['image_size']}";
            }

        } else {
            $classes[] = "g5core__image-size-{$args['image_ratio']}";

            if (!in_array($args['image_ratio'], array('1x1', '3x4', '4x3', '16x9', '9x16'))) {
	            $image_ratio_sizes = preg_split('/x/', $args['image_ratio']);
	            $image_ratio_width = isset($image_ratio_sizes[0]) ? intval($image_ratio_sizes[0]) : 0;
	            $image_ratio_height = isset($image_ratio_sizes[1]) ? intval($image_ratio_sizes[1]) : 0;

	            if ( ( $image_ratio_width > 0 ) && ( $image_ratio_height > 0 ) ) {
		            $ratio      = ( $image_ratio_height / $image_ratio_width ) * 100;
		            $attributes_styles[] = sprintf('--g5core-image-ratio : %s;',$ratio.'%');
	            }
            }
        }

        if (!empty($image_data['url'])) {
	        if ($args['image_lazy_load']) {
		        $attributes[] = sprintf( 'data-bg="%s"', esc_url( $image_data['url'] ) );
		        $classes[] = 'g5core__ll-background';
	        } else {
		        $attributes_styles[] = sprintf( 'background-image: url(%s)', esc_url( $image_data['url'] ) );
	        }
        }

	    $attributes[] = sprintf('style="%s"', join(';', $attributes_styles));
        $attributes[] = sprintf('class="%s"', join(' ', $classes));
        ?>
        <div <?php echo join(' ', $attributes) ?>></div>
        <?php
    } else {

	    $attributes = array(
		    'alt' => $image_data['alt'],
		    'width' => $image_data['width'],
		    'height' => $image_data['height'],
		    'src' => $image_data['url']
	    );

	    if (g5element_lazy_load_is_active()) {
		    $attributes['class'] = 'g5core__ll-image';
		    $attributes['src'] = G5CORE()->plugin_url( 'assets/images/placeholder-transparent.png');
		    $attributes['data-src'] = $image_data['url'];
	    }

	    $image_html = g5core_build_img_tag($attributes);
	    if ($args['image_lazy_load']) {
		    $image_html = g5core_build_lazy_img_tag( $image_html, $attributes['width'], $attributes['height'] );
	    }
        ?>
        <div class="g5core__entry-thumbnail g5core__entry-thumbnail-image">
	        <?php echo $image_html;?>
        </div>
        <?php

    }

    $image_html =  ob_get_clean();
    $image_full_url = '';
    if (!empty($args['image_id'])) {
        $image_full = wp_get_attachment_image_src($args['image_id'],'full');
        if (is_array($image_full) && isset($image_full[0])) {
            $image_full_url = $image_full[0];

        }
    }

    $zoom_attributes = array();
    if (!empty($args['gallery_id'])) {
        $zoom_attributes[] = sprintf('data-gallery-id="%s"',esc_attr($args['gallery_id']));
    }
    $zoom_attributes[] = sprintf('href="%s"', esc_url($image_full_url));

    $wrapper_classes = array(
        'g5core__post-featured'
    );


	if (!empty($args['hover_effect']) || !empty($args['hover_image_effect'])) {
		$wrapper_classes[] =  'g5core__post-featured-effect';
	}

    if (!empty($args['hover_effect'])) {
        $wrapper_classes[] =  "effect-{$args['hover_effect']}";
    }

    if (!empty($args['hover_image_effect'])) {
	    $wrapper_classes[] =  "effect-img-{$args['hover_image_effect']}";
    }


    $wrapper_class = implode(' ', $wrapper_classes);

    ?>
    <div class="<?php echo esc_attr($wrapper_class)?>">
        <?php echo $image_html;?>
        <?php if ($image_full_url !== ''): ?>
            <a data-g5core-mfp <?php echo join(' ', $zoom_attributes)?>  class="g5core__zoom-image"><i class="fas fa-expand"></i></a>
        <?php endif; ?>
    </div>
    <?php
}
Back to Directory File Manager