| Current Path : /proc/self/root/proc/self/root/proc/self/root/var/tmp/ |
| Current File : //proc/self/root/proc/self/root/proc/self/root/var/tmp/php6zm9Ef |
<?php
namespace Nextend\SmartSlider3Pro\Renderable\Joomla\Item\JoomlaModule;
use Nextend\Framework\Form\Element\Message\Warning;
use Nextend\Framework\Form\Element\Select;
use Nextend\Framework\Form\Element\Text;
use Nextend\Framework\Form\Fieldset;
use Nextend\SmartSlider3\Renderable\Item\AbstractItem;
class ItemJoomlaModule extends AbstractItem {
protected $ordering = 101;
protected function isBuiltIn() {
return true;
}
public function getType() {
return 'joomlamodule';
}
public function getTitle() {
return n2_('Joomla module');
}
public function getIcon() {
return 'ssi_32 ssi_32--joomla';
}
public function getGroup() {
return n2_x('Advanced', 'Layer group');
}
public function createFrontend($id, $itemData, $layer) {
return new ItemJoomlaModuleFrontend($this, $id, $itemData, $layer);
}
public function getValues() {
return parent::getValues() + array(
'positiontype' => 'loadposition',
'positionvalue' => ''
);
}
public function renderFields($container) {
$settings = new Fieldset\LayerWindow\FieldsetLayerWindow($container, 'item-joomlamodule', n2_('General'));
new Warning($settings, '', sprintf(n2_('Please note, that %1$swe do not support%2$s the Joomla module layer!%3$sThe loaded module often needs code customizations what you have to do yourself, so we only suggest using this layer if you are a developer!'), '<b>', '</b>', '<br>'));
new Select($settings, 'positiontype', n2_('Type'), 'loadposition', array(
'options' => array(
'loadposition' => 'Loadposition - Content plugin',
'loadmoduleid' => 'Loadmoduleid - Content plugin',
'module' => 'Module - Modules Anywhere',
'modulepos' => 'Modulepos - Modules Anywhere'
)
));
new Text($settings, 'positionvalue', n2_('Value'), '', array(
'style' => 'width:302px;',
'tipLabel' => n2_('Position name or module ID'),
'tipDescription' => n2_('The position name of your module (for Loadposition and Modulepos) or the module\'s ID (Module).'),
'tipLink' => 'https://smartslider.helpscoutdocs.com/article/1853-joomla-module-layer'
));
}
}<?php
namespace Nextend\SmartSlider3Pro\Renderable\Joomla\Item\JoomlaModule;
use Nextend\SmartSlider3\Renderable\Item\AbstractItemFrontend;
class ItemJoomlaModuleFrontend extends AbstractItemFrontend {
public function render() {
return '<div class="n2-ss-item-content n2-ow">{' . $this->data->get('positiontype', '') . ' ' . $this->data->get('positionvalue', '') . '}</div>';
}
public function renderAdminTemplate() {
return $this->render();
}
}<?php
namespace Nextend\SmartSlider3Pro\Renderable\Item;
use Nextend\Framework\Plugin;
use Nextend\SmartSlider3\Platform\Joomla\JoomlaShim;
use Nextend\SmartSlider3\Renderable\Item\ItemFactory;
use Nextend\SmartSlider3Pro\Renderable\Item\AnimatedHeading\ItemAnimatedHeading;
use Nextend\SmartSlider3Pro\Renderable\Item\Area\ItemArea;
use Nextend\SmartSlider3Pro\Renderable\Item\Audio\ItemAudio;
use Nextend\SmartSlider3Pro\Renderable\Item\BeforeAfter\ItemBeforeAfter;
use Nextend\SmartSlider3Pro\Renderable\Item\Caption\ItemCaption;
use Nextend\SmartSlider3Pro\Renderable\Item\CircleCounter\ItemCircleCounter;
use Nextend\SmartSlider3Pro\Renderable\Item\Counter\ItemCounter;
use Nextend\SmartSlider3Pro\Renderable\Item\Countdown\ItemCountdown;
use Nextend\SmartSlider3Pro\Renderable\Item\HighlightedHeading\ItemHighlightedHeading;
use Nextend\SmartSlider3Pro\Renderable\Item\Html\ItemHtml;
use Nextend\SmartSlider3Pro\Renderable\Item\HtmlList\ItemHtmlList;
use Nextend\SmartSlider3Pro\Renderable\Item\Icon\ItemIcon;
use Nextend\SmartSlider3Pro\Renderable\Item\Iframe\ItemIframe;
use Nextend\SmartSlider3Pro\Renderable\Item\ImageArea\ItemImageArea;
use Nextend\SmartSlider3Pro\Renderable\Item\ImageBox\ItemImageBox;
use Nextend\SmartSlider3Pro\Renderable\Item\Input\ItemInput;
use Nextend\SmartSlider3Pro\Renderable\Item\ProgressBar\ItemProgressBar;
use Nextend\SmartSlider3Pro\Renderable\Item\Transition\ItemTransition;
use Nextend\SmartSlider3Pro\Renderable\Item\Video\ItemVideo;
use Nextend\SmartSlider3Pro\Renderable\Joomla\Item\JoomlaModule\ItemJoomlaModule;
class ItemLoader {
public function __construct() {
Plugin::addAction('PluggableFactoryRenderableItem', array(
$this,
'renderableItems'
));
}
/**
* @param ItemFactory $factory
*/
public function renderableItems($factory) {
new ItemAnimatedHeading($factory);
new ItemArea($factory);
new ItemAudio($factory);
new ItemCaption($factory);
new ItemCircleCounter($factory);
new ItemCounter($factory);
new ItemCountdown($factory);
new ItemHighlightedHeading($factory);
new ItemHtml($factory);
new ItemIcon($factory);
new ItemIframe($factory);
new ItemImageArea($factory);
new ItemImageBox($factory);
new ItemInput($factory);
new ItemHtmlList($factory);
new ItemProgressBar($factory);
new ItemTransition($factory);
new ItemVideo($factory);
new ItemBeforeAfter($factory);
if (!JoomlaShim::$isJoomla4) {
new ItemJoomlaModule($factory);
}
}
}<?php
namespace Nextend\SmartSlider3Pro\Renderable\Item\Video;
use Nextend\Framework\Data\Data;
use Nextend\Framework\Form\Element\Message\Notice;
use Nextend\Framework\Form\Element\Message\Warning;
use Nextend\Framework\Form\Element\OnOff;
use Nextend\Framework\Form\Element\Select;
use Nextend\Framework\Form\Element\Text;
use Nextend\Framework\Form\Element\Text\FieldImage;
use Nextend\Framework\Form\Element\Text\Video;
use Nextend\Framework\Form\Fieldset;
use Nextend\Framework\ResourceTranslator\ResourceTranslator;
use Nextend\SmartSlider3\Renderable\Item\AbstractItem;
class ItemVideo extends AbstractItem {
protected $ordering = 20;
protected $layerProperties = array(
"desktopportraitwidth" => 300,
"desktopportraitheight" => 'auto'
);
protected function isBuiltIn() {
return true;
}
public function getType() {
return 'video';
}
public function getTitle() {
return n2_('Video');
}
public function getIcon() {
return 'ssi_32 ssi_32--video';
}
public function getGroup() {
return n2_x('Media', 'Layer group');
}
/**
* @param Data $data
*/
public function upgradeData($data) {
if (!$data->has('aspect-ratio')) {
$data->set('aspect-ratio', 'fill');
}
}
public function createFrontend($id, $itemData, $layer) {
return new ItemVideoFrontend($this, $id, $itemData, $layer);
}
/**
* @return array
*/
public function getValues() {
return parent::getValues() + array(
'autoplay' => 0,
'video_mp4' => '',
'aspect-ratio' => '16:9',
'scroll-pause' => 'partly-visible',
'showcontrols' => 1,
'volume' => 1,
'loop' => 0,
'reset' => 0,
'videoplay' => '',
'videopause' => '',
'videoend' => '',
'ended' => '',
'playbutton' => 1,
'playbuttonwidth' => 48,
'playbuttonheight' => 48,
'playbuttonimage' => '',
'poster' => ''
);
}
public function getFilled($slide, $data) {
$data = parent::getFilled($slide, $data);
$data->set('poster', $slide->fill($data->get('poster', '')));
$data->set('video_mp4', $slide->fill($data->get('video_mp4', '')));
return $data;
}
public function prepareExport($export, $data) {
parent::prepareExport($export, $data);
$export->addImage($data->get('poster'));
$export->addImage($data->get('video_mp4'));
$export->addImage($data->get('playbuttonimage'));
}
public function prepareImport($import, $data) {
$data = parent::prepareImport($import, $data);
$data->set('poster', $import->fixImage($data->get('poster')));
$data->set('video_mp4', $import->fixImage($data->get('video_mp4')));
$data->set('playbuttonimage', $import->fixImage($data->get('playbuttonimage')));
return $data;
}
public function prepareSample($data) {
$data->set('poster', ResourceTranslator::toUrl($data->get('poster')));
$data->set('video_mp4', ResourceTranslator::toUrl($data->get('video_mp4')));
return $data;
}
public function renderFields($container) {
$settings = new Fieldset\LayerWindow\FieldsetLayerWindow($container, 'item-video', n2_('General'));
new Video($settings, 'video_mp4', n2_('MP4 video'), '', array(
'width' => 220
));
new FieldImage($settings, 'poster', n2_('Cover image'), '', array(
'width' => 220
));
new Select($settings, 'aspect-ratio', n2_('Aspect ratio'), '16:9', array(
'options' => array(
'16:9' => '16:9',
'16:10' => '16:10',
'4:3' => '4:3',
'custom' => n2_('Custom'),
'fill' => n2_('Fill layer height')
),
'relatedValueFields' => array(
array(
'values' => array(
'custom'
),
'field' => array(
'item_videoaspect-ratio-width',
'item_videoaspect-ratio-height'
)
),
array(
'values' => array(
'fill'
),
'field' => array(
'item_videoaspect-ratio-notice'
)
)
)
));
new Text\Number($settings, 'aspect-ratio-width', n2_('Width'), '16', array(
'wide' => 4,
'min' => 1
));
new Text\Number($settings, 'aspect-ratio-height', n2_('Height'), '9', array(
'wide' => 4,
'min' => 1
));
new Notice($settings, 'aspect-ratio-notice', n2_('Fill layer height'), n2_('Set on Style tab.'));
$misc = new Fieldset\LayerWindow\FieldsetLayerWindow($container, 'item-video-misc', n2_('Video settings'));
new Warning($misc, 'slide-background-notice', sprintf(n2_('Video autoplaying has a lot of limitations made by browsers. %1$sLearn about them.%2$s'), '<a href="https://smartslider.helpscoutdocs.com/article/1919-video-autoplay-handling" target="_blank">', '</a>'));
new OnOff($misc, 'autoplay', n2_('Autoplay'), 0, array(
'relatedFieldsOn' => array(
'item_videoautoplay-notice'
)
));
new Select($misc, 'ended', n2_('When ended'), '', array(
'options' => array(
'' => n2_('Do nothing'),
'next' => n2_('Go to next slide')
)
));
new OnOff($misc, 'loop', n2_x('Loop', 'Video/Audio play'), 0, array(
'relatedFieldsOff' => array(
'item_videoended'
)
));
new Select($misc, 'volume', n2_('Volume'), 1, array(
'options' => array(
'0' => n2_('Mute'),
'0.25' => '25%',
'0.5' => '50%',
'0.75' => '75%',
'1' => '100%'
)
));
new OnOff($misc, 'reset', n2_('Restart on slide change'), 0, array(
'tipLabel' => n2_('Restart on slide change'),
'tipDescription' => n2_('Starts the video from the beginning when the slide is viewed again.')
));
$display = new Fieldset\LayerWindow\FieldsetLayerWindow($container, 'item-video-display', n2_('Display'));
new Select($display, 'fill-mode', n2_('Fill mode'), 'cover', array(
'options' => array(
'cover' => n2_('Fill'),
'contain' => n2_('Fit')
)
));
new OnOff($display, 'showcontrols', n2_('Controls'), 0);
$load = new Fieldset\LayerWindow\FieldsetLayerWindow($container, 'item-video-dev', n2_('Loading'));
new Select($load, 'preload', n2_('Preload'), 'metadata', array(
'options' => array(
'auto' => 'Auto',
'metadata' => 'metadata',
'none' => n2_('None')
)
));
new Select($load, 'scroll-pause', n2_('Pause on scroll'), 'partly-visible', array(
'options' => array(
'' => n2_('Never'),
'partly-visible' => n2_('When partly visible'),
'not-visible' => n2_('When not visible'),
),
'tipLabel' => n2_('Pause on scroll'),
'tipDescription' => n2_('You can pause the video when the visitor scrolls away from the slider')
));
$playButton = new Fieldset\LayerWindow\FieldsetLayerWindow($container, 'item-video-playbutton', n2_('Play button'));
new OnOff($playButton, 'playbutton', n2_('Play button'), 1, array(
'relatedFieldsOn' => array(
'item_videoplaybuttonwidth',
'item_videoplaybuttonheight',
'item_videoplaybuttonimage',
)
));
new Text\Number($playButton, 'playbuttonwidth', n2_('Width'), 48, array(
'unit' => 'px',
'wide' => 4
));
new Text\Number($playButton, 'playbuttonheight', n2_('Height'), 48, array(
'unit' => 'px',
'wide' => 4
));
new FieldImage($playButton, 'playbuttonimage', n2_('Image'), '', array(
'width' => 220
));
}
}<?php
namespace Nextend\SmartSlider3Pro\Renderable\Item\Video;
use Nextend\Framework\Data\Data;
use Nextend\Framework\FastImageSize\FastImageSize;
use Nextend\Framework\Image\Image;
use Nextend\Framework\ResourceTranslator\ResourceTranslator;
use Nextend\Framework\View\Html;
use Nextend\SmartSlider3\Renderable\AbstractRenderableOwner;
use Nextend\SmartSlider3\Renderable\Item\AbstractItemFrontend;
class ItemVideoFrontend extends AbstractItemFrontend {
public function render() {
$owner = $this->layer->getOwner();
$aspectRatio = $this->data->get('aspect-ratio', '16:9');
$hasImage = 0;
$poster = $owner->fill($this->data->get('poster'));
$coverImage = '';
if (!empty($poster)) {
$coverImage = $owner->renderImage($this, $poster, array(
'class' => 'n2_ss_video_cover',
'alt' => n2_('Play')
), array(
'class' => 'n2-ow-all'
));
$hasImage = 1;
$playImage = '';
if ($this->data->get('playbutton', 1) == 1) {
$playWidth = intval($this->data->get('playbuttonwidth', '48'));
$playHeight = intval($this->data->get('playbuttonheight', '48'));
if ($playWidth > 0 && $playHeight > 0) {
$attributes = Html::addExcludeLazyLoadAttributes(array(
'style' => '',
'class' => 'n2_ss_video_play_btn'
));
if ($playWidth != 48) {
$attributes['style'] .= 'width:' . $playWidth . 'px;';
}
if ($playHeight != 48) {
$attributes['style'] .= 'height:' . $playHeight . 'px;';
}
$playButtonImage = $this->data->get('playbuttonimage', '');
if (!empty($playButtonImage)) {
$image = $this->data->get('playbuttonimage', '');
FastImageSize::initAttributes($image, $attributes);
$src = ResourceTranslator::toUrl($image);
} else {
$image = '$ss3-frontend$/images/play.svg';
FastImageSize::initAttributes($image, $attributes);
$src = Image::SVGToBase64($image);
}
$playImage = Html::image($src, 'Play', $attributes);
}
}
$coverImage = Html::tag('div', array(
'class' => 'n2_ss_video_player__cover',
'data-force-pointer' => ''
), $coverImage . $playImage);
}
$owner->addScript('new _N2.FrontendItemVideo(this, "' . $this->id . '", ' . $this->data->toJSON() . ', ' . $hasImage . ');');
$style = '';
if ($aspectRatio == 'custom') {
$style = 'style="padding-top:' . ($this->data->get('aspect-ratio-height', '9') / $this->data->get('aspect-ratio-width', '16') * 100) . '%"';
}
return Html::tag("div", array(
'class' => 'n2_ss_video_player n2-ss-item-content n2-ss-item-video-container n2-ow-all',
'data-aspect-ratio' => $aspectRatio
), '<div class="n2_ss_video_player__placeholder" ' . $style . '></div>' . Html::tag("video", $this->setOptions($this->data, $this->id), $this->setContent($owner, $this->data)) . $coverImage);
}
public function renderAdminTemplate() {
$aspectRatio = $this->data->get('aspect-ratio', '16:9');
$style = '';
if ($aspectRatio == 'custom') {
$style = 'style="padding-top:' . ($this->data->get('aspect-ratio-height', '9') / $this->data->get('aspect-ratio-width', '16') * 100) . '%"';
}
$playButtonImage = $this->data->get('playbuttonimage', '');
if (!empty($playButtonImage)) {
$playButtonImage = ResourceTranslator::toUrl($playButtonImage);
} else {
$playButtonImage = Image::SVGToBase64('$ss3-frontend$/images/play.svg');
}
$playButtonStyle = '';
$playButtonWidth = intval($this->data->get('playbuttonwidth', '48'));
$playButtonHeight = intval($this->data->get('playbuttonheight', '48'));
if ($playButtonWidth > 0) {
$playButtonStyle .= 'width:' . $playButtonWidth . 'px;';
}
if ($playButtonHeight > 0) {
$playButtonStyle .= 'height:' . $playButtonHeight . 'px;';
}
$playButton = Html::image($playButtonImage, n2_('Play'), Html::addExcludeLazyLoadAttributes(array(
'class' => 'n2_ss_video_play_btn',
'style' => $playButtonStyle
)));
return Html::tag('div', array(
'class' => 'n2_ss_video_player n2-ss-item-content n2-ss-item-video-container n2-ow-all',
'data-aspect-ratio' => $aspectRatio,
"style" => 'background: URL(' . ResourceTranslator::toUrl($this->data->getIfEmpty('poster', '$ss3-frontend$/images/placeholder/video.png')) . ') no-repeat 50% 50%; background-size: cover;'
), '<div class="n2_ss_video_player__placeholder" ' . $style . '></div>' . ($this->data->get('playbutton', 1) ? '<div class="n2_ss_video_player__cover">' . $playButton . '</div>' : ''));
}
/**
* @param $data Data
* @param $id
*
* @return array
*/
private function setOptions($data, $id) {
$videoOptions = array(
'style' => '',
'class' => 'n2-ow intrinsic-ignore data-tf-not-load n2-' . $data->get("fill-mode", 'cover'),
'encode' => false,
'controlsList' => 'nodownload'
);
$videoOptions["data-volume"] = $data->get("volume", 1);
if ($videoOptions["data-volume"] == 0) {
$videoOptions['muted'] = 'muted';
}
$videoOptions['playsinline'] = 1;
$videoOptions['webkit-playsinline'] = 1;
if ($data->get('loop')) {
$videoOptions['loop'] = 'loop';
}
$videoOptions["id"] = $id;
if ($data->get("showcontrols")) {
$videoOptions["controls"] = "yes";
} else {
$videoOptions["style"] .= "pointer-events:none;";
}
$videoOptions["preload"] = $data->get("preload", "auto");
return $videoOptions;
}
/**
* @param $owner AbstractRenderableOwner
* @param $data Data
*
* @return string
*/
private function setContent($owner, $data) {
$videoContent = "";
if ($data->get("video_mp4", false)) {
$videoContent .= Html::tag("source", array(
"src" => ResourceTranslator::toUrl($owner->fill($data->get("video_mp4"))),
"type" => "video/mp4"
), '', false);
}
return $videoContent;
}
}<?php
namespace Nextend\SmartSlider3Pro\Renderable\Item\Transition;
use Nextend\Framework\Form\Element\OnOff;
use Nextend\Framework\Form\Element\Select;
use Nextend\Framework\Form\Element\Select\LinkTarget;
use Nextend\Framework\Form\Element\Text;
use Nextend\Framework\Form\Element\Text\FieldImage;
use Nextend\Framework\Form\Element\Text\Url;
use Nextend\Framework\Form\Fieldset;
use Nextend\Framework\Parser\Common;
use Nextend\Framework\ResourceTranslator\ResourceTranslator;
use Nextend\SmartSlider3\Renderable\Item\AbstractItem;
class ItemTransition extends AbstractItem {
protected $ordering = 5;
protected $layerProperties = array("desktopportraitwidth" => 200);
protected function isBuiltIn() {
return true;
}
public function getType() {
return 'transition';
}
public function getTitle() {
return n2_('Transition');
}
public function getIcon() {
return 'ssi_32 ssi_32--transition';
}
public function getGroup() {
return n2_x('Special', 'Layer group');
}
public function createFrontend($id, $itemData, $layer) {
return new ItemTransitionFrontend($this, $id, $itemData, $layer);
}
public function loadResources($renderable) {
parent::loadResources($renderable);
$renderable->addLess(self::getAssetsPath() . "/transition.n2less", array(
"sliderid" => $renderable->elementId
));
}
public function getValues() {
return parent::getValues() + array(
'animation' => 'Fade',
'image' => '$ss3-frontend$/images/placeholder/image.png',
'image2' => '$ss3-frontend$/images/placeholder/video.png',
'alt' => '',
'alt2' => '',
'href' => '#',
'href-target' => '_self',
'href-rel' => '',
'image-optimize' => 1
);
}
public function upgradeData($data) {
$linkV1 = $data->get('link', '');
if (!empty($linkV1)) {
list($link, $target, $rel) = array_pad((array)Common::parse($linkV1), 3, '');
$data->un_set('link');
$data->set('href', $link);
$data->set('href-target', $target);
$data->set('href-rel', $rel);
}
}
public function getFilled($slide, $data) {
$data = parent::getFilled($slide, $data);
$data->set('image', $slide->fill($data->get('image', '')));
$data->set('image2', $slide->fill($data->get('image2', '')));
$data->set('alt', $slide->fill($data->get('alt', '')));
$data->set('href', $slide->fill($data->get('href', '#|*|')));
return $data;
}
public function prepareExport($export, $data) {
parent::prepareExport($export, $data);
$export->addImage($data->get('image'));
$export->addImage($data->get('image2'));
$export->addLightbox($data->get('href'));
}
public function prepareImport($import, $data) {
$data = parent::prepareImport($import, $data);
$data->set('image', $import->fixImage($data->get('image', '')));
$data->set('image2', $import->fixImage($data->get('image2', '')));
$data->set('href', $import->fixLightbox($data->get('href')));
return $data;
}
public function prepareSample($data) {
$data->set('image', ResourceTranslator::toUrl($data->get('image')));
$data->set('image2', ResourceTranslator::toUrl($data->get('image2')));
return $data;
}
public function renderFields($container) {
$settings = new Fieldset\LayerWindow\FieldsetLayerWindow($container, 'item-transition', n2_('General'));
new FieldImage($settings, 'image', n2_('Front image'), '', array(
'relatedAlt' => 'item_transitionalt',
'width' => 220
));
new FieldImage($settings, 'image2', n2_('Back image'), '', array(
'relatedAlt' => 'item_transitionalt2',
'width' => 220
));
new Select($settings, 'animation', n2_('Animation'), '', array(
'options' => array(
'Fade' => n2_('Fade'),
'VerticalFlip' => n2_('Vertical flip'),
'HorizontalFlip' => n2_('Horizontal flip')
)
));
$link = new Fieldset\LayerWindow\FieldsetLayerWindow($container, 'item-transition-link', n2_('Link'));
new Url($link, 'href', n2_('Link'), '', array(
'relatedFields' => array(
'item_transitionhref-target',
'item_transitionhref-rel'
),
'width' => 248
));
new LinkTarget($link, 'href-target', n2_('Target window'));
new Text($link, 'href-rel', n2_('Rel'), '', array(
'style' => 'width:195px;',
'tipLabel' => n2_('Rel'),
'tipDescription' => sprintf(n2_('Enter the %1$s rel attribute %2$s that represents the relationship between the current document and the linked document. Multiple rel attributes can be separated with space. E.g. nofollow noopener noreferrer'), '<a href="https://www.w3schools.com/TAGS/att_a_rel.asp" target="_blank">', '</a>')
));
$seo = new Fieldset\LayerWindow\FieldsetLayerWindow($container, 'item-transition-seo', n2_('SEO'));
new Text($seo, 'alt', n2_('Front image alt tag'), '', array(
'style' => 'width:133px;'
));
new Text($seo, 'alt2', n2_('Back image alt tag'), '', array(
'style' => 'width:133px;'
));
$optimize = new Fieldset\LayerWindow\FieldsetLayerWindow($container, 'item-transition-optimize', n2_('Optimize'));
new OnOff($optimize, 'image-optimize', n2_('Optimize image'), 1, array(
'tipLabel' => n2_('Optimize image'),
'tipDescription' => n2_('You can turn off the Layer image optimization for this image, to resize it for tablet and mobile.'),
'tipLink' => 'https://smartslider.helpscoutdocs.com/article/1839-caption-layer#optimize'
));
}
}<?php
namespace Nextend\SmartSlider3Pro\Renderable\Item\Transition;
use Nextend\Framework\View\Html;
use Nextend\SmartSlider3\Renderable\AbstractRenderableOwner;
use Nextend\SmartSlider3\Renderable\Item\AbstractItemFrontend;
class ItemTransitionFrontend extends AbstractItemFrontend {
public function render() {
return $this->getHtml();
}
public function renderAdminTemplate() {
return $this->getHtml();
}
private function getHtml() {
$image = $this->data->get('image', '');
$image2 = $this->data->get('image2', '');
if (empty($image) && empty($image2)) {
return '';
}
$owner = $this->layer->getOwner();
$image = $owner->fill($image);
$image2 = $owner->fill($image2);
if (empty($image) && empty($image2)) {
return '';
}
$this->loadResources($owner);
$owner->addScript('new _N2.FrontendItemTransition(this, "' . $this->id . '", "' . $this->data->get('animation', 'Fade') . '");');
$html = Html::openTag("div", array(
"class" => "n2-ss-item-transition-inner"
));
$imageAttributes = array(
'alt' => htmlspecialchars($owner->fill($this->data->get('alt', ''))),
'class' => 'n2-ss-item-transition-image1'
);
$html .= $owner->renderImage($this, $image, $imageAttributes);
$imageAttributes2 = array(
'alt' => htmlspecialchars($owner->fill($this->data->get('alt2', ''))),
'class' => 'n2-ss-item-transition-image2'
);
$html .= $owner->renderImage($this, $image2, $imageAttributes2);
$html .= Html::closeTag('div');
$linkAttributes = array();
if ($this->isEditor) {
$linkAttributes['onclick'] = 'return false;';
}
return Html::tag("div", array(
"id" => $this->id,
"class" => "n2-ss-item-transition n2-ss-item-content n2-ow-all"
), $this->getLink($html, $linkAttributes));
}
/**
* @param $owner AbstractRenderableOwner
*/
public function loadResources($owner) {
$owner->addLess(self::getAssetsPath() . "/transition.n2less", array(
"sliderid" => $owner->getElementID()
));
}
}