first
This commit is contained in:
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Nextend\SmartSlider3\Application\Admin\Preview\Block\PreviewToolbar;
|
||||
|
||||
|
||||
use Nextend\Framework\View\AbstractBlock;
|
||||
use Nextend\SmartSlider3\Application\Admin\TraitAdminUrl;
|
||||
|
||||
class BlockPreviewToolbar extends AbstractBlock {
|
||||
|
||||
use TraitAdminUrl;
|
||||
|
||||
/** @var integer */
|
||||
protected $sliderID;
|
||||
|
||||
public function display() {
|
||||
|
||||
$this->renderTemplatePart('PreviewToolbar');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getSliderID() {
|
||||
return $this->sliderID;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $sliderID
|
||||
*/
|
||||
public function setSliderID($sliderID) {
|
||||
$this->sliderID = $sliderID;
|
||||
}
|
||||
}
|
@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Nextend\SmartSlider3\Application\Admin\Preview\Block\PreviewToolbar;
|
||||
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Forms\Button\BlockButtonPlainIcon;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Forms\Button\BlockButtonSpacer;
|
||||
|
||||
/**
|
||||
* @var $this BlockPreviewToolbar
|
||||
*/
|
||||
|
||||
?>
|
||||
<div class="n2_preview_toolbar">
|
||||
<div class="n2_preview_toolbar__size">
|
||||
<div class="n2_preview_toolbar__editable n2_preview_toolbar__width">
|
||||
1200
|
||||
</div>
|
||||
<div class="n2_preview_toolbar__x">
|
||||
X
|
||||
</div>
|
||||
<div class="n2_preview_toolbar__editable n2_preview_toolbar__height">
|
||||
800
|
||||
</div>
|
||||
</div>
|
||||
<select class="n2_preview_toolbar__scale">
|
||||
<option value="25">25%</option>
|
||||
<option value="50">50%</option>
|
||||
<option value="75">75%</option>
|
||||
<option value="100" selected>100%</option>
|
||||
<option value="125">125%</option>
|
||||
<option value="150">150%</option>
|
||||
</select>
|
||||
<?php
|
||||
|
||||
$buttonOrientation = new BlockButtonPlainIcon($this);
|
||||
$buttonOrientation->addClass('n2_button_preview_orientation');
|
||||
$buttonOrientation->addAttribute('data-n2tip', n2_('Toggle orientation'));
|
||||
$buttonOrientation->setBig();
|
||||
$buttonOrientation->setIcon('ssi_24 ssi_24--orientation');
|
||||
$buttonOrientation->display();
|
||||
|
||||
$spacer = new BlockButtonSpacer($this);
|
||||
$spacer->setIsVisible(true);
|
||||
$spacer->display();
|
||||
|
||||
$buttonReload = new BlockButtonPlainIcon($this);
|
||||
$buttonReload->addClass('n2_button_preview_reload');
|
||||
$buttonReload->addAttribute('data-n2tip', n2_('Reload preview'));
|
||||
$buttonReload->setBig();
|
||||
$buttonReload->setIcon('ssi_24 ssi_24--redo');
|
||||
$buttonReload->display();
|
||||
|
||||
$buttonFullPreview = new BlockButtonPlainIcon($this);
|
||||
$buttonFullPreview->setUrl($this->getUrlPreviewFull($this->getSliderID()));
|
||||
$buttonFullPreview->addAttribute('data-n2tip', n2_('Open preview in full'));
|
||||
$buttonFullPreview->setTarget('_blank');
|
||||
$buttonFullPreview->setBig();
|
||||
$buttonFullPreview->setIcon('ssi_24 ssi_24--newwindow');
|
||||
$buttonFullPreview->display();
|
||||
?>
|
||||
</div>
|
@ -0,0 +1,150 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Nextend\SmartSlider3\Application\Admin\Preview;
|
||||
|
||||
|
||||
use Nextend\Framework\Misc\Base64;
|
||||
use Nextend\Framework\Request\Request;
|
||||
use Nextend\SmartSlider3\Application\Admin\AbstractControllerAdmin;
|
||||
use Nextend\SmartSlider3\Application\Model\ModelGenerator;
|
||||
use Nextend\SmartSlider3\Application\Model\ModelSlides;
|
||||
use Nextend\SmartSlider3\SmartSlider3Info;
|
||||
|
||||
class ControllerPreview extends AbstractControllerAdmin {
|
||||
|
||||
private $sliderId = 0;
|
||||
|
||||
public function initialize() {
|
||||
parent::initialize();
|
||||
|
||||
$this->sliderId = Request::$REQUEST->getInt('sliderid');
|
||||
|
||||
SmartSlider3Info::$forceDesktop = true;
|
||||
}
|
||||
|
||||
public function actionIndex() {
|
||||
|
||||
if ($this->validateToken() && $this->validatePermission('smartslider_edit')) {
|
||||
|
||||
$view = new ViewPreviewIndex($this);
|
||||
|
||||
$view->setSliderID($this->sliderId);
|
||||
|
||||
|
||||
$sliderData = Request::$POST->getVar('slider', false);
|
||||
if (!is_array($sliderData)) {
|
||||
$sliderData = false;
|
||||
}
|
||||
$view->setSliderData($sliderData);
|
||||
|
||||
$view->display();
|
||||
|
||||
} else {
|
||||
|
||||
$this->permissionError();
|
||||
}
|
||||
}
|
||||
|
||||
public function actionFull() {
|
||||
|
||||
if ($this->validateToken()) {
|
||||
$view = new ViewPreviewFull($this);
|
||||
|
||||
$view->setSliderData(json_decode(Request::$POST->getVar('sliderData', '[]'), true));
|
||||
$view->setSlidesData(json_decode(Request::$POST->getVar('slidesData', '[]'), true));
|
||||
$view->setGeneratorData(json_decode(Request::$POST->getVar('generatorData', '[]'), true));
|
||||
$view->setSliderID($this->sliderId);
|
||||
|
||||
$view->display();
|
||||
} else {
|
||||
|
||||
$this->permissionError();
|
||||
}
|
||||
}
|
||||
|
||||
public function actionSlider() {
|
||||
if ($this->validateToken() && $this->validatePermission('smartslider_edit')) {
|
||||
|
||||
$view = new ViewPreviewIndex($this);
|
||||
$view->setIsIframe(true);
|
||||
$view->setSliderID($this->sliderId);
|
||||
|
||||
|
||||
$sliderData = Request::$POST->getVar('slider', false);
|
||||
if (!is_array($sliderData)) {
|
||||
$sliderData = false;
|
||||
}
|
||||
$view->setSliderData($sliderData);
|
||||
|
||||
$view->display();
|
||||
|
||||
} else {
|
||||
|
||||
$this->permissionError();
|
||||
}
|
||||
}
|
||||
|
||||
public function actionSlide() {
|
||||
if ($this->validateToken() && $this->validatePermission('smartslider_edit')) {
|
||||
$slideId = Request::$REQUEST->getInt('slideId');
|
||||
if ($this->sliderId) {
|
||||
$slidesData = array();
|
||||
$slidesModel = new ModelSlides($this);
|
||||
$slideData = Request::$REQUEST->getVar('slide');
|
||||
if (!empty($slideData)) {
|
||||
$slide = $slidesModel->convertSlideDataToDatabaseRow(json_decode(Base64::decode($slideData), true));
|
||||
$slide['slide'] = json_encode($slide['slide']);
|
||||
$slide['params'] = json_encode($slide['params']);
|
||||
if ($slideId) {
|
||||
$slide['id'] = $slideId;
|
||||
$slidesData[$slideId] = $slide;
|
||||
}
|
||||
}
|
||||
|
||||
$view = new ViewPreviewIndex($this);
|
||||
if (Request::$REQUEST->getVar('frame')) {
|
||||
$view->setIsIframe(true);
|
||||
}
|
||||
$view->setSliderID($this->sliderId);
|
||||
$view->setSlidesData($slidesData);
|
||||
|
||||
$view->display();
|
||||
}
|
||||
} else {
|
||||
|
||||
$this->permissionError();
|
||||
}
|
||||
}
|
||||
|
||||
public function actionGenerator() {
|
||||
if ($this->validateToken() && $this->validatePermission('smartslider_edit')) {
|
||||
$generator_id = Request::$REQUEST->getInt('generator_id');
|
||||
|
||||
$generatorModel = new ModelGenerator($this);
|
||||
$sliderID = $generatorModel->getSliderId($generator_id);
|
||||
|
||||
if ($sliderID) {
|
||||
$generatorData = array();
|
||||
|
||||
$generatorData[$generator_id] = Request::$REQUEST->getVar('generator');
|
||||
|
||||
|
||||
$view = new ViewPreviewIndex($this);
|
||||
$view->setIsIframe(true);
|
||||
$view->setSliderID($sliderID);
|
||||
$view->setGeneratorData($generatorData);
|
||||
|
||||
$view->display();
|
||||
}
|
||||
} else {
|
||||
|
||||
$this->permissionError();
|
||||
}
|
||||
}
|
||||
|
||||
private function permissionError() {
|
||||
|
||||
$this->redirectToSliders();
|
||||
}
|
||||
}
|
@ -0,0 +1,170 @@
|
||||
<?php
|
||||
|
||||
namespace Nextend\SmartSlider3\Application\Admin\Preview;
|
||||
|
||||
use Nextend\Framework\Asset\Js\Js;
|
||||
use Nextend\SmartSlider3\Settings;
|
||||
|
||||
/**
|
||||
* @var $this ViewPreviewFull
|
||||
*/
|
||||
|
||||
JS::addGlobalInline('document.documentElement.classList.add("n2_html--application-only");');
|
||||
JS::addGlobalInline('document.documentElement.classList.add("n2_html--slider-preview");');
|
||||
|
||||
$slider = $this->renderSlider();
|
||||
|
||||
$externals = Settings::get('external-css-files');
|
||||
if (!empty($externals)) {
|
||||
$externals = explode("\n", $externals);
|
||||
foreach ($externals as $external) {
|
||||
echo "<link rel='stylesheet' href='" . esc_url($external) . "' type='text/css' media='all'>";
|
||||
}
|
||||
}
|
||||
|
||||
// PHPCS - Content already escaped
|
||||
echo $slider; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||
|
||||
|
||||
$slidesData = $this->getSlidesData();
|
||||
if (!empty($slidesData)) {
|
||||
$slideId = key($slidesData);
|
||||
if ($slideId > 0) {
|
||||
?>
|
||||
<script>
|
||||
n2ss.ready(<?php echo esc_html($this->getSliderID()); ?>, function (slider) {
|
||||
slider.visible(function () {
|
||||
slider.slideToID(<?php echo esc_html($slideId); ?>);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<script>
|
||||
|
||||
document.addEventListener('keydown', function (e) {
|
||||
if (e.key === 'Escape') {
|
||||
parent.postMessage(JSON.stringify({action: 'cancel'}), "*");
|
||||
}
|
||||
});
|
||||
if (window.parent !== window) {
|
||||
_N2.r(['$', 'documentReady'], function () {
|
||||
var $ = _N2.$,
|
||||
html = document.documentElement,
|
||||
body = document.body,
|
||||
$sliders = $('.n2-ss-slider');
|
||||
|
||||
function syncDeviceDetails() {
|
||||
$sliders.each(function () {
|
||||
var match = $(this).attr('id').match(/n2-ss-([0-9]+)/);
|
||||
if (match) {
|
||||
n2ss.ready(match[1], function (slider) {
|
||||
slider.stages.done('Show', function () {
|
||||
syncDeviceDetailsSlider(slider);
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function syncDeviceDetailsSlider(slider) {
|
||||
var isLandscape = window.matchMedia("(orientation: landscape)").matches,
|
||||
breakpoints = slider.responsive.parameters.breakpoints,
|
||||
breakpoint, screenWidthLimit, maxWidth = -1, minWidth = 0, hadMinScreenWidth = false, i;
|
||||
|
||||
for (i = breakpoints.length - 1; i >= 0; i--) {
|
||||
breakpoint = breakpoints[i];
|
||||
screenWidthLimit = isLandscape ? breakpoint.landscapeWidth : breakpoint.portraitWidth;
|
||||
|
||||
if (breakpoint.type === 'max-screen-width') {
|
||||
minWidth = maxWidth + 1;
|
||||
maxWidth = screenWidthLimit;
|
||||
} else if (breakpoint.type === 'min-screen-width') {
|
||||
hadMinScreenWidth = true;
|
||||
if (slider.responsive.device === 'desktopPortrait') {
|
||||
maxWidth = screenWidthLimit - 1;
|
||||
} else {
|
||||
minWidth = screenWidthLimit;
|
||||
maxWidth = 100000;
|
||||
}
|
||||
}
|
||||
|
||||
if (breakpoint.device === slider.responsive.device) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!hadMinScreenWidth && slider.responsive.device === 'desktopPortrait') {
|
||||
minWidth = screenWidthLimit + 1;
|
||||
maxWidth = 100000;
|
||||
}
|
||||
|
||||
window.parent.postMessage(
|
||||
JSON.stringify({
|
||||
action: 'device_info',
|
||||
data: {
|
||||
id: slider.id,
|
||||
top: slider.sliderElement.getBoundingClientRect().top + document.documentElement.scrollTop,
|
||||
device: slider.responsive.device,
|
||||
isLandscape: isLandscape,
|
||||
minScreenWidth: minWidth,
|
||||
maxScreenWidth: maxWidth
|
||||
}
|
||||
}),
|
||||
"*"
|
||||
);
|
||||
}
|
||||
|
||||
if (window.ResizeObserver !== undefined) {
|
||||
var observer = new ResizeObserver((function () {
|
||||
syncDeviceDetails();
|
||||
}).bind(this));
|
||||
observer.observe(body);
|
||||
} else {
|
||||
try {
|
||||
/**
|
||||
* We can detect every width changes with a dummy iframe.
|
||||
*/
|
||||
$('<iframe sandbox="allow-same-origin allow-scripts" style="position:absolute;left:0;top:0;margin:0;padding:0;border:0;display:block;width:100%;height:100%;min-height:0;max-height:none;z-index:10;"></iframe>')
|
||||
.on('load', function (e) {
|
||||
$(e.target.contentWindow ? e.target.contentWindow : e.target.contentDocument.defaultView)
|
||||
.on('resize', function () {
|
||||
syncDeviceDetails();
|
||||
});
|
||||
})
|
||||
.appendTo(body);
|
||||
} catch (e) {
|
||||
}
|
||||
}
|
||||
|
||||
n2ss.on('SliderDeviceOrientation', function (slider) {
|
||||
syncDeviceDetailsSlider(slider);
|
||||
})
|
||||
|
||||
function broadcastScrollTop(scrollTop) {
|
||||
|
||||
window.parent.postMessage(
|
||||
JSON.stringify({
|
||||
action: 'scrollTop',
|
||||
data: {
|
||||
scrollTop: scrollTop
|
||||
}
|
||||
}),
|
||||
"*"
|
||||
);
|
||||
}
|
||||
|
||||
document.addEventListener('scroll', function () {
|
||||
broadcastScrollTop(html.scrollTop || body.scrollTop);
|
||||
}, {
|
||||
passive: true,
|
||||
capture: true
|
||||
});
|
||||
broadcastScrollTop(html.scrollTop || body.scrollTop);
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace Nextend\SmartSlider3\Application\Admin\Preview;
|
||||
|
||||
use Nextend\Framework\Asset\Js\Js;
|
||||
|
||||
/**
|
||||
* @var $this ViewPreviewIndex
|
||||
*/
|
||||
|
||||
JS::addGlobalInline('document.documentElement.classList.add("n2_html--application-only");');
|
||||
|
||||
Js::addFirstCode("new _N2.SliderPreview();");
|
||||
|
||||
?>
|
||||
<div class="n2_preview">
|
||||
<form target="n2_preview__device_screen_inner_frame" action="<?php echo esc_url($this->getUrlPreviewFull($this->getSliderID())); ?>" method="post">
|
||||
<input type="hidden" name="sliderData" value="<?php echo esc_attr(json_encode($this->sliderData)); ?>">
|
||||
<input type="hidden" name="slidesData" value="<?php echo esc_attr(json_encode($this->slidesData)); ?>">
|
||||
<input type="hidden" name="generatorData" value="<?php echo esc_attr(json_encode($this->generatorData)); ?>">
|
||||
</form>
|
||||
<div class="n2_preview__ruler">
|
||||
<div class="n2_preview__ruler_label"></div>
|
||||
</div>
|
||||
<div class="n2_preview__device_info">
|
||||
<div class="n2_preview__device_info_label"><?php n2_e('State'); ?>: </div>
|
||||
<div class="n2_preview__device_info_state"><?php n2_e('Desktop'); ?></div>
|
||||
<i class="ssi_16 ssi_16--info" data-tip-description="" data-tip-label="<?php n2_e('Reason'); ?>"></i>
|
||||
</div>
|
||||
|
||||
<div class="n2_preview__device_screen">
|
||||
<div class="n2_preview__device_screen_inner" style="<?php echo esc_attr($this->getWidthCSS()); ?>">
|
||||
<iframe name="n2_preview__device_screen_inner_frame"></iframe>
|
||||
<div class="n2_preview__frame_overlay"></div>
|
||||
<div class="n2_preview__resize_width">
|
||||
</div>
|
||||
|
||||
<div class="n2_preview__resize_height">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,111 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Nextend\SmartSlider3\Application\Admin\Preview;
|
||||
|
||||
|
||||
use Nextend\Framework\View\AbstractView;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\LayoutEmpty;
|
||||
use Nextend\SmartSlider3\SliderManager\SliderManager;
|
||||
|
||||
class ViewPreviewFull extends AbstractView {
|
||||
|
||||
/** @var integer */
|
||||
protected $sliderID;
|
||||
|
||||
/** @var array */
|
||||
protected $sliderData;
|
||||
|
||||
/** @var array */
|
||||
protected $slidesData;
|
||||
|
||||
/** @var array */
|
||||
protected $generatorData;
|
||||
|
||||
public function display() {
|
||||
$this->layout = new LayoutEmpty($this);
|
||||
|
||||
$this->layout->addContent($this->render('Full'));
|
||||
|
||||
$this->layout->render();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getSliderID() {
|
||||
return $this->sliderID;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $sliderID
|
||||
*/
|
||||
public function setSliderID($sliderID) {
|
||||
$this->sliderID = $sliderID;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getSliderData() {
|
||||
return $this->sliderData;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $sliderData
|
||||
*/
|
||||
public function setSliderData($sliderData) {
|
||||
$this->sliderData = $sliderData;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getSlidesData() {
|
||||
return $this->slidesData;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $slidesData
|
||||
*/
|
||||
public function setSlidesData($slidesData) {
|
||||
$this->slidesData = $slidesData;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getGeneratorData() {
|
||||
return $this->generatorData;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $generatorData
|
||||
*/
|
||||
public function setGeneratorData($generatorData) {
|
||||
$this->generatorData = $generatorData;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string Return value is already escaped
|
||||
*/
|
||||
public function renderSlider() {
|
||||
|
||||
$locale = setlocale(LC_NUMERIC, 0);
|
||||
setlocale(LC_NUMERIC, "C");
|
||||
|
||||
$sliderManager = new SliderManager($this, $this->sliderID, true, array(
|
||||
'sliderData' => $this->sliderData,
|
||||
'slidesData' => $this->slidesData,
|
||||
'generatorData' => $this->generatorData
|
||||
));
|
||||
$sliderManager->allowDisplayWhenEmpty();
|
||||
|
||||
$sliderHTML = $sliderManager->render();
|
||||
|
||||
setlocale(LC_NUMERIC, $locale);
|
||||
|
||||
return $sliderHTML;
|
||||
}
|
||||
}
|
@ -0,0 +1,160 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Nextend\SmartSlider3\Application\Admin\Preview;
|
||||
|
||||
|
||||
use Nextend\Framework\View\AbstractView;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Forms\Button\BlockButton;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\LayoutIframe;
|
||||
use Nextend\SmartSlider3\Application\Admin\Preview\Block\PreviewToolbar\BlockPreviewToolbar;
|
||||
use Nextend\SmartSlider3\Application\Admin\Settings\ViewSettingsGeneral;
|
||||
use Nextend\SmartSlider3\Application\Admin\TraitAdminUrl;
|
||||
use Nextend\SmartSlider3\Application\Model\ModelSliders;
|
||||
use Nextend\SmartSlider3\Settings;
|
||||
use Nextend\SmartSlider3\Slider\SliderParams;
|
||||
|
||||
class ViewPreviewIndex extends AbstractView {
|
||||
|
||||
use TraitAdminUrl;
|
||||
|
||||
/** @var integer */
|
||||
protected $sliderID;
|
||||
|
||||
/** @var array */
|
||||
protected $sliderData = array();
|
||||
|
||||
/** @var array */
|
||||
protected $slidesData = array();
|
||||
|
||||
/** @var array */
|
||||
protected $generatorData = array();
|
||||
|
||||
protected $isIframe = false;
|
||||
|
||||
public function display() {
|
||||
$this->layout = new LayoutIframe($this);
|
||||
|
||||
$this->layout->setLabel(n2_('Preview'));
|
||||
|
||||
$blockPreviewToolbar = new BlockPreviewToolbar($this);
|
||||
$blockPreviewToolbar->setSliderID($this->sliderID);
|
||||
$this->layout->addAction($blockPreviewToolbar);
|
||||
|
||||
if ($this->isIframe) {
|
||||
$buttonClose = new BlockButton($this);
|
||||
$buttonClose->addClass('n2_preview_slider__close');
|
||||
$buttonClose->setLabel(n2_('Close'));
|
||||
$buttonClose->setBig();
|
||||
$buttonClose->setGreyDark();
|
||||
$this->layout->addAction($buttonClose);
|
||||
}
|
||||
|
||||
$this->layout->addContent($this->render('Index'));
|
||||
|
||||
$this->layout->render();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getSliderID() {
|
||||
return $this->sliderID;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $sliderID
|
||||
*/
|
||||
public function setSliderID($sliderID) {
|
||||
$this->sliderID = $sliderID;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getSliderData() {
|
||||
return $this->sliderData;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $sliderData
|
||||
*/
|
||||
public function setSliderData($sliderData) {
|
||||
$this->sliderData = $sliderData;
|
||||
}
|
||||
|
||||
public function getWidthCSS() {
|
||||
if ($this->sliderData) {
|
||||
$sliderParams = new SliderParams($this->sliderID, $this->sliderData['type'], $this->sliderData);
|
||||
} else {
|
||||
$model = new ModelSliders($this);
|
||||
$slider = $model->get($this->sliderID);
|
||||
$sliderParams = new SliderParams($this->sliderID, $slider['type'], $slider['params'], true);
|
||||
}
|
||||
|
||||
if ($sliderParams->get('responsive-mode') == 'fullwidth' || $sliderParams->get('responsive-mode') == 'fullpage') {
|
||||
return '';
|
||||
}
|
||||
|
||||
$minScreenWidth = $sliderParams->get('width');
|
||||
|
||||
if (intval($sliderParams->get('responsive-breakpoint-tablet-landscape-enabled', 0))) {
|
||||
$useLocalBreakpoints = !$sliderParams->get('responsive-breakpoint-global', 0);
|
||||
|
||||
$minScreenWidth = max($minScreenWidth, 1 + intval($useLocalBreakpoints ? $sliderParams->get('responsive-breakpoint-tablet-landscape', ViewSettingsGeneral::defaults['tablet-large-portrait']) : Settings::get('responsive-screen-width-tablet-landscape', ViewSettingsGeneral::defaults['tablet-large-portrait'])));
|
||||
$minScreenWidth = max($minScreenWidth, 1 + ($useLocalBreakpoints ? $sliderParams->get('responsive-breakpoint-tablet-landscape-landscape', ViewSettingsGeneral::defaults['tablet-large-landscape']) : Settings::get('responsive-screen-width-tablet-landscape-landscape', ViewSettingsGeneral::defaults['tablet-large-landscape'])));
|
||||
|
||||
}
|
||||
if (intval($sliderParams->get('responsive-breakpoint-tablet-portrait-enabled', 0))) {
|
||||
$useLocalBreakpoints = !$sliderParams->get('responsive-breakpoint-global', 0);
|
||||
|
||||
$minScreenWidth = max($minScreenWidth, 1 + intval($useLocalBreakpoints ? $sliderParams->get('responsive-breakpoint-tablet-portrait', ViewSettingsGeneral::defaults['tablet-portrait']) : Settings::get('responsive-screen-width-tablet-portrait', ViewSettingsGeneral::defaults['tablet-portrait'])));
|
||||
$minScreenWidth = max($minScreenWidth, 1 + intval($useLocalBreakpoints ? $sliderParams->get('responsive-breakpoint-tablet-portrait-landscape', ViewSettingsGeneral::defaults['tablet-landscape']) : Settings::get('responsive-screen-width-tablet-portrait-landscape', ViewSettingsGeneral::defaults['tablet-landscape'])));
|
||||
|
||||
}
|
||||
|
||||
return 'max-width:' . $minScreenWidth . 'px;';
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getSlidesData() {
|
||||
return $this->slidesData;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $slidesData
|
||||
*/
|
||||
public function setSlidesData($slidesData) {
|
||||
$this->slidesData = $slidesData;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getGeneratorData() {
|
||||
return $this->generatorData;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $generatorData
|
||||
*/
|
||||
public function setGeneratorData($generatorData) {
|
||||
$this->generatorData = $generatorData;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function isIframe() {
|
||||
return $this->isIframe;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bool $isIframe
|
||||
*/
|
||||
public function setIsIframe($isIframe) {
|
||||
$this->isIframe = $isIframe;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user