__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
<?php


namespace Nextend\SmartSlider3\Slider;


use Nextend\SmartSlider3\Application\Model\ModelSlides;

class Slides {

    /**
     * @var Slider
     */
    protected $slider;

    /**
     * @var Slide[]
     */
    protected $slides = array();

    /**
     * @var Slide[]
     */
    protected $allEnabledSlides = array();

    protected $maximumSlideCount = 10000;

    /**
     * Slides constructor.
     *
     * @param Slider $slider
     */
    public function __construct($slider) {
        $this->slider = $slider;

        $this->maximumSlideCount = intval($slider->params->get('maximumslidecount', 10000));
    }


    public function initSlides($slidesData = array(), $generatorData = array()) {

        $this->loadSlides($slidesData);

        $this->makeSlides($slidesData, $generatorData);

        return $this->slides;
    }

    /**
     * @param Slide[] $slides
     */
    protected function legacyFixOnlyStaticOverlays(&$slides) {

        if (count($slides)) {
            $hasNonStaticSlide = false;
            foreach ($slides as $slide) {
                if (!$slide->isStatic()) {
                    $hasNonStaticSlide = true;
                }
            }

            if (!$hasNonStaticSlide) {
                foreach ($slides as $slide) {
                    $slide->forceNonStatic();
                }
            }
        }
    }

    protected function makeSlides($slidesData, $extendGenerator = array()) {

        $slides = &$this->slides;

        if (count($slides)) {
            for ($i = 0; $i < count($slides); $i++) {
                $slides[$i]->initGenerator($extendGenerator);
            }

            for ($i = count($slides) - 1; $i >= 0; $i--) {
                if ($slides[$i]->hasGenerator()) {
                    array_splice($slides, $i, 1, $slides[$i]->expandSlide());
                }
            }

            $this->legacyFixOnlyStaticOverlays($slides);

            $staticSlides = array();
            for ($j = count($slides) - 1; $j >= 0; $j--) {
                $slide = $slides[$j];
                if ($slide->isStatic()) {
                    $staticSlides[] = $slide;
                    $this->slider->addStaticSlide($slide);
                    array_splice($slides, $j, 1);
                }
            }

            $randomize      = intval($this->slider->params->get('randomize', 0));
            $randomizeFirst = intval($this->slider->params->get('randomizeFirst', 0));
            $randomizeCache = intval($this->slider->params->get('randomize-cache', 0));
            if (!$randomizeCache && $randomize) {
                shuffle($slides);
            }

            $reverse = intval($this->slider->params->get('reverse-slides', 0));
            if ($reverse) {
                $slides = array_reverse($slides);
            }

            if ($this->maximumSlideCount > 0) {
                $mustShowSlides = array();
                if (!empty($slidesData)) {
                    for ($i = count($slides) - 1; $i >= 0; $i--) {
                        if (isset($slidesData[$slides[$i]->id])) {
                            $mustShowSlides[] = $slides[$i];
                        }
                    }
                }
                array_splice($slides, $this->maximumSlideCount);

                if (!empty($mustShowSlides)) {
                    for ($i = count($mustShowSlides) - 1; $i >= 0; $i--) {
                        if (!in_array($mustShowSlides[$i], $slides)) {
                            array_pop($slides);
                        } else {
                            array_splice($mustShowSlides, $i, 1);
                        }
                    }
                    $slides = array_merge($slides, $mustShowSlides);
                }

            }

            if (count($slides)) {
                if (!$randomizeCache && $randomizeFirst) {
                    $this->slider->setActiveSlide($slides[mt_rand(0, count($slides) - 1)]);
                } else {
                    for ($i = 0; $i < count($slides); $i++) {
                        if ($slides[$i]->isFirst()) {
                            $this->slider->setActiveSlide($slides[$i]);
                            break;
                        }
                    }
                }

                if (count($slides) == 1 && $this->slider->params->get('autoplay', 0) && $this->slider->data->get('type') === 'simple' && !$slides[0]->hasGenerator()) {
                    $slides[1] = clone $slides[0];
                }

                for ($i = 0; $i < count($slides); $i++) {
                    $slides[$i]->setPublicID($i + 1);
                }
            }
        }
    }


    public function addDummySlides() {
        /**
         * When the currently edited slide is static and there is not other slide, we create a temporary empty slide
         */
        $slidesModel = new ModelSlides($this->slider);

        $images = array(
            '$ss3-frontend$/images/placeholder/placeholder1.png',
            '$ss3-frontend$/images/placeholder/placeholder2.png'
        );
        for ($i = 0; $i < count($images); $i++) {

            $this->slides[] = $this->createSlide($slidesModel->convertSlideDataToDatabaseRow(array(
                'id'                    => $i,
                'title'                 => 'Slide #' . $i,
                'layers'                => '[]',
                'description'           => '',
                'thumbnail'             => $images[$i],
                'published'             => 1,
                'publish_up'            => '0000-00-00 00:00:00',
                'publish_down'          => '0000-00-00 00:00:00',
                'backgroundImage'       => $images[$i],
                "backgroundFocusX"      => 50,
                "backgroundFocusY"      => 100,
                'slide-background-type' => 'image'
            )));
        }

        $this->makeSlides(array());
    }

    protected function loadSlides($extend) {

        $where = $this->slidesWhereQuery();

        $slidesModel = new ModelSlides($this->slider);
        $slideRows   = $slidesModel->getAll($this->slider->sliderId, $where);

        for ($i = 0; $i < count($slideRows); $i++) {
            if (isset($extend[$slideRows[$i]['id']])) {
                $slideRows[$i] = array_merge($slideRows[$i], $extend[$slideRows[$i]['id']]);
            }
            $slide = $this->createSlide($slideRows[$i]);
            if ($slide->isVisible()) {
                $this->slides[] = $slide;
            }
            $this->allEnabledSlides[$i] = $slide;
        }
    }

    protected function createSlide($slideRow) {
        return new Slide($this->slider, $slideRow);
    }

    protected function slidesWhereQuery() {
        return " AND published = 1 ";
    }

    public function getNextCacheRefresh() {
        $earlier = 2145916800;
        for ($i = 0; $i < count($this->allEnabledSlides); $i++) {
            $earlier = min($this->allEnabledSlides[$i]->nextCacheRefresh, $earlier);
        }

        return $earlier;
    }

    /**
     * @return Slide[]
     */
    public function getSlides() {
        return $this->slides;
    }

    /**
     * @return int
     */
    public function getSlidesCount() {
        return count($this->slides);
    }

    /**
     * @return bool
     */
    public function hasSlides() {
        return !empty($this->slides);
    }

    public function prepareRender() {

        for ($i = 0; $i < count($this->slides); $i++) {
            $this->slides[$i]->setIndex($i);
            $this->slides[$i]->prepare();
            $this->slides[$i]->setSlidesParams();
        }
    }
}

Filemanager

Name Type Size Permission Actions
Admin Folder 0775
Base Folder 0775
Cache Folder 0775
Feature Folder 0775
Joomla Folder 0775
ResponsiveType Folder 0775
SliderType Folder 0775
FeatureManager.php File 5.23 KB 0664
Slide.php File 26.74 KB 0664
Slider.php File 13.61 KB 0664
SliderParams.php File 16.92 KB 0664
Slides.php File 7.47 KB 0664
Filemanager