Spade

Mini Shell

Directory:~$ /proc/self/root/home/lmsyaran/www/pusher/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ //proc/self/root/home/lmsyaran/www/pusher/carousel.zip

PKT>�[��� A A	admin.phpnu�[���<?php

/**
 * @package SP Page Builder
 * @author JoomShaper https://www.joomshaper.com
 * @copyright Copyright (c) 2010 - 2023 JoomShaper
 * @license https://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
 */
//no direct access
defined('_JEXEC') or die('Restricted access');

use Joomla\CMS\Language\Text;

SpAddonsConfig::addonConfig([
	'type'       => 'repeatable',
	'addon_name' => 'carousel',
	'category'   => 'Slider',
	'title'      =>
Text::_('COM_SPPAGEBUILDER_ADDON_CAROUSEL'),
	'desc'       =>
Text::_('COM_SPPAGEBUILDER_ADDON_CAROUSEL_DESC'),
	'icon'       => '<svg viewBox="0 0 32 32"
xmlns="http://www.w3.org/2000/svg"><path
fill-rule="evenodd" clip-rule="evenodd" d="M23
5H9v22h14V5zM9 3c-1.1 0-2 .9-2 2v22c0 1.1.9 2 2 2h14c1.1 0 2-.9
2-2V5c0-1.1-.9-2-2-2H9z" fill="currentColor"/><path
d="M27.9 19.5v-6.9c0-.5.5-.7.8-.4l3.1 3.5c.2.2.2.6 0 .8L28.7
20c-.2.2-.8-.1-.8-.5zM4.1 12.5v6.9c0 .5-.5.7-.8.4L.2 16.3c-.2-.2-.2-.6
0-.8L3.3 12c.3-.2.8.1.8.5z" fill="currentColor"/><g
opacity=".5" fill-rule="evenodd"
clip-rule="evenodd" fill="currentColor"><path
d="M25 16.2L20.9 20c-1.8 1.7-5 1.5-6.5-.4-.8-1-2.4-1.1-3.4-.2L8.6 22 7
20.8l2.5-2.5c1.8-1.8 5.1-1.7 6.6.3.8 1 2.4 1.1 3.3.2l4.1-3.8 1.5 1.2zM17.5
9c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5 1.5-.7 1.5-1.5S18.3 9 17.5 9zM14
10.5C14 8.6 15.6 7 17.5 7S21 8.6 21 10.5 19.4 14 17.5 14 14 12.4 14
10.5z"/></g></svg>',
	'settings' => [
		'carousel_items' => [
			'title' =>
Text::_('COM_SPPAGEBUILDER_ADDON_CAROUSEL_ITEMS'),
			'fields' => [
				'sp_carousel_item' => [
					'type' => 'repeatable',
					'title' =>
Text::_('COM_SPPAGEBUILDER_ADDON_CAROUSEL_ITEMS'),
					'attr'  => [
						'title' => [
							'title' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_TITLE'),
							'fields' => [
								'title' => [
									'type'  => 'text',
									'title' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_TITLE'),
									'std'   => 'Where Art and Technology
Collide',
								],

								'title_padding' => [
									'type'       => 'padding',
									'title'      =>
Text::_('COM_SPPAGEBUILDER_ADDON_CAROUSEL_ITEM_TITLE_PADDING'),
									'std'        => ['xl' => '0px 0px
0px 0px', 'lg' => '', 'md' =>
'', 'sm' => '', 'xs' =>
''],
									'responsive' => true
								],

								'title_margin' => [
									'type'       => 'margin',
									'title'      =>
Text::_('COM_SPPAGEBUILDER_ADDON_CAROUSEL_ITEM_TITLE_MARGIN'),
									'std'        => ['xl' => '0px 0px
0px 0px', 'lg' => '', 'md' =>
'', 'sm' => '', 'xs' =>
''],
									'responsive' => true
								],
							],
						],

						'content' => [
							'title' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_CONTENT'),
							'fields' => [
								'content' => [
									'type'  => 'editor',
									'title' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_CONTENT'),
									'desc'  =>
Text::_('COM_SPPAGEBUILDER_ADDON_CAROUSEL_ITEM_CONTENT_DESC'),
									'std'   => 'You might remember the Dell computer
commercials in which a youth reports this exciting news to his
friends.<br />That they are about to get their new computer.'
								],

								'content_padding' => [
									'type'       => 'padding',
									'title'      =>
Text::_('COM_SPPAGEBUILDER_ADDON_CAROUSEL_ITEM_CONTENT_PADDING'),
									'std'        => ['xl' => '20px 0px
30px 0px', 'lg' => '', 'md' =>
'', 'sm' => '', 'xs' =>
''],
									'responsive' => true
								],

								'content_margin' => [
									'type'       => 'margin',
									'title'      =>
Text::_('COM_SPPAGEBUILDER_ADDON_CONTENT_MARGIN'),
									'std'        => ['xl' => '0px 0px
0px 0px', 'lg' => '', 'md' =>
'', 'sm' => '', 'xs' =>
''],
									'responsive' => true
								],

								'bg' => [
									'type'   => 'media',
									'title'  =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_IMAGE'),
									'desc'   =>
Text::_('COM_SPPAGEBUILDER_ADDON_CAROUSEL_ITEM_IMAGE_DESC'),
									'format' => 'image',
									'std'    => ['src' =>
'https://sppagebuilder.com/addons/carousel/carousel-bg.jpg']
								],
							],
						],

						'button' => [
							'title' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON'),
							'fields' => [
								'button_text' => [
									'type'  => 'text',
									'title' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_TEXT'),
									'desc'  =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_TEXT_DESC'),
									'std'   => 'Learn More',
								],

								'button_url' => [
									'type'         => 'link',
									'title'        =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_URL'),
									'desc'         =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_URL_DESC'),
								],

								'button_icon' => [
									'type'    => 'icon',
									'title'   =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_ICON'),
									'desc'    =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_ICON_DESC'),
								],

								'button_icon_position' => [
									'type'   => 'select',
									'title'  =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_ICON_POSITION'),
									'values' => [
										'left'  =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_LEFT'),
										'right' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_RIGHT'),
									],
								],
							],
						],
					],
				],

				'alignment_separator' => [
					'type'   => 'separator',
				],

				'alignment' => [
					'type'   => 'alignment',
					'title'  =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_ALIGNMENT'),
					'std' 	 => 'center',
				],
			],
		],

		'slider_options' => [
			'title' =>
Text::_('COM_SPPAGEBUILDER_ADDON_CAROUSEL_SLIDER_OPTIONS'),
			'fields' => [
				'autoplay' => [
					'type'   => 'checkbox',
					'title'  =>
Text::_('COM_SPPAGEBUILDER_ADDON_CAROUSEL_AUTOPLAY'),
					'desc'   =>
Text::_('COM_SPPAGEBUILDER_ADDON_CAROUSEL_AUTOPLAY_DESC'),
					'values' => [
						1 => Text::_('JYES'),
						0 => Text::_('JNO'),
					],
					'std' => 1,
				],

				'interval' => [
					'type'    => 'slider',
					'title'   =>
Text::_('COM_SPPAGEBUILDER_ADDON_CAROUSEL_INTERVAL'),
					'desc'    =>
Text::_('COM_SPPAGEBUILDER_ADDON_CAROUSEL_INTERVAL_DESC'),
					'std'     => 5,
					'depends' => [['autoplay', '=', 1]]
				],

				'speed' => [
					'type'  => 'slider',
					'title' =>
Text::_('COM_SPPAGEBUILDER_ADDON_CAROUSEL_SPEED'),
					'desc'  =>
Text::_('COM_SPPAGEBUILDER_ADDON_CAROUSEL_SPEED_DESC'),
					'std'   => 600,
				],

				'controllers' => [
					'type'   => 'checkbox',
					'title'  =>
Text::_('COM_SPPAGEBUILDER_ADDON_CAROUSEL_SHOW_CONTROLLERS'),
					'values' => [
						1 => Text::_('JYES'),
						0 => Text::_('JNO'),
					],
					'std' => 1,
				],

				'arrows' => [
					'type'   => 'checkbox',
					'title'  =>
Text::_('COM_SPPAGEBUILDER_ADDON_CAROUSEL_SHOW_ARROWS'),
					'values' => [
						1 => Text::_('JYES'),
						0 => Text::_('JNO'),
					],
					'std' => 1,
				],
			],
		],

		'options' => [
			'title' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_OPTIONS'),
			'fields' => [
				'options_tab' => [
					'type'   => 'buttons',
					'std'    => 'normal',
					'values' => [
						['label' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_TYPOGRAPHY'), 'value'
=> 'typography'],
						['label' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_COLOR'), 'value'
=> 'color'],
						['label' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON'), 'value'
=> 'button'],
					],
					'std'   => 'typography',
					'tabs'    => true,
				],

				// typography
				'item_title_typography' => [
					'type' => 'typography',
					'title' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_TITLE'),
					'depends' => [['options_tab', '=',
'typography']],
				],

				'item_content_typography' => [
					'type' => 'typography',
					'title' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_CONTENT'),
					'depends' => [['options_tab', '=',
'typography']],
				],

				// color
				'item_title_color' => [
					'type'   => 'color',
					'title'	 =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_TITLE'),
					'depends' => [['options_tab', '=',
'color']],
				],

				'item_content_color' => [
					'type'   => 'color',
					'title'	 =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_CONTENT'),
					'depends' => [['options_tab', '=',
'color']],
				],

				// button
				'button_typography' => [
					'type' => 'typography',
					'title' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_TYPOGRAPHY'),
					'depends' => [['options_tab', '=',
'button']],
				],

				'button_type' => [
					'type'   => 'select',
					'title'  =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_STYLE'),
					'desc'   =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_STYLE_DESC'),
					'values' => [
						'default'   =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_DEFAULT'),
						'primary'   =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_PRIMARY'),
						'secondary' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_SECONDARY'),
						'success'   =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_SUCCESS'),
						'info'      =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_INFO'),
						'warning'   =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_WARNING'),
						'danger'    =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_DANGER'),
						'dark'      =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_DARK'),
						'link'      =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_LINK'),
						'custom'    =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_CUSTOM'),
					],
					'std'   => 'custom',
					'depends' => [['options_tab', '=',
'button']],
				],

				'link_button_padding_bottom' => [
					'type'    => 'slider',
					'title'   =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_PADDING_BOTTOM'),
					'max'     => 100,
					'depends' => [
						['button_type', '=', 'link'],
						['options_tab', '=', 'button']
					],
				],

				'button_appearance' => [
					'type'   => 'select',
					'title'  =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_APPEARANCE'),
					'desc'   =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_APPEARANCE_DESC'),
					'values' => [
						''         =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_APPEARANCE_FLAT'),
						'gradient' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_APPEARANCE_GRADIENT'),
						'outline'  =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_APPEARANCE_OUTLINE'),
					],
					'depends' => [
						['options_tab', '=', 'button'],
						['button_type', '!=', 'link'],
					],
				],

				'button_shape' => [
					'type'   => 'select',
					'title'  =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SHAPE'),
					'desc'   =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SHAPE_DESC'),
					'values' => [
						'rounded' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SHAPE_ROUNDED'),
						'square'  =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SHAPE_SQUARE'),
						'round'   =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SHAPE_ROUND'),
					],
					'std'   => 'rounded',
					'depends' => [
						['options_tab', '=', 'button'],
						['button_type', '!=', 'link'],
					],
				],

				'button_size' => [
					'type'   => 'select',
					'title'  =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SIZE'),
					'desc'   =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SIZE_DESC'),
					'values' => [
						''    =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SIZE_DEFAULT'),
						'lg'  =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SIZE_LARGE'),
						'xlg' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SIZE_XLARGE'),
						'sm'  =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SIZE_SMALL'),
						'xs'  =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SIZE_EXTRA_SAMLL'),
						'custom' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_CUSTOM'),
					],
					'depends' => [['options_tab', '=',
'button']],
				],

				'button_padding' => [
					'type'    => 'padding',
					'title'   =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_PADDING'),
					'responsive' => true,
					'std' => ['xl' => '8px 22px 10px
22px', 'lg' => '', 'md' =>
'', 'sm' => '', 'xs' =>
''],
					'depends' => [
						['button_size', '=', 'custom'],
						['options_tab', '=', 'button']
					],
				],

				'button_block' => [
					'type'   => 'select',
					'title'  =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_BLOCK'),
					'values' => [
						''               => Text::_('JNO'),
						'sppb-btn-block' => Text::_('JYES'),
					],
					'depends' => [
						['options_tab', '=', 'button'],
						['button_type', '!=', 'link'],
					],
				],

				'button_colors_tab' => [
					'type'   => 'buttons',
					'std'    => 'normal',
					'values' => [
						['label' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_NORMAL'), 'value'
=> 'normal'],
						['label' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_HOVER'), 'value'
=> 'hover'],
					],
					'std'   => 'typography',
					'tabs'    => true,
					'depends' => [
						['options_tab', '=', 'button'],
						['button_type', '=', 'custom'],
					],
				],

				'button_color' => [
					'type' => 'color',
					'title' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_COLOR'),
					'std' => '#FFFFFF',
					'depends' => [
						['options_tab', '=', 'button'],
						['button_type', '=', 'custom'],
						['button_colors_tab', '!=', 'hover'],
					],
				],

				'button_color_hover' => [
					'type' => 'color',
					'title' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_COLOR'),
					'std' => '#FFFFFF',
					'depends' => [
						['options_tab', '=', 'button'],
						['button_type', '=', 'custom'],
						['button_colors_tab', '=', 'hover'],
					],
				],

				'button_background_color' => [
					'type'    => 'color',
					'title'   =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BACKGROUND'),
					'std'     => '#3366FF',
					'depends' => [
						['options_tab', '=', 'button'],
						['button_type', '=', 'custom'],
						['button_appearance', '!=',
'gradient'],
						['button_colors_tab', '!=', 'hover'],
					],
				],

				'button_background_color_hover' => [
					'type'    => 'color',
					'title'   =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BACKGROUND'),
					'std'     => '#0037DD',
					'depends' => [
						['options_tab', '=', 'button'],
						['button_type', '=', 'custom'],
						['button_appearance', '!=',
'gradient'],
						['button_colors_tab', '=', 'hover'],
					],
				],

				'button_background_gradient' => [
					'type' => 'gradient',
					'title' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BACKGROUND'),
					'std' => [
						"color"  => "#3366FF",
						"color2" => "#0037DD",
						"deg" => "45",
						"type" => "linear"
					],
					'depends' => [
						['options_tab', '=', 'button'],
						['button_type', '=', 'custom'],
						['button_appearance', '=', 'gradient'],
						['button_colors_tab', '!=', 'hover'],
					],
				],

				'button_background_gradient_hover' => [
					'type' => 'gradient',
					'title' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BACKGROUND'),
					'std' => [
						"color"  => "#0037DD",
						"color2" => "#3366FF",
						"deg" => "45",
						"type" => "linear"
					],
					'depends' => [
						['options_tab', '=', 'button'],
						['button_type', '=', 'custom'],
						['button_appearance', '=', 'gradient'],
						['button_colors_tab', '=', 'hover'],
					],
				],

				// Link style button
				'link_button_colors_tab' => [
					'type'   => 'buttons',
					'std'    => 'normal',
					'values' => [
						['label' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_NORMAL'), 'value'
=> 'normal'],
						['label' =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_HOVER'), 'value'
=> 'hover'],
					],
					'std'   => 'typography',
					'tabs'    => true,
					'depends' => [
						['options_tab', '=', 'button'],
						['button_type', '=', 'link'],
					],
				],

				'link_button_color' => [
					'type'    => 'color',
					'title'   =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_COLOR'),
					'depends' => [
						['options_tab', '=', 'button'],
						['button_type', '=', 'link'],
						['link_button_colors_tab', '!=',
'hover'],
					],
				],

				'link_button_border_width' => [
					'type'    => 'slider',
					'title'   =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BORDER_WIDTH'),
					'max'     => 30,
					'depends' => [
						['options_tab', '=', 'button'],
						['button_type', '=', 'link'],
						['link_button_colors_tab', '!=',
'hover'],
					],
				],

				'link_button_border_color' => [
					'type'    => 'color',
					'title'   =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BORDER_COLOR'),
					'std'     => '',
					'depends' => [
						['options_tab', '=', 'button'],
						['button_type', '=', 'link'],
						['link_button_colors_tab', '!=',
'hover'],
					],
				],

				//Link Hover
				'link_button_hover_color' => [
					'type'    => 'color',
					'title'   =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_COLOR'),
					'std'     => '',
					'depends' => [
						['options_tab', '=', 'button'],
						['button_type', '=', 'link'],
						['link_button_colors_tab', '=',
'hover'],
					],
				],

				'link_button_border_hover_color' => [
					'type'    => 'color',
					'title'   =>
Text::_('COM_SPPAGEBUILDER_GLOBAL_BORDER_COLOR'),
					'std'     => '',
					'depends' => [
						['options_tab', '=', 'button'],
						['button_type', '=', 'link'],
						['link_button_colors_tab', '=',
'hover'],
					],
				],
			],
		],
	],
]);
PKT>�[�B\�F�Fsite.phpnu�[���<?php

/**
 * @package SP Page Builder
 * @author JoomShaper http://www.joomshaper.com
 * @copyright Copyright (c) 2010 - 2023 JoomShaper
 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
 */
//no direct access
defined('_JEXEC') or die('Restricted access');

use Joomla\CMS\Language\Text;
use Joomla\CMS\Layout\FileLayout;

/**
 * Carousel addon class
 * 
 * @since 1.0.0
 */
class SppagebuilderAddonCarousel extends SppagebuilderAddons
{
	/**
	 * The addon frontend render method.
	 * The returned HTML string will render to the frontend page.
	 *
	 * @return  string  The HTML string.
	 * @since   1.0.0
	 */
	public function render()
	{
		$settings = $this->addon->settings;
		$class = (isset($settings->class) && $settings->class) ?
' ' . $settings->class : '';

		//Addons option
		$autoplay = (isset($settings->autoplay) &&
$settings->autoplay) ? 1 : 0;
		$controllers = (isset($settings->controllers) &&
$settings->controllers) ? $settings->controllers : 0;
		$arrows = (isset($settings->arrows) && $settings->arrows) ?
$settings->arrows : 0;
		$interval = (isset($settings->interval) &&
$settings->interval) ? ((int) $settings->interval * 1000) : 5000;
		$carousel_autoplay = ($autoplay) ? '
data-sppb-ride="sppb-carousel"' : '';
		if ($autoplay == 0)
		{
			$interval = 'false';
		}
		$output  = '<div id="sppb-carousel-' .
$this->addon->id . '" data-interval="' .
$interval . '" class="sppb-carousel sppb-slide' .
$class . '"' . $carousel_autoplay . '>';

		if ($controllers)
		{
			$output .= '<ol
class="sppb-carousel-indicators">';
			foreach ($settings->sp_carousel_item as $key1 => $value)
			{
				$output .= '<li data-sppb-target="#sppb-carousel-' .
$this->addon->id . '" ' . (($key1 == 0) ? '
class="active"' : '') . ' 
data-sppb-slide-to="' . $key1 . '"></li>'
. "\n";
			}
			$output .= '</ol>';
		}

		$output .= '<div class="sppb-carousel-inner">';

		if (isset($settings->sp_carousel_item) && count((array)
$settings->sp_carousel_item))
		{
			foreach ($settings->sp_carousel_item as $key => $value)
			{
				list($button_url, $button_target) = AddonHelper::parseLink($value,
'button_url', ['url' => 'button_url',
'new_tab' => 'button_target']);

				$bg_image = (isset($value->bg) && $value->bg) ?
$value->bg : '';
				$bg_image_src = isset($bg_image->src) ? $bg_image->src :
$bg_image;

				$output   .= '<div class="sppb-item sppb-item-' .
$this->addon->id . $key . ' ' . ($bg_image_src ? '
sppb-item-has-bg' : '') . (($key == 0) ? ' active'
: '') . '">';
				$alt_text = isset($value->title) ? $value->title : '';
				$output  .= $bg_image_src ? '<img src="' .
$bg_image_src . '" alt="' . $alt_text .
'">' : '';

				$output  .= '<div
class="sppb-carousel-item-inner">';
				$output  .= '<div
class="sppb-carousel-caption">';
				$output  .= '<div
class="sppb-carousel-text">';

				if ((isset($value->title) && $value->title) ||
(isset($value->content) && $value->content))
				{
					$output  .= (isset($value->title) && $value->title) ?
'<h2>' . $value->title . '</h2>' :
'';
					$output  .= (isset($value->content) && $value->content)
? '<div class="sppb-carousel-content">' .
$value->content . '</div>' : '';

					if (isset($value->button_text) && $value->button_text)
					{
						$button_class = (isset($settings->button_type) &&
$settings->button_type) ? ' sppb-btn-' .
$settings->button_type : ' sppb-btn-default';
						$button_class .= (isset($settings->button_size) &&
$settings->button_size) ? ' sppb-btn-' .
$settings->button_size : '';
						$button_class .= (isset($settings->button_shape) &&
$settings->button_shape) ? ' sppb-btn-' .
$settings->button_shape : ' sppb-btn-rounded';
						$button_class .= (isset($settings->button_appearance) &&
$settings->button_appearance) ? ' sppb-btn-' .
$settings->button_appearance : '';
						$button_class .= (isset($settings->button_block) &&
$settings->button_block) ? ' ' . $settings->button_block :
'';
						$button_icon = (isset($value->button_icon) &&
$value->button_icon) ? $value->button_icon : '';
						$button_icon_position = (isset($value->button_icon_position)
&& $value->button_icon_position) ?
$value->button_icon_position : 'left';


						$icon_arr = array_filter(explode(' ', $button_icon));

						if (count($icon_arr) === 1)
						{
							$button_icon = 'fa ' . $button_icon;
						}

						if ($button_icon_position == 'left')
						{
							$value->button_text = ($button_icon) ? '<i
aria-hidden="true" class="' . $button_icon .
'" aria-hidden="true"></i> ' .
$value->button_text : $value->button_text;
						}
						else
						{
							$value->button_text = ($button_icon) ? $value->button_text .
' <i aria-hidden="true" class="' . $button_icon
. '" aria-hidden="true"></i>' :
$value->button_text;
						}

						$href = !empty($button_url) ? 'href="' . $button_url .
'" ' : '';

						$output  .= '<a ' . $href . ' ' .
$button_target . ' id="btn-' . ($this->addon->id .
$key) . '" class="sppb-btn' . $button_class .
'">' . $value->button_text . '</a>';
					}
				}

				$output  .= '</div>';
				$output  .= '</div>';

				$output  .= '</div>';
				$output  .= '</div>';
			}
		}


		$output	.= '</div>';

		if ($arrows)
		{
			$output	.= '<a href="#sppb-carousel-' .
$this->addon->id . '" class="sppb-carousel-arrow left
sppb-carousel-control" data-slide="prev"
aria-label="' .
Text::_('COM_SPPAGEBUILDER_ARIA_PREVIOUS') .
'"><i class="fa fa-chevron-left"
aria-hidden="true"></i></a>';
			$output	.= '<a href="#sppb-carousel-' .
$this->addon->id . '" class="sppb-carousel-arrow right
sppb-carousel-control" data-slide="next"
aria-label="' . Text::_('COM_SPPAGEBUILDER_ARIA_NEXT')
. '"><i class="fa fa-chevron-right"
aria-hidden="true"></i></a>';
		}

		$output .= '</div>';

		return $output;
	}

	/**
	 * Generate the CSS string for the frontend page.
	 *
	 * @return 	string 	The CSS string for the page.
	 * @since 	1.0.0
	 */
	public function css()
	{
		$addon_id = '#sppb-addon-' . $this->addon->id;
		$layout_path = JPATH_ROOT .
'/components/com_sppagebuilder/layouts';

		$cssHelper = new CSSHelper($addon_id);

		$settings = $this->addon->settings;

		$settings->alignment = CSSHelper::parseAlignment($settings,
'alignment');

		$css = '';

		// Buttons style
		foreach ($this->addon->settings->sp_carousel_item as $key =>
$value)
		{
			$options = new stdClass;
			$options->button_type = (isset($settings->button_type) &&
$settings->button_type) ? $settings->button_type : '';
			$options->button_appearance = (isset($settings->button_appearance)
&& $settings->button_appearance) ?
$settings->button_appearance : '';
			$options->button_color = (isset($settings->button_color)
&& $settings->button_color) ? $settings->button_color :
'';
			$options->button_color_hover =
(isset($settings->button_color_hover) &&
$settings->button_color_hover) ? $settings->button_color_hover :
'';
			$options->button_background_color =
(isset($settings->button_background_color) &&
$settings->button_background_color) ?
$settings->button_background_color : '';
			$options->button_background_color_hover =
(isset($settings->button_background_color_hover) &&
$settings->button_background_color_hover) ?
$settings->button_background_color_hover : '';
			$options->button_padding = null;

			if (isset($settings->button_padding_original))
			{
				$options->button_padding = $settings->button_padding_original;
			}
			elseif (isset($settings->button_padding))
			{
				$options->button_padding = $settings->button_padding;
			}

			$options->button_size = !empty($settings->button_size) ?
$settings->button_size : null;
			$options->button_typography = !empty($settings->button_typography)
? $settings->button_typography : null;

			$css_path = new FileLayout('addon.css.button', $layout_path);
			$css .= $css_path->render(array('addon_id' => $addon_id,
'options' => $options, 'id' => 'btn-' .
($this->addon->id . $key)));
			// Title Margin
			$itemTitleMarginStyle =
$cssHelper->generateStyle('.sppb-carousel-text h2', $value,
['title_margin' => 'margin',
'title_padding' => 'padding'],
['title_margin' => false, 'title_padding' =>
false], ['title_margin' => 'spacing',
'title_padding' => 'spacing']);
			$css .= $itemTitleMarginStyle;

			// Content Margin
			$itemContentMarginStyle =
$cssHelper->generateStyle('.sppb-carousel-text
.sppb-carousel-content', $value, ['content_margin' =>
'margin', 'content_padding' => 'padding'],
['content_margin' => false, 'content_padding' =>
'padding'], ['content_margin' =>
'spacing', 'content_padding' =>
'spacing']);
			$css .= $itemContentMarginStyle;
		}

		$speed = $cssHelper->generateStyle('.sppb-carousel-inner >
.sppb-item', $settings, ['speed' =>
'-webkit-transition-duration', 'speed' =>
'transition-duration'], 'ms');

		$css .= $speed;

		// Title Color 
		$itemAlignment =
$cssHelper->generateStyle('.sppb-carousel-text', $settings,
['alignment' => 'text-align'],
['alignment' => false]);
		$css .= $itemAlignment;

		// Title
		$titleFontStyle = $cssHelper->typography('.sppb-carousel-text
h2', $settings, 'item_title_typography');
		$css .= $titleFontStyle;

		// Title Color 
		$itemTitleColorStyle =
$cssHelper->generateStyle('.sppb-carousel-text h2', $settings,
['item_title_color' => 'color'],
['item_title_color' => false]);
		$css .= $itemTitleColorStyle;

		// Content
		$contentTypography = $cssHelper->typography('.sppb-carousel-text
.sppb-carousel-content', $settings,
'item_content_typography');
		$css .= $contentTypography;

		// Content Color
		$itemContentColorStyle =
$cssHelper->generateStyle('.sppb-carousel-text
.sppb-carousel-content', $settings, ['item_content_color'
=> 'color'], ['item_content_color' => false]);
		$css .= $itemContentColorStyle;

		return $css;
	}

	/**
	 * Generate the lodash template string for the frontend editor.
	 *
	 * @return 	string 	The lodash template string.
	 * @since 	1.0.0
	 */
	public static function getTemplate()
	{

		$lodash = new Lodash('#sppb-addon-{{ data.id }}');
		$output = '
		<#
		let interval = data.interval ? parseInt(data.interval) * 1000 : 5000;
		if (data.autoplay==0)
		{
			interval = "false";
		}
		let autoplay = data.autoplay ?
\'data-sppb-ride="sppb-carousel"\' : "";
		#>
		<style type="text/css">';
		// Alignment
		$output .= $lodash->alignment('text-align',
'.sppb-carousel-caption .sppb-carousel-text',
'data.alignment');

		$output .= '
			#sppb-addon-{{ data.id }} .sppb-carousel-inner > .sppb-item{
				-webkit-transition-duration: {{ data.speed }}ms;
				transition-duration: {{ data.speed }}ms;
			}
			<# _.each(data.sp_carousel_item, function (carousel_item, key){
#>';
		// Custom
		$output .= '<# if (data.button_type == "custom") {
#>';
		$output .= '<# if (data.button_appearance == "outline")
{ #>';
		$output .= $lodash->border('border-color',
'.sppb-btn-custom', 'data.button_background_color');
		$output .= $lodash->border('border-color',
'.sppb-btn-custom:hover',
'data.button_background_color_hover');
		$output .= '<# } else if (data.button_appearance ==
"gradient") { #>';
		$output .= '#sppb-addon-{{ data.id }} .sppb-btn-custom { border:
none; }';
		$output .= $lodash->color('background-color',
'.sppb-btn-custom', 'data.button_background_gradient');
		$output .= $lodash->color('background-color',
'.sppb-btn-custom:hover',
'data.button_background_gradient_hover');
		$output .= '<# } else { #>';
		$output .= $lodash->color('background-color',
'.sppb-btn-custom', 'data.button_background_color');
		$output .= '<# } #>';

		$output .= $lodash->color('color',
'.sppb-btn-custom', 'data.button_color');
		$output .= $lodash->color('color',
'.sppb-btn-custom:hover', 'data.button_color_hover');
		$output .= $lodash->color('background-color',
'.sppb-btn-custom:hover',
'data.button_background_color_hover');
		$output .= '<# } #>';

		// Typography
		$output .= $lodash->typography('.sppb-btn-{{ data.button_type
}}', 'data.button_typography');

		$output .= $lodash->typography('.sppb-carousel-caption h2',
'data.item_title_typography');
		$output .= $lodash->typography('.sppb-carousel-caption
.sppb-carousel-content', 'data.item_content_typography');

		// Color
		$output .= $lodash->color('color',
'.sppb-carousel-caption h2', 'data.item_title_color ');
		$output .= $lodash->color('color',
'.sppb-carousel-caption .sppb-carousel-content',
'data.item_content_color');

		// Spacing
		$output .= $lodash->spacing('margin',
'.sppb-carousel-caption h2',
'carousel_item.title_margin');
		$output .= $lodash->spacing('margin',
'.sppb-carousel-caption .sppb-carousel-content',
'carousel_item.content_margin');
		$output .= $lodash->spacing('padding',
'.sppb-carousel-caption h2',
'carousel_item.title_padding');
		$output .= $lodash->spacing('padding',
'.sppb-carousel-caption .sppb-carousel-content',
'carousel_item.content_padding');
		$output .= '<# if (data.button_size == "custom") {
#>';
		$output .= $lodash->spacing('padding', '.sppb-btn-{{
data.button_type }}', 'data.button_padding');
		$output .= '<# } #>';


		$output .= '		
			<# }); #>
		</style>
		<div class="sppb-carousel sppb-slide {{ data.class }}"
id="sppb-carousel-{{ data.id }}" data-interval="{{ interval
}}" {{{ autoplay }}}>
			<# if(data.controllers){ #>
				<ol class="sppb-carousel-indicators">
				<# _.each(data.sp_carousel_item, function (carousel_item, key){
#>
					<# var active = (key == 0) ? "active" : "";
#>
					<li data-sppb-target="#sppb-carousel-{{ data.id }}" 
class="{{ active }}"  data-sppb-slide-to="{{ key
}}"></li>
				<# }); #>
				</ol>
			<# } #>
			<div class="sppb-carousel-inner">
				<#
				_.each(data.sp_carousel_item, function (carousel_item, key){
					var carouselBg = {}
					if (typeof carousel_item.bg !== "undefined" &&
typeof carousel_item.bg.src !== "undefined") {
						carouselBg = carousel_item.bg
					} else {
						carouselBg = {src: carousel_item.bg}
					}
					var classNames = (key == 0) ? "active" : "";
					classNames += carouselBg.src ? " sppb-item-has-bg" :
"";
					classNames += " sppb-item-"+data.id+""+key;
				#>
					<div class="sppb-item {{ classNames }}">
						<# if(carouselBg.src &&
carouselBg.src.indexOf("http://") == -1 &&
carouselBg.src.indexOf("https://") == -1){ #>
							<img src=\'{{ pagebuilder_base + carouselBg.src }}\'
alt="{{ carousel_item.title }}">
						<# } else if(carouselBg.src){ #>
							<img src=\'{{ carouselBg.src }}\' alt="{{
carousel_item.title }}">
						<# } #>
						<div class="sppb-carousel-item-inner">
							<div class="sppb-carousel-caption">
								<div class="sppb-carousel-text">
									<# if(carousel_item.title || carousel_item.content) { #>
										<# if(carousel_item.title) { #>
											<h2 class="sp-editable-content"
id="addon-title-{{data.id}}-{{key}}" data-id={{data.id}}
data-fieldName="sp_carousel_item-{{key}}-title">{{
carousel_item.title }}</h2>
										<# } #>
										<div class="sppb-carousel-content
sp-editable-content" id="addon-content-{{data.id}}-{{key}}"
data-id={{data.id}}
data-fieldName="sp_carousel_item-{{key}}-content">{{{
carousel_item.content }}}</div>
										<# if(carousel_item.button_text) { #>
											<#
												var btnClass = "";
												btnClass += data.button_type ? "
sppb-btn-"+data.button_type : " sppb-btn-default" ;
												btnClass += data.button_size ? "
sppb-btn-"+data.button_size : "" ;
												btnClass += data.button_shape ? "
sppb-btn-"+data.button_shape : " sppb-btn-rounded" ;
												btnClass += data.button_appearance ? "
sppb-btn-"+data.button_appearance : "" ;
												btnClass += data.button_block ? " "+data.button_block
: "" ;
												var button_text = carousel_item.button_text;

												let icon_arr = (typeof carousel_item.button_icon !==
"undefined" && carousel_item.button_icon) ?
carousel_item.button_icon.split(" ") : "";
												let icon_name = icon_arr.length === 1 ? "fa
"+carousel_item.button_icon : carousel_item.button_icon;

												if(carousel_item.button_icon_position == "left"){
													button_text = (carousel_item.button_icon) ? \'<i
class="\'+icon_name+\'"></i>
\'+carousel_item.button_text : carousel_item.button_text ;
												}else{
													button_text = (carousel_item.button_icon) ?
carousel_item.button_text+\' <i
class="\'+icon_name+\'"></i>\' :
carousel_item.button_text ;
												}
											#>

											<#

											 const {button_url} =  carousel_item;
											 const isUrlObject = _.isObject(button_url) && 
(!!button_url.url || !!button_url.menu || !!button_url.page);
											 const isUrlString = _.isString(button_url) &&
button_url !== "";
											 
											 let target;
											 let href;
											 let rel;
											 let relData="";
											
											 if(isUrlObject || isUrlString){
												const urlObj = button_url?.url ? button_url :
window.getSiteUrl(button_url, data.button_target);
												const {url, new_tab, nofollow, noopener, noreferrer, type} =
urlObj;

										   		const buttonUrl = (type === "url" && url)
|| (type === "menu" && urlObj.menu) || ( (type ===
"page" && !!urlObj.page)  &&
"index.php/component/sppagebuilder/index.php?option=com_sppagebuilder&view=page&id="
+ urlObj.page) || "";
												target = new_tab ? `target=_blank` : "";
												
												relData += nofollow ? "nofollow" : "";
												relData += noopener ? " noopener" : "";
												relData += noreferrer ? " noreferrer" : "";

												rel = `rel="${relData}"`;
											
												href = buttonUrl ? `href=${buttonUrl}`: "";
											 }
											 #>

											 <a {{href}} {{target}} rel="{{rel}}"
id="btn-{{ data.id + "" + key}}" class="sppb-btn{{
btnClass }}">{{{ button_text }}}</a>
											
										<# } #>
									<# } #>
								</div>
							</div>
						</div>
					</div>
				<# }); #>
			</div>
			<# if(data.arrows) { #>
				<a href="#sppb-carousel-{{ data.id }}"
class="sppb-carousel-arrow left sppb-carousel-control"
data-slide="prev"><i class="fa
fa-chevron-left"></i></a>
				<a href="#sppb-carousel-{{ data.id }}"
class="sppb-carousel-arrow right sppb-carousel-control"
data-slide="next"><i class="fa
fa-chevron-right"></i></a>
			<# } #>
		</div>
		';

		return $output;
	}
}
PKT>�[��� A
A	admin.phpnu�[���PKT>�[�B\�F�FYAsite.phpnu�[���PK�T�