89 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
 | 
						|
namespace Nextend\SmartSlider3\Slider\Feature;
 | 
						|
 | 
						|
 | 
						|
use Nextend\Framework\Data\Data;
 | 
						|
use Nextend\Framework\Parser\Common;
 | 
						|
use Nextend\SmartSlider3\Slider\Slider;
 | 
						|
 | 
						|
#[\AllowDynamicProperties]
 | 
						|
class Autoplay {
 | 
						|
 | 
						|
    /**
 | 
						|
     * @var Slider
 | 
						|
     */
 | 
						|
    private $slider;
 | 
						|
 | 
						|
    public $isEnabled = 0, $isStart = 0, $duration = 8000;
 | 
						|
    public $isLoop = 1, $interval = 1, $intervalModifier = 'loop', $intervalSlide = 'current', $allowReStart = 0;
 | 
						|
    public $stopOnClick = 1, $stopOnMediaStarted = 1;
 | 
						|
    public $resumeOnMediaEnded = 1, $resumeOnSlideChanged = 0;
 | 
						|
 | 
						|
 | 
						|
    public function __construct($slider) {
 | 
						|
 | 
						|
        $this->slider = $slider;
 | 
						|
        $params       = $slider->params;
 | 
						|
 | 
						|
        $this->isEnabled = intval($params->get('autoplay', 0));
 | 
						|
        $this->isStart   = intval($params->get('autoplayStart', 1));
 | 
						|
        $this->duration  = intval($params->get('autoplayDuration', 8000));
 | 
						|
 | 
						|
        if ($this->duration < 1) {
 | 
						|
            $this->duration = 1500;
 | 
						|
        }
 | 
						|
 | 
						|
        list($this->interval, $this->intervalModifier, $this->intervalSlide) = (array)Common::parse($slider->params->get('autoplayfinish', '1|*|loop|*|current'));
 | 
						|
 | 
						|
        $this->allowReStart = intval($params->get('autoplayAllowReStart', 0));
 | 
						|
 | 
						|
        $this->isLoop = intval($params->get('autoplayLoop', 1));
 | 
						|
 | 
						|
        $this->interval = intval($this->interval);
 | 
						|
 | 
						|
        $this->stopOnClick        = intval($params->get('autoplayStopClick', 1));
 | 
						|
        $this->stopOnMouse        = $params->get('autoplayStopMouse', 'enter');
 | 
						|
        $this->stopOnMediaStarted = intval($params->get('autoplayStopMedia', 1));
 | 
						|
 | 
						|
 | 
						|
        $this->resumeOnClick      = intval($params->get('autoplayResumeClick', 0));
 | 
						|
        $this->resumeOnMouse      = $params->get('autoplayResumeMouse', 0);
 | 
						|
        $this->resumeOnMediaEnded = intval($params->get('autoplayResumeMedia', 1));
 | 
						|
 | 
						|
 | 
						|
    }
 | 
						|
 | 
						|
    public function makeJavaScriptProperties(&$properties) {
 | 
						|
        $properties['autoplay'] = array(
 | 
						|
            'enabled'          => $this->isEnabled,
 | 
						|
            'start'            => $this->isStart,
 | 
						|
            'duration'         => $this->duration,
 | 
						|
            'autoplayLoop'     => $this->isLoop,
 | 
						|
            'allowReStart'     => $this->allowReStart,
 | 
						|
            'pause'            => array(
 | 
						|
                'click'        => $this->stopOnClick,
 | 
						|
                'mouse'        => $this->stopOnMouse,
 | 
						|
                'mediaStarted' => $this->stopOnMediaStarted
 | 
						|
            ),
 | 
						|
            'resume'           => array(
 | 
						|
                'click'        => $this->resumeOnClick,
 | 
						|
                'mouse'        => $this->resumeOnMouse,
 | 
						|
                'mediaEnded'   => $this->resumeOnMediaEnded,
 | 
						|
                'slidechanged' => $this->resumeOnSlideChanged
 | 
						|
            ),
 | 
						|
            'interval'         => $this->interval,
 | 
						|
            'intervalModifier' => $this->intervalModifier,
 | 
						|
            'intervalSlide'    => $this->intervalSlide
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * For compatibility with legacy autoplay values.
 | 
						|
     *
 | 
						|
     * @param Data $params
 | 
						|
     */
 | 
						|
    protected function upgradeData($params) {
 | 
						|
    }
 | 
						|
} |