first
This commit is contained in:
@ -0,0 +1,386 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Nextend\SmartSlider3\Application\Admin\Slider;
|
||||
|
||||
|
||||
use Nextend\Framework\Asset\AssetManager;
|
||||
use Nextend\Framework\Controller\Admin\AdminAjaxController;
|
||||
use Nextend\Framework\Form\Form;
|
||||
use Nextend\Framework\Misc\Base64;
|
||||
use Nextend\Framework\Notification\Notification;
|
||||
use Nextend\Framework\PageFlow;
|
||||
use Nextend\Framework\Request\Request;
|
||||
use Nextend\SmartSlider3\Application\Admin\TraitAdminUrl;
|
||||
use Nextend\SmartSlider3\Application\Model\ModelLicense;
|
||||
use Nextend\SmartSlider3\Application\Model\ModelSliders;
|
||||
use Nextend\SmartSlider3\BackupSlider\ImportSlider;
|
||||
use Nextend\SmartSlider3\Slider\ResponsiveType\ResponsiveTypeFactory;
|
||||
use Nextend\SmartSlider3\Slider\SliderType\SliderTypeFactory;
|
||||
use Nextend\SmartSlider3\SmartSlider3Info;
|
||||
use Nextend\SmartSlider3\Widget\WidgetGroupFactory;
|
||||
|
||||
class ControllerAjaxSlider extends AdminAjaxController {
|
||||
|
||||
use TraitAdminUrl;
|
||||
|
||||
public function actionRestore() {
|
||||
|
||||
$this->validateToken();
|
||||
$this->validatePermission('smartslider_edit');
|
||||
|
||||
$sliderID = Request::$REQUEST->getVar('slider');
|
||||
$this->validateVariable(!empty($sliderID), 'slider');
|
||||
|
||||
$slidersModel = new ModelSliders($this);
|
||||
$slidersModel->restore($sliderID);
|
||||
|
||||
|
||||
Notification::success(n2_('Slider restored.'));
|
||||
|
||||
$this->response->respond();
|
||||
}
|
||||
|
||||
public function actionDeletePermanently() {
|
||||
|
||||
$this->validateToken();
|
||||
$this->validatePermission('smartslider_edit');
|
||||
|
||||
$sliderID = Request::$REQUEST->getVar('slider');
|
||||
$this->validateVariable(!empty($sliderID), 'slider');
|
||||
|
||||
$slidersModel = new ModelSliders($this);
|
||||
$deletedSliderIDs = $slidersModel->deletePermanently($sliderID);
|
||||
|
||||
|
||||
Notification::success(n2_('Slider permanently deleted.'));
|
||||
|
||||
$this->response->respond(array(
|
||||
'sliderIDs' => $deletedSliderIDs
|
||||
));
|
||||
}
|
||||
|
||||
public function actionCreate() {
|
||||
|
||||
$this->validateToken();
|
||||
$this->validatePermission('smartslider_edit');
|
||||
|
||||
$slidersModel = new ModelSliders($this);
|
||||
|
||||
$projectName = Request::$REQUEST->getVar('projectName');
|
||||
$this->validateVariable(!empty($projectName), 'projectName');
|
||||
|
||||
$slider = array(
|
||||
'title' => $projectName,
|
||||
'width' => max(Request::$REQUEST->getInt('sliderWidth', 1200), 200),
|
||||
'height' => max(Request::$REQUEST->getInt('sliderHeight', 600), 100),
|
||||
'responsiveLimitSlideWidth' => 1
|
||||
);
|
||||
|
||||
$projectType = Request::$REQUEST->getVar('projectType', 'slider');
|
||||
|
||||
if ($projectType == 'block') {
|
||||
$slider['type'] = 'block';
|
||||
} else {
|
||||
|
||||
switch (Request::$REQUEST->getVar('sliderType', 'simple')) {
|
||||
|
||||
case 'carousel':
|
||||
$slider['type'] = 'carousel';
|
||||
$slider['maximum-pane-width'] = $slider['width'];
|
||||
$slider['slide-width'] = max(Request::$REQUEST->getInt('slideWidth', 600), 200);
|
||||
$slider['slide-height'] = max(Request::$REQUEST->getInt('slideHeight', 400), 100);
|
||||
|
||||
$slider['widget-bullet-enabled'] = 1;
|
||||
$slider['widgetbullet'] = 'transitionRectangle';
|
||||
|
||||
$slider['widget-arrow-enabled'] = 1;
|
||||
$slider['widgetarrow'] = 'imageEmpty';
|
||||
break;
|
||||
|
||||
case 'showcase':
|
||||
$slider['type'] = 'showcase';
|
||||
$slider['slide-width'] = max(Request::$REQUEST->getInt('slideWidth', 600), 200);
|
||||
$slider['slide-height'] = max(Request::$REQUEST->getInt('slideHeight', 400), 100);
|
||||
|
||||
$slider['widget-bullet-enabled'] = 1;
|
||||
$slider['widgetbullet'] = 'transitionRectangle';
|
||||
break;
|
||||
|
||||
case 'simple':
|
||||
default:
|
||||
$slider['type'] = 'simple';
|
||||
|
||||
$slider['widget-arrow-enabled'] = 1;
|
||||
$slider['widgetarrow'] = 'imageEmpty';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch (Request::$REQUEST->getVar('responsiveMode', 'fullwidth')) {
|
||||
case 'fullpage':
|
||||
$slider['responsive-mode'] = 'fullpage';
|
||||
break;
|
||||
case 'boxed':
|
||||
$slider['responsive-mode'] = 'auto';
|
||||
break;
|
||||
case 'fullwidth':
|
||||
default:
|
||||
$slider['responsive-mode'] = 'fullwidth';
|
||||
break;
|
||||
}
|
||||
|
||||
$groupID = Request::$REQUEST->getVar('groupID', 0);
|
||||
|
||||
$sliderid = $slidersModel->create($slider, $groupID);
|
||||
|
||||
|
||||
Notification::success(n2_('Slider created.'));
|
||||
|
||||
$this->response->redirect($this->getUrlSliderEdit($sliderid, $groupID));
|
||||
}
|
||||
|
||||
public function actionRename() {
|
||||
$this->validateToken();
|
||||
$this->validatePermission('smartslider_edit');
|
||||
|
||||
$sliderId = Request::$REQUEST->getInt('sliderid');
|
||||
$this->validateVariable($sliderId > 0, 'Slider');
|
||||
|
||||
$title = Request::$REQUEST->getVar('title');
|
||||
|
||||
$slidersModel = new ModelSliders($this);
|
||||
$slidersModel->setTitle($sliderId, $title);
|
||||
|
||||
Notification::success(n2_('Slider renamed.'));
|
||||
|
||||
$this->response->respond();
|
||||
}
|
||||
|
||||
public function actionEdit() {
|
||||
$this->validateToken();
|
||||
$this->validatePermission('smartslider_edit');
|
||||
|
||||
$slidersModel = new ModelSliders($this);
|
||||
|
||||
$slider = $slidersModel->get(Request::$REQUEST->getInt('sliderid'));
|
||||
$this->validateDatabase($slider);
|
||||
|
||||
$responseData = $slidersModel->save($slider['id'], Request::$REQUEST->getVar('slider'));
|
||||
if ($responseData !== false) {
|
||||
Notification::success(n2_('Slider saved.'));
|
||||
$this->response->respond($responseData);
|
||||
}
|
||||
}
|
||||
|
||||
public function actionImportDemo() {
|
||||
$this->validateToken();
|
||||
$this->validatePermission('smartslider_edit');
|
||||
|
||||
$key = 'http:' . Base64::decode(Request::$REQUEST->getVar('key'));
|
||||
if (strpos($key, 'http://smartslider3.com/') !== 0) {
|
||||
Notification::error(sprintf(n2_('Import url is not valid: %s'), $key));
|
||||
$this->response->error();
|
||||
}
|
||||
|
||||
$posts = array(
|
||||
'action' => 'asset',
|
||||
'asset' => $key,
|
||||
'version' => SmartSlider3Info::$version
|
||||
);
|
||||
$result = SmartSlider3Info::api($posts);
|
||||
|
||||
if (!is_string($result)) {
|
||||
$hasError = SmartSlider3Info::hasApiError($result['status'], array(
|
||||
'key' => $key
|
||||
));
|
||||
|
||||
if ($hasError == 'dashboard') {
|
||||
$this->redirect($this->getUrlDashboard());
|
||||
} else if ($hasError !== false) {
|
||||
$this->response->error();
|
||||
}
|
||||
} else {
|
||||
|
||||
$import = new ImportSlider($this);
|
||||
|
||||
$groupID = Request::$REQUEST->getVar('groupID', 0);
|
||||
|
||||
$sliderId = $import->import($result, $groupID, 'clone', 1, false);
|
||||
|
||||
if ($sliderId !== false) {
|
||||
Notification::success(n2_('Slider imported.'));
|
||||
|
||||
$this->response->redirect($this->getUrlSliderEdit($sliderId, $groupID));
|
||||
} else {
|
||||
Notification::error(n2_('Import error!'));
|
||||
$this->response->error();
|
||||
}
|
||||
}
|
||||
|
||||
$this->response->respond();
|
||||
}
|
||||
|
||||
|
||||
public function actionDuplicate() {
|
||||
$this->validateToken();
|
||||
|
||||
$this->validatePermission('smartslider_edit');
|
||||
|
||||
$sliderId = Request::$REQUEST->getInt('sliderid');
|
||||
$this->validateVariable($sliderId > 0, 'Slider');
|
||||
|
||||
$slidersModel = new ModelSliders($this);
|
||||
$newSliderId = $slidersModel->duplicate($sliderId, true);
|
||||
$slider = $slidersModel->getWithThumbnail($newSliderId);
|
||||
|
||||
$this->validateDatabase($slider);
|
||||
|
||||
Notification::success(n2_('Slide duplicated.'));
|
||||
|
||||
$view = new ViewAjaxSliderBox($this);
|
||||
$view->setSlider($slider);
|
||||
|
||||
$this->response->respond(array(
|
||||
'html' => $view->display(),
|
||||
'sliderCount' => $slidersModel->getSlidersCount('published', true)
|
||||
));
|
||||
}
|
||||
|
||||
public function actionChangeSliderType() {
|
||||
$this->validateToken();
|
||||
|
||||
$this->validatePermission('smartslider_edit');
|
||||
|
||||
$sliderID = Request::$GET->getInt('sliderID');
|
||||
if ($sliderID > 0) {
|
||||
$targetSliderType = Request::$POST->getVar('targetSliderType');
|
||||
$availableTypes = SliderTypeFactory::getAdminTypes();
|
||||
if (isset($availableTypes[$targetSliderType])) {
|
||||
$slidersModel = new ModelSliders($this);
|
||||
$slidersModel->changeSliderType($sliderID, $targetSliderType);
|
||||
|
||||
$this->response->respond();
|
||||
} else {
|
||||
Notification::error(sprintf(n2_('%s slider type is not available.'), ucfirst($targetSliderType)));
|
||||
$this->response->error();
|
||||
}
|
||||
|
||||
} else {
|
||||
Notification::error('Slider ID error: ' . $sliderID);
|
||||
$this->response->error();
|
||||
}
|
||||
}
|
||||
|
||||
public function actionRenderResponsiveType() {
|
||||
$this->validateToken();
|
||||
|
||||
$this->validatePermission('smartslider_config');
|
||||
|
||||
$responsiveType = ResponsiveTypeFactory::getType(Request::$POST->getVar('value'))
|
||||
->createAdmin();
|
||||
if ($responsiveType) {
|
||||
$values = Request::$REQUEST->getVar('values', array());
|
||||
|
||||
$form = new Form($this->applicationType, 'slider');
|
||||
$form->loadArray($values);
|
||||
|
||||
PageFlow::cleanOutputBuffers();
|
||||
ob_start();
|
||||
|
||||
$responsiveType->renderFields($form->getContainer());
|
||||
$form->render();
|
||||
|
||||
$scripts = AssetManager::generateAjaxJS();
|
||||
$html = ob_get_clean();
|
||||
$this->response->respond(array(
|
||||
'html' => $html,
|
||||
'scripts' => $scripts
|
||||
));
|
||||
} else {
|
||||
|
||||
Notification::error('Responsive type not found: ' . Request::$POST->getVar('value'));
|
||||
$this->response->error();
|
||||
}
|
||||
}
|
||||
|
||||
public function actionRenderWidgetArrow() {
|
||||
|
||||
$this->renderWidgetForm('arrow');
|
||||
}
|
||||
|
||||
public function actionRenderWidgetAutoplay() {
|
||||
|
||||
$this->renderWidgetForm('autoplay');
|
||||
}
|
||||
|
||||
public function actionRenderWidgetBar() {
|
||||
|
||||
$this->renderWidgetForm('bar');
|
||||
}
|
||||
|
||||
public function actionRenderWidgetBullet() {
|
||||
|
||||
$this->renderWidgetForm('bullet');
|
||||
}
|
||||
|
||||
public function actionRenderWidgetFullscreen() {
|
||||
|
||||
$this->renderWidgetForm('fullscreen');
|
||||
}
|
||||
|
||||
public function actionRenderWidgetHtml() {
|
||||
|
||||
$this->renderWidgetForm('html');
|
||||
}
|
||||
|
||||
public function actionRenderWidgetIndicator() {
|
||||
|
||||
$this->renderWidgetForm('indicator');
|
||||
}
|
||||
|
||||
public function actionRenderWidgetShadow() {
|
||||
|
||||
$this->renderWidgetForm('shadow');
|
||||
}
|
||||
|
||||
public function actionRenderWidgetThumbnail() {
|
||||
|
||||
$this->renderWidgetForm('thumbnail');
|
||||
}
|
||||
|
||||
private function renderWidgetForm($type) {
|
||||
$this->validateToken();
|
||||
|
||||
$this->validatePermission('smartslider_config');
|
||||
|
||||
$group = WidgetGroupFactory::getGroup($type);
|
||||
|
||||
$value = Request::$POST->getVar('value');
|
||||
$widget = $group->getWidget($value);
|
||||
if ($widget) {
|
||||
$values = Request::$REQUEST->getVar('values', array());
|
||||
|
||||
$form = new Form($this->applicationType, 'slider');
|
||||
|
||||
$values = array_merge($widget->getDefaults(), $values);
|
||||
$form->loadArray($values);
|
||||
|
||||
PageFlow::cleanOutputBuffers();
|
||||
ob_start();
|
||||
|
||||
$widget->renderFields($form->getContainer());
|
||||
$form->render();
|
||||
|
||||
$scripts = AssetManager::generateAjaxJS();
|
||||
$html = ob_get_clean();
|
||||
$this->response->respond(array(
|
||||
'html' => $html,
|
||||
'scripts' => $scripts
|
||||
));
|
||||
} else {
|
||||
Notification::error('Not found: ' . $value);
|
||||
$this->response->error();
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,268 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Nextend\SmartSlider3\Application\Admin\Slider;
|
||||
|
||||
|
||||
use Nextend\Framework\Data\Data;
|
||||
use Nextend\Framework\Notification\Notification;
|
||||
use Nextend\Framework\Parser\Common;
|
||||
use Nextend\Framework\Request\Request;
|
||||
use Nextend\SmartSlider3\Application\Admin\AbstractControllerAdmin;
|
||||
use Nextend\SmartSlider3\Application\Model\ModelSliders;
|
||||
use Nextend\SmartSlider3\Application\Model\ModelSlides;
|
||||
use Nextend\SmartSlider3\BackupSlider\ExportSlider;
|
||||
|
||||
class ControllerSlider extends AbstractControllerAdmin {
|
||||
|
||||
protected $sliderID = 0;
|
||||
|
||||
protected $sliderAliasOrID = 0;
|
||||
|
||||
protected $groupID = 0;
|
||||
|
||||
public function initialize() {
|
||||
parent::initialize();
|
||||
|
||||
$this->sliderID = Request::$REQUEST->getInt('sliderid');
|
||||
$this->groupID = Request::$REQUEST->getInt('groupID', 0);
|
||||
|
||||
$this->setSliderIDFromAlias();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getSliderID() {
|
||||
return $this->sliderID;
|
||||
}
|
||||
|
||||
public function setSliderIDFromAlias() {
|
||||
$this->sliderAliasOrID = Request::$REQUEST->getVar('slideraliasorid');
|
||||
if (!empty($this->sliderAliasOrID)) {
|
||||
if (is_numeric($this->sliderAliasOrID)) {
|
||||
$this->sliderID = $this->sliderAliasOrID;
|
||||
} else {
|
||||
$slidersModel = new ModelSliders($this);
|
||||
$slider = $slidersModel->getByAlias($this->sliderAliasOrID);
|
||||
$this->sliderID = $slider['id'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function actionClearCache() {
|
||||
if ($this->validateToken()) {
|
||||
$slidersModel = new ModelSliders($this);
|
||||
$slider = $slidersModel->get($this->sliderID);
|
||||
if ($this->validateDatabase($slider)) {
|
||||
|
||||
$slidersModel->refreshCache($this->sliderID);
|
||||
Notification::success(n2_('Cache cleared.'));
|
||||
|
||||
$groupData = $this->getGroupData($this->sliderID);
|
||||
|
||||
$this->redirect($this->getUrlSliderEdit($this->sliderID, $groupData['group_id']));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function actionEdit() {
|
||||
|
||||
|
||||
if ($this->validatePermission('smartslider_edit')) {
|
||||
|
||||
$slidersModel = new ModelSliders($this);
|
||||
|
||||
$slider = $slidersModel->get($this->sliderID);
|
||||
|
||||
if (!$slider) {
|
||||
$this->redirectToSliders();
|
||||
}
|
||||
|
||||
if ($slider['type'] == 'group') {
|
||||
Notification::error(n2_('Groups are only available in the Pro version.'));
|
||||
$this->redirectToSliders();
|
||||
|
||||
|
||||
if (N2SSPRO) {
|
||||
$this->doAction('editGroup', array(
|
||||
$slider
|
||||
));
|
||||
} //N2SSPRO
|
||||
|
||||
} else {
|
||||
|
||||
$groupData = $this->getGroupData($this->sliderID);
|
||||
|
||||
$view = new ViewSliderEdit($this);
|
||||
$view->setGroupData($groupData['group_id'], $groupData['title']);
|
||||
$view->setSlider($slider);
|
||||
$view->display();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function actionSimpleEdit() {
|
||||
|
||||
if ($this->validatePermission('smartslider_edit')) {
|
||||
|
||||
$slidersModel = new ModelSliders($this);
|
||||
|
||||
$slider = $slidersModel->get($this->sliderID);
|
||||
|
||||
if (!$slider) {
|
||||
$this->redirectToSliders();
|
||||
}
|
||||
|
||||
$groupData = $this->getGroupData($this->sliderID);
|
||||
|
||||
if (Request::$POST->getInt('save') && $this->validateToken()) {
|
||||
$sliderData = new Data(Request::$POST->getVar('slider'));
|
||||
|
||||
if ($sliderData->get('delete-slider') == 1) {
|
||||
$slidersModel->trash($this->sliderID, $groupData['group_id']);
|
||||
$this->redirectToSliders();
|
||||
} else {
|
||||
|
||||
$params = json_decode($slider['params'], true);
|
||||
|
||||
$params['aria-label'] = $sliderData->get('aria-label', '');
|
||||
|
||||
$slidersModel->saveSimple($this->sliderID, $sliderData->get('title'), $params);
|
||||
|
||||
$slidesModel = new ModelSlides($this);
|
||||
|
||||
$slides = Request::$POST->getVar('slide');
|
||||
|
||||
$ordering = array();
|
||||
foreach ($slides as $slideID => $slide) {
|
||||
$slideData = new Data($slide);
|
||||
if ($slideData->get('delete-slide') == 1) {
|
||||
$slidesModel->delete($slideID);
|
||||
} else {
|
||||
|
||||
$ordering[$slideID] = $slideData->get('ordering');
|
||||
|
||||
$slideRow = $slidesModel->get($slideID);
|
||||
|
||||
$slideParamsData = new Data($slideRow['params']);
|
||||
|
||||
$linkV1 = $slideParamsData->get('link', '');
|
||||
if (!empty($linkV1)) {
|
||||
list($link, $target) = array_pad((array)Common::parse($linkV1), 2, '');
|
||||
$slideParamsData->un_set('link');
|
||||
$slideParamsData->set('href', $link);
|
||||
$slideParamsData->set('href-target', $target);
|
||||
}
|
||||
|
||||
$slideParamsData->set('href', $slideData->get('href'));
|
||||
$slideParamsData->set('href-target', $slideData->get('href-target'));
|
||||
$slideParamsData->set('thumbnailType', $slideData->get('thumbnailType'));
|
||||
$slideParamsData->set('backgroundImage', $slideData->get('backgroundImage'));
|
||||
|
||||
$slidesModel->saveSimple($slideID, $slideData->get('title'), $slideData->get('description'), $slideParamsData->toArray());
|
||||
}
|
||||
}
|
||||
asort($ordering, SORT_NUMERIC);
|
||||
|
||||
$slidesModel->order($this->sliderID, array_keys($ordering));
|
||||
|
||||
|
||||
$this->redirect($this->getUrlSliderSimpleEdit($this->sliderID, $groupData['group_id']));
|
||||
}
|
||||
}
|
||||
|
||||
$view = new ViewSliderSimpleEdit($this);
|
||||
$view->setGroupData($groupData['group_id'], $groupData['title']);
|
||||
$view->setSlider($slider);
|
||||
$view->display();
|
||||
}
|
||||
}
|
||||
|
||||
public function actionSimpleEditAddSlide() {
|
||||
|
||||
if ($this->validatePermission('smartslider_edit')) {
|
||||
|
||||
$slidersModel = new ModelSliders($this);
|
||||
|
||||
$slider = $slidersModel->get($this->sliderID);
|
||||
|
||||
if (!$slider) {
|
||||
$this->redirectToSliders();
|
||||
}
|
||||
|
||||
$groupData = $this->getGroupData($this->sliderID);
|
||||
|
||||
if (Request::$POST->getInt('save') && $this->validateToken()) {
|
||||
|
||||
$slidesModel = new ModelSlides($this);
|
||||
$slidesModel->createSimpleEditAdd(Request::$POST->getVar('slide'), $this->sliderID);
|
||||
|
||||
$this->redirect($this->getUrlSliderSimpleEdit($this->sliderID, $groupData['group_id']));
|
||||
}
|
||||
|
||||
$view = new ViewSliderSimpleEditAddSlide($this);
|
||||
$view->setGroupData($groupData['group_id'], $groupData['title']);
|
||||
$view->setSlider($slider);
|
||||
$view->display();
|
||||
}
|
||||
}
|
||||
|
||||
public function actionTrash() {
|
||||
if ($this->validateToken() && $this->validatePermission('smartslider_delete')) {
|
||||
$slidersModel = new ModelSliders($this);
|
||||
$mode = $slidersModel->trash($this->sliderID, $this->groupID);
|
||||
switch ($mode) {
|
||||
case 'trash':
|
||||
Notification::success(n2_('Slider moved to the trash.'));
|
||||
break;
|
||||
case 'unlink':
|
||||
Notification::success(n2_('Slider removed from the group.'));
|
||||
break;
|
||||
}
|
||||
|
||||
if ($this->groupID > 0) {
|
||||
$this->redirect($this->getUrlSliderEdit($this->groupID));
|
||||
} else {
|
||||
$this->redirectToSliders();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function actionDuplicate() {
|
||||
if ($this->validateToken() && $this->validatePermission('smartslider_edit')) {
|
||||
$slidersModel = new ModelSliders($this);
|
||||
if (($sliderid = Request::$REQUEST->getInt('sliderid')) && $slidersModel->get($sliderid)) {
|
||||
$newSliderId = $slidersModel->duplicate($sliderid);
|
||||
if ($newSliderId) {
|
||||
Notification::success(n2_('Slider duplicated.'));
|
||||
|
||||
$groupData = $this->getGroupData($newSliderId);
|
||||
|
||||
$this->redirect($this->getUrlSliderEdit($newSliderId, $groupData['group_id']));
|
||||
} else {
|
||||
Notification::error(n2_('Database error'));
|
||||
}
|
||||
|
||||
}
|
||||
$this->redirectToSliders();
|
||||
}
|
||||
}
|
||||
|
||||
public function actionExport() {
|
||||
if ($this->validateToken() && $this->validatePermission('smartslider_edit')) {
|
||||
$export = new ExportSlider($this, $this->sliderID);
|
||||
$export->create();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function actionExportHTML() {
|
||||
if ($this->validateToken() && $this->validatePermission('smartslider_edit')) {
|
||||
$export = new ExportSlider($this, $this->sliderID);
|
||||
$export->createHTML();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
namespace Nextend\SmartSlider3\Application\Admin\Slider;
|
||||
|
||||
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Slider\SliderBox\BlockSliderBox;
|
||||
|
||||
/**
|
||||
* @var $this ViewAjaxSliderBox
|
||||
*/
|
||||
|
||||
$blockSliderBox = new BlockSliderBox($this);
|
||||
$blockSliderBox->setSlider($this->getSlider());
|
||||
$blockSliderBox->display();
|
||||
|
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace Nextend\SmartSlider3\Application\Admin\Slider;
|
||||
|
||||
use Nextend\Framework\Asset\Js\Js;
|
||||
use Nextend\SmartSlider3\Settings;
|
||||
|
||||
/**
|
||||
* @var $this ViewSliderEdit
|
||||
*/
|
||||
|
||||
$slider = $this->getSlider();
|
||||
|
||||
JS::addInline('new _N2.SliderEdit(' . json_encode(array(
|
||||
'previewInNewWindow' => !!Settings::get('preview-new-window', 0),
|
||||
'saveAjaxUrl' => $this->getAjaxUrlSliderEdit($slider['id']),
|
||||
'previewUrl' => $this->getUrlPreviewSlider($slider['id']),
|
||||
'ajaxUrl' => $this->getAjaxUrlSliderEdit($slider['id']),
|
||||
'formData' => $this->formManager->getData()
|
||||
)) . ');');
|
||||
?>
|
||||
|
||||
<form id="n2-ss-edit-slider-form" action="#" method="post">
|
||||
<?php
|
||||
$this->renderForm();
|
||||
?>
|
||||
</form>
|
@ -0,0 +1,164 @@
|
||||
<?php
|
||||
namespace Nextend\SmartSlider3\Application\Admin\Slider;
|
||||
|
||||
/**
|
||||
* @var $this ViewSliderSimpleEdit
|
||||
*/
|
||||
|
||||
use Nextend\Framework\Data\Data;
|
||||
use Nextend\Framework\Form\Container\ContainerTable;
|
||||
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\Textarea;
|
||||
use Nextend\Framework\Form\Element\Token;
|
||||
use Nextend\Framework\Form\Form;
|
||||
use Nextend\Framework\Sanitize;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Forms\Button\BlockButtonSave;
|
||||
use Nextend\SmartSlider3\Application\Model\ModelSlides;
|
||||
use Nextend\SmartSlider3\Slider\SliderParams;
|
||||
|
||||
|
||||
$slider = $this->getSlider();
|
||||
|
||||
$sliderParams = new SliderParams($slider['id'], $slider['type'], $slider['params'], true);
|
||||
|
||||
$sliderData = $sliderParams->toArray();
|
||||
$sliderData['title'] = $slider['title'];
|
||||
$sliderData['type'] = $slider['type'];
|
||||
$sliderData['thumbnail'] = $slider['thumbnail'];
|
||||
$sliderData['alias'] = isset($slider['alias']) ? $slider['alias'] : '';
|
||||
|
||||
?>
|
||||
<form id="n2_slider_form" action="<?php echo esc_url($this->getUrlSliderSimpleEdit($slider['id'], $this->groupID)); ?>" method="post">
|
||||
<div id="slider-settings-region" role="region" tabindex="0" aria-label="<?php echo esc_attr(n2_('Slider settings') . ': ' . $slider['title']); ?>">
|
||||
<?php
|
||||
$form = new Form($this, 'slider');
|
||||
|
||||
new Token($form->getFieldsetHidden());
|
||||
|
||||
$form->loadArray($sliderData);
|
||||
|
||||
$table = new ContainerTable($form->getContainer(), 'general', n2_('Slider settings'));
|
||||
|
||||
$row1 = $table->createRow('general-1');
|
||||
|
||||
new OnOff($row1, 'delete-slider', n2_('Delete slider'), 0);
|
||||
|
||||
new Text($row1, 'title', n2_('Name'), n2_('Slider'), array(
|
||||
'style' => 'width:300px;'
|
||||
));
|
||||
|
||||
new Text($row1, 'aria-label', n2_('ARIA label'), n2_('Slider'), array(
|
||||
'style' => 'width:200px;',
|
||||
'tipLabel' => n2_('ARIA label'),
|
||||
'tipDescription' => n2_('It allows you to label your slider for screen readers.'),
|
||||
'tipLink' => 'https://smartslider.helpscoutdocs.com/article/1722-slider-settings-general#aria-label'
|
||||
));
|
||||
|
||||
$form->render();
|
||||
?>
|
||||
</div>
|
||||
<?php
|
||||
|
||||
$modelSlides = new ModelSlides($this);
|
||||
$slides = $modelSlides->getAll($slider['id']);
|
||||
|
||||
foreach ($slides as $slide) {
|
||||
$slideParams = new Data($slide['params']);
|
||||
$slideData = $slideParams->toArray();
|
||||
$slideData['ordering'] = $slide['ordering'];
|
||||
$slideData['title'] = $slide['title'];
|
||||
$slideData['description'] = $slide['description'];
|
||||
?>
|
||||
<div role="region" tabindex="0" aria-label="<?php echo esc_attr(n2_('Edit slide') . ': ' . $slide['title']); ?>">
|
||||
<?php
|
||||
|
||||
$form = new Form($this, 'slide[' . $slide['id'] . ']');
|
||||
|
||||
$form->loadArray($slideData);
|
||||
|
||||
$table = new ContainerTable($form->getContainer(), 'general', n2_('Slide') . ': ' . $slideData['title']);
|
||||
|
||||
$row1 = $table->createRow('general-1');
|
||||
|
||||
new OnOff($row1, 'delete-slide', n2_('Delete slide'), 0);
|
||||
|
||||
new Text\Number($row1, 'ordering', n2_('Ordering'), 0, array(
|
||||
'wide' => 4
|
||||
));
|
||||
|
||||
new Text($row1, 'title', n2_('Slide title'), '', array(
|
||||
'style' => 'width:300px;'
|
||||
));
|
||||
|
||||
new Textarea($row1, 'description', n2_('Description'), '', array(
|
||||
'width' => 314
|
||||
));
|
||||
|
||||
new Text\FieldImage($row1, 'backgroundImage', n2_('Slide background'), '', array(
|
||||
'width' => 300
|
||||
));
|
||||
|
||||
|
||||
new Select($row1, 'thumbnailType', n2_('Thumbnail type'), 'default', array(
|
||||
'options' => array(
|
||||
'default' => n2_('Default'),
|
||||
'videoDark' => n2_('Video')
|
||||
)
|
||||
));
|
||||
|
||||
new Text($row1, 'href', n2_('Link'), '');
|
||||
new LinkTarget($row1, 'href-target', n2_('Target window'));
|
||||
|
||||
$form->render();
|
||||
|
||||
?>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
?>
|
||||
<div style="margin: 20px;">
|
||||
<?php
|
||||
$buttonSave = new BlockButtonSave($this);
|
||||
$buttonSave->addClass('n2_slider_save');
|
||||
$buttonSave->display();
|
||||
?>
|
||||
</div>
|
||||
<input type="hidden" name="save" value="1">
|
||||
</form>
|
||||
|
||||
<script>
|
||||
_N2.r(['$', 'windowLoad'], function () {
|
||||
var $ = _N2.$;
|
||||
var $form = $('#n2_slider_form');
|
||||
|
||||
$('#slider-settings-region').trigger("focus");
|
||||
|
||||
$('.n2_slider_save').on('click', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
$form.trigger("submit");
|
||||
});
|
||||
|
||||
document.addEventListener('keydown', function (e) {
|
||||
if (e.ctrlKey || e.metaKey) {
|
||||
if (e.code === 'KeyS') { // ctrl + s
|
||||
e.preventDefault();
|
||||
|
||||
$form.trigger("submit");
|
||||
}
|
||||
}
|
||||
}, {
|
||||
capture: true
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<style>
|
||||
:FOCUS {
|
||||
box-shadow: 0 0 3px 1px #1d81f9 !important;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,102 @@
|
||||
<?php
|
||||
namespace Nextend\SmartSlider3\Application\Admin\Slider;
|
||||
|
||||
use Nextend\Framework\Form\Container\ContainerTable;
|
||||
use Nextend\Framework\Form\Element\Select;
|
||||
use Nextend\Framework\Form\Element\Select\LinkTarget;
|
||||
use Nextend\Framework\Form\Element\Text;
|
||||
use Nextend\Framework\Form\Element\Textarea;
|
||||
use Nextend\Framework\Form\Element\Token;
|
||||
use Nextend\Framework\Form\Form;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Forms\Button\BlockButtonSave;
|
||||
|
||||
/**
|
||||
* @var $this ViewSliderSimpleEditAddSlide
|
||||
*/
|
||||
|
||||
$slider = $this->getSlider();
|
||||
|
||||
?>
|
||||
<form id="n2_slider_add_slide_form" action="<?php echo esc_url($this->getUrlSliderSimpleEditAddSlide($slider['id'], $this->groupID)); ?>" method="post">
|
||||
<div id="slider-add-slide-region" role="region" tabindex="0" aria-label="<?php n2_e('Add slide'); ?>">
|
||||
<?php
|
||||
$form = new Form($this, 'slide');
|
||||
|
||||
new Token($form->getFieldsetHidden());
|
||||
|
||||
$table = new ContainerTable($form->getContainer(), 'general', n2_('Add slide'));
|
||||
|
||||
$row1 = $table->createRow('general-1');
|
||||
|
||||
new Text($row1, 'title', n2_('Slide title'), '', array(
|
||||
'style' => 'width:300px;'
|
||||
));
|
||||
|
||||
new Textarea($row1, 'description', n2_('Description'), '', array(
|
||||
'width' => 314
|
||||
));
|
||||
|
||||
new Text\FieldImage($row1, 'backgroundImage', n2_('Slide background'), '', array(
|
||||
'width' => 300
|
||||
));
|
||||
|
||||
new Text($row1, 'video', n2_('Video url'), '', array(
|
||||
'style' => 'width:300px;'
|
||||
));
|
||||
|
||||
new Select($row1, 'thumbnailType', n2_('Thumbnail type'), 'default', array(
|
||||
'options' => array(
|
||||
'default' => n2_('Default'),
|
||||
'videoDark' => n2_('Video')
|
||||
)
|
||||
));
|
||||
|
||||
new Text($row1, 'href', n2_('Link'), '');
|
||||
new LinkTarget($row1, 'href-target', n2_('Target window'));
|
||||
|
||||
$form->render();
|
||||
?>
|
||||
</div>
|
||||
<div style="margin: 20px;">
|
||||
<?php
|
||||
$buttonSave = new BlockButtonSave($this);
|
||||
$buttonSave->setLabel(n2_('Add slide'));
|
||||
$buttonSave->addClass('n2_slider_add_slide');
|
||||
$buttonSave->display();
|
||||
?>
|
||||
</div>
|
||||
<input type="hidden" name="save" value="1">
|
||||
</form>
|
||||
|
||||
<script>
|
||||
_N2.r(['$', 'windowLoad'], function () {
|
||||
var $ = _N2.$;
|
||||
var $form = $('#n2_slider_add_slide_form');
|
||||
|
||||
$('#slider-add-slide-region').trigger("focus");
|
||||
|
||||
$('.n2_slider_add_slide').on('click', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
$form.trigger("submit");
|
||||
});
|
||||
|
||||
document.addEventListener('keydown', function (e) {
|
||||
if (e.ctrlKey || e.metaKey) {
|
||||
if (e.code === 'KeyS') { // ctrl + s
|
||||
e.preventDefault();
|
||||
|
||||
$form.trigger("submit");
|
||||
}
|
||||
}
|
||||
}, {
|
||||
capture: true
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<style>
|
||||
:FOCUS {
|
||||
box-shadow: 0 0 3px 1px #1d81f9 !important;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Nextend\SmartSlider3\Application\Admin\Slider;
|
||||
|
||||
use Nextend\Framework\View\AbstractViewAjax;
|
||||
|
||||
class ViewAjaxSliderBox extends AbstractViewAjax {
|
||||
|
||||
/** @var array */
|
||||
protected $slider;
|
||||
|
||||
public function display() {
|
||||
|
||||
return $this->render('AjaxSliderBox');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getSlider() {
|
||||
return $this->slider;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $slider
|
||||
*/
|
||||
public function setSlider($slider) {
|
||||
$this->slider = $slider;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,211 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Nextend\SmartSlider3\Application\Admin\Slider;
|
||||
|
||||
|
||||
use Nextend\Framework\Acl\Acl;
|
||||
use Nextend\Framework\Sanitize;
|
||||
use Nextend\Framework\View\AbstractView;
|
||||
use Nextend\SmartSlider3\Application\Admin\FormManager\FormManagerSlider;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Core\Banner\BlockBannerActivate;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Core\Header\BlockHeader;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Core\TopBarMain\BlockTopBarMain;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Forms\Button\BlockButton;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Forms\Button\BlockButtonBack;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Forms\Button\BlockButtonPlainIcon;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Forms\Button\BlockButtonSave;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Forms\FloatingMenu\BlockFloatingMenu;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Forms\FloatingMenu\BlockFloatingMenuItem;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Slide\SlideManager\BlockSlideManager;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\LayoutDefault;
|
||||
use Nextend\SmartSlider3\Application\Admin\TraitAdminUrl;
|
||||
use Nextend\SmartSlider3\Application\Model\ModelLicense;
|
||||
|
||||
class ViewSliderEdit extends AbstractView {
|
||||
|
||||
use TraitAdminUrl;
|
||||
|
||||
protected $groupID = 0;
|
||||
|
||||
protected $groupTitle = '';
|
||||
|
||||
protected $slider;
|
||||
|
||||
/**
|
||||
* @var BlockHeader
|
||||
*/
|
||||
protected $blockHeader;
|
||||
|
||||
/**
|
||||
* @var FormManagerSlider
|
||||
*/
|
||||
protected $formManager;
|
||||
|
||||
/**
|
||||
* @param int $groupID
|
||||
* @param string $groupTitle
|
||||
*/
|
||||
public function setGroupData($groupID, $groupTitle) {
|
||||
$this->groupID = $groupID;
|
||||
$this->groupTitle = $groupTitle;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $slider
|
||||
*/
|
||||
public function setSlider($slider) {
|
||||
$this->slider = $slider;
|
||||
}
|
||||
|
||||
public function display() {
|
||||
$this->formManager = new FormManagerSlider($this, $this->slider);
|
||||
|
||||
$this->layout = new LayoutDefault($this);
|
||||
|
||||
if ($this->groupID) {
|
||||
$this->layout->addBreadcrumb(Sanitize::esc_html($this->groupTitle), 'ssi_16 ssi_16--folderclosed', $this->getUrlSliderEdit($this->groupID));
|
||||
}
|
||||
|
||||
$this->layout->addBreadcrumb(Sanitize::esc_html($this->slider['title']), 'ssi_16 ssi_16--image', $this->getUrlSliderEdit($this->slider['id'], $this->groupID));
|
||||
|
||||
|
||||
$slideManager = new BlockSlideManager($this);
|
||||
$slideManager->setGroupID($this->groupID);
|
||||
$slideManager->setSliderID($this->slider['id']);
|
||||
|
||||
$subNavigationHTML = '';
|
||||
|
||||
$subNavigationHTML .= $slideManager->toHTML();
|
||||
|
||||
$this->layout->setSubNavigation($subNavigationHTML);
|
||||
|
||||
|
||||
$topBar = new BlockTopBarMain($this);
|
||||
|
||||
$buttonSave = new BlockButtonSave($this);
|
||||
$buttonSave->addClass('n2_slider_settings_save');
|
||||
$buttonSave->addClass('n2_button--inactive');
|
||||
$topBar->addPrimaryBlock($buttonSave);
|
||||
|
||||
|
||||
$buttonBack = new BlockButtonBack($this);
|
||||
if ($this->groupID != 0) {
|
||||
$buttonBack->setUrl($this->getUrlSliderEdit($this->groupID));
|
||||
} else {
|
||||
$buttonBack->setUrl($this->getUrlDashboard());
|
||||
}
|
||||
$buttonBack->addClass('n2_slider_settings_back');
|
||||
$topBar->addPrimaryBlock($buttonBack);
|
||||
|
||||
$buttonPreview = new BlockButtonPlainIcon($this);
|
||||
$buttonPreview->addClass('n2_top_bar_button_icon');
|
||||
$buttonPreview->addClass('n2_top_bar_main__preview');
|
||||
$buttonPreview->setIcon('ssi_24 ssi_24--preview');
|
||||
$buttonPreview->addAttribute('data-n2tip', n2_('Preview'));
|
||||
$buttonPreview->setUrl($this->getUrlPreviewIndex($this->slider['id']));
|
||||
$topBar->addPrimaryBlock($buttonPreview);
|
||||
|
||||
|
||||
$this->layout->setTopBar($topBar->toHTML());
|
||||
|
||||
$this->displayHeader();
|
||||
|
||||
$this->layout->addContent($this->render('Edit'));
|
||||
|
||||
$this->layout->render();
|
||||
}
|
||||
|
||||
protected function displayHeader() {
|
||||
|
||||
|
||||
$this->blockHeader = new BlockHeader($this);
|
||||
$this->blockHeader->setHeading($this->slider['title']);
|
||||
$this->blockHeader->setHeadingAfter('ID: ' . $this->slider['id']);
|
||||
|
||||
$this->formManager->addTabsToHeader($this->blockHeader);
|
||||
|
||||
$this->addHeaderActions();
|
||||
|
||||
$this->layout->addContentBlock($this->blockHeader);
|
||||
}
|
||||
|
||||
public function getSlider() {
|
||||
|
||||
return $this->slider;
|
||||
}
|
||||
|
||||
private function addHeaderActions() {
|
||||
|
||||
$accessEdit = Acl::canDo('smartslider_edit', $this);
|
||||
$accessDelete = Acl::canDo('smartslider_delete', $this);
|
||||
|
||||
if ($accessEdit || $accessDelete) {
|
||||
|
||||
$sliderid = $this->slider['id'];
|
||||
|
||||
$actionsMenu = new BlockFloatingMenu($this);
|
||||
|
||||
$actions = new BlockButton($this);
|
||||
$actions->setBig();
|
||||
$actions->setLabel(n2_('Actions'));
|
||||
$actions->setIcon('ssi_16 ssi_16--buttonarrow');
|
||||
$actionsMenu->setButton($actions);
|
||||
|
||||
|
||||
if ($accessEdit) {
|
||||
|
||||
$item = new BlockFloatingMenuItem($this);
|
||||
$item->setLabel(n2_('Change slider type'));
|
||||
$item->setIcon('ssi_16 ssi_16--arrowright');
|
||||
$item->addClass('n2_slider_action__change_slider_type');
|
||||
$actionsMenu->addMenuItem($item);
|
||||
|
||||
$item = new BlockFloatingMenuItem($this);
|
||||
$item->setLabel(n2_('Clear cache'));
|
||||
$item->setIcon('ssi_16 ssi_16--reset');
|
||||
$item->setUrl($this->getUrlSliderClearCache($sliderid));
|
||||
$actionsMenu->addMenuItem($item);
|
||||
|
||||
$item = new BlockFloatingMenuItem($this);
|
||||
$item->setLabel(sprintf(n2_('Export %1$s as HTML'), n2_('Slider')));
|
||||
$item->setIcon('ssi_16 ssi_16--download');
|
||||
$item->setUrl($this->getUrlSliderExportHtml($sliderid));
|
||||
$actionsMenu->addMenuItem($item);
|
||||
|
||||
$item = new BlockFloatingMenuItem($this);
|
||||
$item->setLabel(n2_('Export'));
|
||||
$item->setIcon('ssi_16 ssi_16--download');
|
||||
$item->setUrl($this->getUrlSliderExport($sliderid));
|
||||
$actionsMenu->addMenuItem($item);
|
||||
|
||||
|
||||
|
||||
$item = new BlockFloatingMenuItem($this);
|
||||
$item->setLabel(n2_('Duplicate slider'));
|
||||
$item->setIcon('ssi_16 ssi_16--duplicate');
|
||||
$item->setUrl($this->getUrlSliderDuplicate($sliderid, $this->groupID));
|
||||
$actionsMenu->addMenuItem($item);
|
||||
}
|
||||
|
||||
if ($accessDelete) {
|
||||
|
||||
$item = new BlockFloatingMenuItem($this);
|
||||
$item->setRed();
|
||||
$item->setLabel(n2_('Move to trash'));
|
||||
$item->setIcon('ssi_16 ssi_16--delete');
|
||||
$item->setUrl($this->getUrlSliderMoveToTrash($sliderid, $this->groupID));
|
||||
$actionsMenu->addMenuItem($item);
|
||||
|
||||
}
|
||||
|
||||
$this->blockHeader->addAction($actionsMenu->toHTML());
|
||||
}
|
||||
}
|
||||
|
||||
public function renderForm() {
|
||||
|
||||
$this->formManager->render();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,105 @@
|
||||
<?php
|
||||
|
||||
namespace Nextend\SmartSlider3\Application\Admin\Slider;
|
||||
|
||||
use Nextend\Framework\Sanitize;
|
||||
use Nextend\Framework\View\AbstractView;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Core\Header\BlockHeader;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Core\TopBarMain\BlockTopBarMain;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Forms\Button\BlockButton;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Forms\Button\BlockButtonBack;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Forms\Button\BlockButtonSave;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\LayoutDefault;
|
||||
use Nextend\SmartSlider3\Application\Admin\TraitAdminUrl;
|
||||
|
||||
class ViewSliderSimpleEdit extends AbstractView {
|
||||
|
||||
use TraitAdminUrl;
|
||||
|
||||
protected $groupID = 0;
|
||||
|
||||
protected $groupTitle = '';
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $slider;
|
||||
|
||||
/**
|
||||
* @param int $groupID
|
||||
* @param string $groupTitle
|
||||
*/
|
||||
public function setGroupData($groupID, $groupTitle) {
|
||||
$this->groupID = $groupID;
|
||||
$this->groupTitle = $groupTitle;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $slider
|
||||
*/
|
||||
public function setSlider($slider) {
|
||||
$this->slider = $slider;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getSlider() {
|
||||
return $this->slider;
|
||||
}
|
||||
|
||||
public function display() {
|
||||
|
||||
$this->layout = new LayoutDefault($this);
|
||||
|
||||
if ($this->groupID) {
|
||||
$this->layout->addBreadcrumb(Sanitize::esc_html($this->groupTitle), 'ssi_16 ssi_16--folderclosed', $this->getUrlSliderEdit($this->groupID));
|
||||
}
|
||||
|
||||
$this->layout->addBreadcrumb(Sanitize::esc_html($this->slider['title']), 'ssi_16 ssi_16--image', $this->getUrlSliderEdit($this->slider['id'], $this->groupID));
|
||||
|
||||
$this->layout->addBreadcrumb(n2_('Simple edit'), 'ssi_16 ssi_16--cog', $this->getUrlSliderSimpleEdit($this->slider['id'], $this->groupID));
|
||||
|
||||
|
||||
$topBar = new BlockTopBarMain($this);
|
||||
|
||||
$buttonSave = new BlockButtonSave($this);
|
||||
$buttonSave->addClass('n2_slider_save');
|
||||
$topBar->addPrimaryBlock($buttonSave);
|
||||
|
||||
|
||||
$buttonBack = new BlockButtonBack($this);
|
||||
if ($this->groupID != 0) {
|
||||
$buttonBack->setUrl($this->getUrlSliderEdit($this->groupID));
|
||||
} else {
|
||||
$buttonBack->setUrl($this->getUrlDashboard());
|
||||
}
|
||||
$buttonBack->addClass('n2_slider_settings_back');
|
||||
$topBar->addPrimaryBlock($buttonBack);
|
||||
|
||||
$this->layout->setTopBar($topBar->toHTML());
|
||||
|
||||
$this->displayHeader();
|
||||
|
||||
$this->layout->addContent($this->render('SimpleEdit'));
|
||||
|
||||
$this->layout->render();
|
||||
|
||||
}
|
||||
|
||||
protected function displayHeader() {
|
||||
|
||||
$blockHeader = new BlockHeader($this);
|
||||
$blockHeader->setHeading($this->slider['title']);
|
||||
$blockHeader->setHeadingAfter('ID: ' . $this->slider['id']);
|
||||
|
||||
$addSlide = new BlockButton($this);
|
||||
$addSlide->setGreen();
|
||||
$addSlide->setBig();
|
||||
$addSlide->setLabel(n2_('Add slide'));
|
||||
$addSlide->setUrl($this->getUrlSliderSimpleEditAddSlide($this->slider['id'], $this->groupID));
|
||||
$blockHeader->addAction($addSlide->toHTML());
|
||||
|
||||
$this->layout->addContentBlock($blockHeader);
|
||||
}
|
||||
}
|
@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
namespace Nextend\SmartSlider3\Application\Admin\Slider;
|
||||
|
||||
use Nextend\Framework\Sanitize;
|
||||
use Nextend\Framework\View\AbstractView;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Core\TopBarMain\BlockTopBarMain;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Forms\Button\BlockButtonBack;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\Block\Forms\Button\BlockButtonSave;
|
||||
use Nextend\SmartSlider3\Application\Admin\Layout\LayoutDefault;
|
||||
use Nextend\SmartSlider3\Application\Admin\TraitAdminUrl;
|
||||
|
||||
class ViewSliderSimpleEditAddSlide extends AbstractView {
|
||||
|
||||
use TraitAdminUrl;
|
||||
|
||||
protected $groupID = 0;
|
||||
|
||||
protected $groupTitle = '';
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $slider;
|
||||
|
||||
/**
|
||||
* @param int $groupID
|
||||
* @param string $groupTitle
|
||||
*/
|
||||
public function setGroupData($groupID, $groupTitle) {
|
||||
$this->groupID = $groupID;
|
||||
$this->groupTitle = $groupTitle;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $slider
|
||||
*/
|
||||
public function setSlider($slider) {
|
||||
$this->slider = $slider;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getSlider() {
|
||||
return $this->slider;
|
||||
}
|
||||
|
||||
public function display() {
|
||||
|
||||
$this->layout = new LayoutDefault($this);
|
||||
|
||||
if ($this->groupID) {
|
||||
$this->layout->addBreadcrumb(Sanitize::esc_html($this->groupTitle), 'ssi_16 ssi_16--folderclosed', $this->getUrlSliderEdit($this->groupID));
|
||||
}
|
||||
|
||||
$this->layout->addBreadcrumb(Sanitize::esc_html($this->slider['title']), 'ssi_16 ssi_16--image', $this->getUrlSliderEdit($this->slider['id'], $this->groupID));
|
||||
|
||||
$this->layout->addBreadcrumb(n2_('Simple edit'), 'ssi_16 ssi_16--cog', $this->getUrlSliderSimpleEdit($this->slider['id'], $this->groupID));
|
||||
|
||||
|
||||
$topBar = new BlockTopBarMain($this);
|
||||
|
||||
$buttonSave = new BlockButtonSave($this);
|
||||
$buttonSave->setLabel(n2_('Add slide'));
|
||||
$buttonSave->addClass('n2_slider_add_slide');
|
||||
$topBar->addPrimaryBlock($buttonSave);
|
||||
|
||||
|
||||
$buttonBack = new BlockButtonBack($this);
|
||||
$buttonBack->setUrl($this->getUrlSliderSimpleEdit($this->slider['id'], $this->groupID));
|
||||
$topBar->addPrimaryBlock($buttonBack);
|
||||
|
||||
$this->layout->setTopBar($topBar->toHTML());
|
||||
|
||||
$this->layout->addContent($this->render('SimpleEditAddSlide'));
|
||||
|
||||
$this->layout->render();
|
||||
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user