first
This commit is contained in:
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Nextend\SmartSlider3\Slider\Admin;
|
||||
|
||||
|
||||
use Nextend\SmartSlider3\Slider\Slide;
|
||||
|
||||
class AdminSlide extends Slide {
|
||||
|
||||
public function setSlidesParams() {
|
||||
$this->attributes['data-variables'] = json_encode($this->variables);
|
||||
parent::setSlidesParams();
|
||||
}
|
||||
|
||||
protected function addSlideLink() {
|
||||
|
||||
}
|
||||
|
||||
public function isVisible() {
|
||||
return true;
|
||||
}
|
||||
|
||||
protected function onCreate() {
|
||||
}
|
||||
|
||||
public function setCurrentlyEdited() {
|
||||
$this->underEdit = true;
|
||||
$this->classes .= ' n2-ss-currently-edited-slide';
|
||||
}
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Nextend\SmartSlider3\Slider\Admin;
|
||||
|
||||
|
||||
use Nextend\SmartSlider3\Slider\Slide;
|
||||
use Nextend\SmartSlider3\Slider\Slider;
|
||||
|
||||
class AdminSlider extends Slider {
|
||||
|
||||
public $isAdmin = true;
|
||||
|
||||
protected $editedSlideID;
|
||||
|
||||
/**
|
||||
* @var AdminSlides
|
||||
*/
|
||||
protected $slidesBuilder;
|
||||
|
||||
public function __construct($MVCHelper, $sliderId, $parameters) {
|
||||
parent::__construct($MVCHelper, $sliderId, $parameters, true);
|
||||
}
|
||||
|
||||
public static function getCacheId($sliderId) {
|
||||
return self::$_identifier . '-admin-' . $sliderId;
|
||||
}
|
||||
|
||||
public function setElementId() {
|
||||
$this->elementId = self::$_identifier . '-' . 0;
|
||||
}
|
||||
|
||||
public function initSlides() {
|
||||
if ($this->loadState < self::LOAD_STATE_SLIDES) {
|
||||
|
||||
$this->initSlider();
|
||||
|
||||
if (!$this->isGroup) {
|
||||
$this->slidesBuilder = new AdminSlides($this);
|
||||
|
||||
$this->slidesBuilder->initSlides($this->parameters['slidesData'], $this->parameters['generatorData']);
|
||||
}
|
||||
|
||||
$this->loadState = self::LOAD_STATE_SLIDES;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Slide
|
||||
*/
|
||||
public function getEditedSlide() {
|
||||
return $this->slidesBuilder->getEditedSlide();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getEditedSlideID() {
|
||||
return $this->editedSlideID;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $editedSlideID
|
||||
*/
|
||||
public function setEditedSlideID($editedSlideID) {
|
||||
$this->editedSlideID = $editedSlideID;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,127 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Nextend\SmartSlider3\Slider\Admin;
|
||||
|
||||
|
||||
use Nextend\Framework\Platform\Platform;
|
||||
use Nextend\Framework\Request\Request;
|
||||
use Nextend\SmartSlider3\Application\Model\ModelSlides;
|
||||
use Nextend\SmartSlider3\Slider\Slide;
|
||||
use Nextend\SmartSlider3\Slider\Slides;
|
||||
|
||||
class AdminSlides extends Slides {
|
||||
|
||||
/**
|
||||
* @var Slide
|
||||
*/
|
||||
protected $editedSlide;
|
||||
|
||||
protected function slidesWhereQuery() {
|
||||
$date = Platform::getMysqlDate();
|
||||
|
||||
return " AND ((published = 1 AND (publish_up = '1970-01-01 00:00:00' OR publish_up < '{$date}')
|
||||
AND (publish_down = '1970-01-01 00:00:00' OR publish_down > '{$date}'))
|
||||
OR id = " . Request::$REQUEST->getInt('slideid') . ") ";
|
||||
}
|
||||
|
||||
protected function createSlide($slideRow) {
|
||||
return new AdminSlide($this->slider, $slideRow);
|
||||
}
|
||||
|
||||
protected function makeSlides($slidesData, $extendGenerator = array()) {
|
||||
|
||||
$slides = &$this->slides;
|
||||
|
||||
$editedSlideID = $this->slider->getEditedSlideID();
|
||||
|
||||
$this->legacyFixOnlyStaticOverlays($slides);
|
||||
|
||||
$staticSlides = array();
|
||||
for ($j = count($slides) - 1; $j >= 0; $j--) {
|
||||
$slide = $slides[$j];
|
||||
if ($slide->isStatic()) {
|
||||
if ($slide->id == $editedSlideID) {
|
||||
$this->editedSlide = $slide;
|
||||
}
|
||||
$staticSlides[] = $slide;
|
||||
$this->slider->addStaticSlide($slide);
|
||||
array_splice($slides, $j, 1);
|
||||
}
|
||||
}
|
||||
|
||||
for ($i = 0; $i < count($slides); $i++) {
|
||||
$slides[$i]->initGenerator($extendGenerator);
|
||||
}
|
||||
|
||||
for ($i = count($slides) - 1; $i >= 0; $i--) {
|
||||
if ($slides[$i]->hasGenerator()) {
|
||||
array_splice($slides, $i, 1, $slides[$i]->expandSlideAdmin());
|
||||
}
|
||||
}
|
||||
|
||||
if (!$this->editedSlide) {
|
||||
for ($i = 0; $i < count($slides); $i++) {
|
||||
if ($slides[$i]->id == $editedSlideID) {
|
||||
$this->editedSlide = $slides[$i];
|
||||
$this->slider->setActiveSlide($this->editedSlide);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// If we edit a static slide -> remove other static slides from the canvas.
|
||||
if ($this->editedSlide->isStatic()) {
|
||||
for ($i = 0; $i < count($this->slider->staticSlides); $i++) {
|
||||
if ($this->slider->staticSlides[$i]->id != $editedSlideID) {
|
||||
array_splice($this->slider->staticSlides, $i, 1);
|
||||
$i--;
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($slides)) {
|
||||
/**
|
||||
* When the currently edited slide is static and there is not other slide, we create a temporary empty slide
|
||||
*/
|
||||
$slidesModel = new ModelSlides($this->slider);
|
||||
|
||||
$slides[] = $this->createSlide($slidesModel->convertSlideDataToDatabaseRow(array(
|
||||
'id' => 0,
|
||||
'title' => 'Slide #' . 1,
|
||||
'layers' => '[]',
|
||||
'description' => '',
|
||||
'thumbnail' => '',
|
||||
'published' => 1,
|
||||
'publish_up' => '0000-00-00 00:00:00',
|
||||
'publish_down' => '0000-00-00 00:00:00',
|
||||
'backgroundImage' => ''
|
||||
)));
|
||||
}
|
||||
|
||||
$this->slider->setActiveSlide($slides[0]);
|
||||
} else {
|
||||
|
||||
if ($this->maximumSlideCount > 0) {
|
||||
array_splice($slides, $this->maximumSlideCount);
|
||||
|
||||
if (!in_array($this->editedSlide, $slides)) {
|
||||
$slides[] = $this->editedSlide;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$this->editedSlide->setCurrentlyEdited();
|
||||
|
||||
for ($i = 0; $i < count($slides); $i++) {
|
||||
$slides[$i]->setPublicID($i + 1);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Slide
|
||||
*/
|
||||
public function getEditedSlide() {
|
||||
return $this->editedSlide;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user