HEX
Server: nginx/1.18.0
System: Linux mail.dakarash.co.id 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User: www-data (33)
PHP: 8.1.2-1ubuntu2.23
Disabled: NONE
Upload Files
File: /home/dakarash.co.id/public_html/plugins/carousel-slider/includes/Abstracts/OwlSetting.php
<?php

namespace CarouselSlider\Abstracts;

use CarouselSlider\Helper;

/**
 * OwlSetting class
 * The owl carousel javascript option generator.
 *
 * @package CarouselSlider/Abstracts
 */
class OwlSetting {

	/**
	 * Owl settings
	 *
	 * @var array
	 */
	protected $settings = [];

	/**
	 * Get slider settings
	 *
	 * @var SliderSetting|null
	 */
	protected $slider_setting = null;

	/**
	 * Class constructor
	 *
	 * @param  SliderSetting $slider_setting  slider setting class.
	 */
	public function __construct( SliderSetting $slider_setting ) {
		$this->slider_setting = $slider_setting;
		$this->read( $slider_setting );
	}

	/**
	 * Read settings
	 *
	 * @param  SliderSetting $setting  slider setting class.
	 *
	 * @return void
	 */
	public function read( SliderSetting $setting ) {
		$this->settings = [
			'nav'                => $setting->get_nav_visibility() !== 'never',
			'dots'               => $setting->get_pagination_visibility() !== 'never',
			'slideBy'            => $setting->get_nav_steps(),
			'stagePadding'       => $setting->get_stage_padding(),
			'margin'             => $setting->get_space_between(),
			'loop'               => $setting->is_loop(),
			'lazyLoad'           => $setting->lazy_load_image(),
			'autoplay'           => $setting->is_autoplay(),
			'autoplayTimeout'    => $setting->get_autoplay_delay(),
			'autoplaySpeed'      => $setting->get_autoplay_speed(),
			'autoplayHoverPause' => $setting->has_autoplay_hover_pause(),
			'autoWidth'          => $setting->is_auto_width(),
		];

		if ( $this->slider_setting->is_slider() ) {
			$this->settings['items'] = 1;
		} else {
			foreach ( $this->slider_setting->get_slides_per_view() as $prefix => $item ) {
				$this->settings['responsive'][ Helper::get_breakpoint_width( $prefix ) ] = [ 'items' => $item ];
			}
		}
	}

	/**
	 * Get all settings
	 *
	 * @return array
	 */
	public function all(): array {
		return apply_filters( 'carousel_slider/settings/owl_settings', $this->settings, $this->slider_setting );
	}
}