public function save() { $namespace = N2Request::getCmd('namespace', 'default'); $settings = N2Request::getVar('settings'); if ($namespace && $settings) { if ($namespace == 'default') { $namespace = 'settings'; } if ($namespace == 'font' && N2Request::getInt('sliderid')) { $namespace .= N2Request::getInt('sliderid'); self::markChanged(N2Request::getInt('sliderid')); } if ($namespace == 'joomla') { $license = empty($settings['license']) ? '' : $settings['license']; $updates = $this->db->queryAll("SELECT b.update_site_id FROM " . $this->db->tableAlias("extensions") . " AS a LEFT JOIN " . $this->db->tableAlias("update_sites_extensions") . " AS b ON a.extension_id = b.extension_id WHERE a.element = 'com_smartslider3'"); if (count($updates)) { $id = $updates[0]['update_site_id']; unset($updates[0]); if (count($updates)) { foreach ($updates as $u) { $this->db->setTableName("update_sites"); $this->db->deleteByAttributes(array("update_site_id" => $u['update_site_id'])); $this->db->setTableName("update_sites_extensions"); $this->db->deleteByAttributes(array("update_site_id" => $u['update_site_id'])); } } $this->db->setTableName("update_sites"); $this->db->update(array("location" => 'http://www.nextendweb.com/update2/joomla/update.php?license=' . urlencode($license) . '&fake=extension.xml'), array("update_site_id" => $id)); } } N2SmartSliderSettings::store($namespace, json_encode($settings)); } }
public function actionEdit() { $this->validateToken(); $this->validatePermission('smartslider_edit'); if (N2Request::getInt('save')) { $slidersModel = new N2SmartsliderSlidersModel(); $slider = $slidersModel->get(N2Request::getInt('sliderid')); $this->validateDatabase($slider); if ($sliderid = $slidersModel->save($slider['id'], N2Request::getVar('slider'))) { N2Message::success(n2_('Slider saved.')); $this->response->respond(); } } $response = null; $id = N2Request::getCmd('id'); $ajaxModel = new N2SmartSliderAjaxModel(); ob_start(); switch ($id) { case 'slidertype': $response = $ajaxModel->sliderType($this->appType); break; case 'sliderresponsivemode': $response = $ajaxModel->sliderResponsiveMode($this->appType); break; case 'sliderwidgetarrow': $response = $ajaxModel->sliderWidget($this->appType, 'arrow'); break; case 'sliderwidgetbullet': $response = $ajaxModel->sliderWidget($this->appType, 'bullet'); break; case 'sliderwidgetautoplay': $response = $ajaxModel->sliderWidget($this->appType, 'autoplay'); break; case 'sliderwidgetindicator': $response = $ajaxModel->sliderWidget($this->appType, 'indicator'); break; case 'sliderwidgetfullscreen': $response = $ajaxModel->sliderWidget($this->appType, 'fullscreen'); break; case 'sliderwidgetbar': $response = $ajaxModel->sliderWidget($this->appType, 'bar'); break; case 'sliderwidgetthumbnail': $response = $ajaxModel->sliderWidget($this->appType, 'thumbnail'); break; case 'sliderwidgetshadow': $response = $ajaxModel->sliderWidget($this->appType, 'shadow'); break; case 'sliderwidgethtml': $response = $ajaxModel->sliderWidget($this->appType, 'html'); break; } if ($response == null) { $response = array('html' => '', 'script' => ''); } $response['html'] .= ob_get_clean(); $this->response->respond($response); }
public function actionRecordsTable() { $this->validateToken(); $this->validatePermission('smartslider_edit'); $generatorId = N2Request::getInt('generator_id'); $generatorModel = new N2SmartsliderGeneratorModel(); if ($generatorId > 0) { $generator = $generatorModel->get($generatorId); $this->validateDatabase($generator); } else { $info = new N2Data(N2Request::getVar('generator')); $generator = array('group' => $info->get('group'), 'type' => $info->get('type'), 'params' => '{}'); } $info = $generatorModel->getGeneratorInfo($generator['group'], $generator['type']); $generator['params'] = new N2Data($generator['params'], true); $generator['params']->loadArray(N2Request::getVar('generator')); require_once $info->path . '/generator.php'; $class = 'N2Generator' . $generator['group'] . $generator['type']; /** @var N2GeneratorAbstract $dataSource */ $dataSource = new $class($info, $generator['params']); $request = new N2Data(N2Request::getVar('generator')); $group = max(intval($request->get('record-group', 1)), 1); $result = $dataSource->getData(max($request->get('record-slides', 1), 1), max($request->get('record-start', 1), 1), $group); if (count($result)) { ob_start(); $headings = array(); for ($i = 1; $i <= $group; $i++) { $headings[] = '#'; foreach ($result[0][0] as $k => $v) { $headings[] = '{' . $k . '/' . $i . '}'; } } $headingHTML = N2Html::tag('thead', array(), N2Html::tag('tr', array(), '<th>' . implode('</th><th>', $headings) . '</th>')); $rows = array(); $i = 0; foreach ($result as $records) { foreach ($records as $g => $record) { $rows[$i][] = $i + 1; foreach ($record as $k => $v) { $rows[$i][] = N2Html::tag('div', array(), htmlentities($v)); } } $i++; } for ($i = 0; $i < count($rows); $i++) { $rows[$i] = '<td>' . implode('</td><td>', $rows[$i]) . '</td>'; } $recordHTML = N2Html::tag('tbody', array(), '<tr>' . implode('</tr><tr>', $rows) . '</tr>'); echo N2Html::tag('div', array('style' => 'width: 100%; height: 100%; overflow: auto;'), N2Html::tag('table', array('class' => 'n2-generator-records n2-table n2-table-fancy', 'style' => 'margin: 10px; width: auto; table-layout: fixed;'), $headingHTML . $recordHTML)); $this->response->respond(array('html' => ob_get_clean())); } else { N2Message::notice('No records found for the filter'); $this->response->error(); } }
public function actionDuplicate() { if ($this->validateToken() && $this->validatePermission('smartslider_edit')) { $slidersModel = new N2SmartsliderSlidersModel(); if (($sliderid = N2Request::getInt('sliderid')) && $slidersModel->get($sliderid)) { $newSliderId = $slidersModel->duplicate($sliderid); N2Message::success(n2_('Slider duplicated.')); $this->redirect(array("slider/edit", array("sliderid" => $newSliderId))); } $this->redirectToSliders(); } }
public function actionChangeVisual() { $this->validateToken(); $visualId = N2Request::getInt('visualId'); $this->validateVariable($visualId > 0, 'image'); $model = $this->getModel(); if ($visual = $model->changeVisual($visualId, N2Request::getVar('value'))) { $this->response->respond(array('visual' => $visual)); } N2Message::error(n2_('Unexpected error')); $this->response->error(); }
public function actionGenerator() { if ($this->validateToken() && $this->validatePermission('smartslider_edit')) { $generator_id = N2Request::getInt('generator_id'); $generatorModel = new N2SmartsliderGeneratorModel(); $sliderId = $generatorModel->getSliderId($generator_id); if ($sliderId) { $generatorData = array(); $generatorData[$generator_id] = N2Request::getVar('generator'); $this->addView("generator", array('generatorData' => $generatorData, 'sliderId' => $sliderId)); $this->render(); } } }
public function actionItemDefaults() { if ($this->validatePermission('smartslider_config')) { if (N2Request::getInt('save')) { if ($this->validateToken()) { $settingsModel = new N2SmartsliderSettingsModel(); if ($settingsModel->saveDefaults(N2Request::getVar('defaults', array()))) { $this->refresh(); } } else { $this->refresh(); } } $this->addView("../../inline/_sidebar_settings", array(), "sidebar"); $this->addView("defaults"); $this->render(); } }
<?php /** * @var $slidesModel N2SmartsliderSlidesModel */ $slide = $slidesModel->get(N2Request::getInt('slideid', 0)); $actions = array(N2Html::tag('a', array('href' => $this->appType->router->createUrl(array("slider/edit", array("sliderid" => $sliderId))), 'class' => 'n2-button n2-button-red n2-button-big n2-h4 n2-b n2-uc', 'onclick' => 'return nextend.cancel(this.href);'), n2_('Cancel'))); if ($slide && $slide['generator_id'] > 0) { $actions[] = N2Html::tag('a', array('href' => '#', 'class' => 'n2-button n2-button-blue n2-button-big n2-h4 n2-b n2-uc', 'onclick' => 'nextend.askToSave = false;setTimeout(function() {var static = n2("<input name=\'static\' value=\'1\' />"); n2(\'#smartslider-form\').append(static).submit(); static.remove();}, 300); return false;'), n2_('Static save')); } $actions[] = N2Html::tag('a', array('href' => '#', 'class' => 'n2-button n2-button-green n2-button-big n2-h4 n2-b n2-uc', 'onclick' => 'return NextendForm.submit("#smartslider-form");'), n2_('Save')); $this->widget->init('topbar', array('back' => N2Html::tag('a', array('class' => 'n2-h4 n2-uc', 'href' => $this->appType->router->createUrl(array("slider/edit", array("sliderid" => $sliderId)))), n2_('Slider settings')), "actions" => $actions, 'menu' => array(N2Html::tag('a', array('id' => 'n2-ss-preview', 'href' => '#', 'class' => 'n2-h3 n2-uc n2-has-underline n2-button n2-button-blue n2-button-big', 'style' => 'font-size: 12px;'), n2_('Preview')), N2Html::tag('a', array('id' => 'n2-ss-undo', 'href' => '#', 'class' => 'n2-h3 n2-uc n2-has-underline n2-button n2-button-grey n2-button-big n2-icon-button', 'style' => 'font-size: 12px;'), '<i class="n2-i n2-it n2-i-16 n2-i-undo"></i>'), N2Html::tag('a', array('id' => 'n2-ss-redo', 'href' => '#', 'class' => 'n2-h3 n2-uc n2-has-underline n2-button n2-button-grey n2-button-big n2-icon-button', 'style' => 'font-size: 12px;'), '<i class="n2-i n2-it n2-i-16 n2-i-redo"></i>')), "hideSidebar" => true)); ?> <script type="text/javascript"> nextend.isPreview = false; nextend.ready( function ($) { var form = $('#smartslider-form'), formAction = form.attr('action'); var modal = new NextendSimpleModal('<iframe name="n2-tab-preview" src="" style="width: 100%;height:100%;"></iframe>'); modal.modal.on('ModalHide', function () { modal.modal.find('iframe').attr('src', 'about:blank'); $(window).trigger('SSPreviewHide'); }); $('#n2-ss-preview').on('click', function (e) { nextend.isPreview = true; e.preventDefault();
/** * @return bool */ public function isAjaxCall() { return N2Request::getInt('nextendajax'); }
public function isCurrentlyEdited() { return N2Request::getInt('slideid') == $this->id; }
public function _renderGroupOption($group, $sources) { $options = array(); foreach ($sources as $type => $info) { /** * @var $info N2GeneratorInfo */ $options[$type] = $info->title; if ($info->hasConfiguration) { $button = N2Html::link("Next", $this->appType->router->createUrl(array("generator/checkConfiguration", array("sliderid" => N2Request::getInt('sliderid'), "group" => $group))), array("onclick" => "var el = n2(this); el.attr('href', el.attr('href') + '&type='+el.parents('.n2-box-placeholder').find('select').val());", "class" => "n2-button n2-button-small n2-button-blue")); } elseif (!$info->installed) { $button = N2Html::link("Check extension", $info->readMore, array("target" => "_blank", "class" => "n2-button n2-button-small n2-button-grey")); } else { $button = N2Html::link("Next", $this->appType->router->createUrl(array("generator/createSettings", array("sliderid" => N2Request::getInt('sliderid'), "group" => $group))), array("onclick" => "var el = n2(this); el.attr('href', el.attr('href') + '&type='+el.parents('.n2-box-placeholder').find('select').val());", "class" => "n2-button n2-button-small n2-button-blue")); } } $optionsHTML = ''; foreach ($options as $k => $v) { $optionsHTML .= N2Html::tag('option', array('value' => $k), $v); } echo N2Html::tag('div', array('class' => 'n2-box'), N2Html::image(N2Uri::pathToUri(N2Filesystem::translate($info->path . '/../dynamic.png'))) . N2Html::tag("div", array('class' => 'n2-box-placeholder'), N2Html::tag("table", array(), N2Html::tag("tr", array(), N2Html::tag("td", array('class' => 'n2-box-label'), N2Html::tag('select', array('name' => 'generator-type'), $optionsHTML)) . N2Html::tag("td", array('class' => 'n2-box-button'), $button))))); }
public function makeSlides($extend = array()) { if (N2Request::getCmd('nextendcontroller') == 'slides') { $slides =& $this->slides; if (N2Request::getCmd('nextendaction') == 'create') { if ($this->maximumSlideCount > 0) { array_splice($slides, $this->maximumSlideCount - 1); } $staticSlide = N2Request::getInt('static', 0); $slide = $this->createSlide(array('id' => 0, 'title' => 'Title', 'slider' => N2Request::getInt('sliderid'), 'publish_up' => '0000-00-00 00:00:00', 'publish_down' => '0000-00-00 00:00:00', 'published' => 1, 'first' => 0, 'slide' => '', 'description' => '', 'thumbnail' => '', 'background' => 'ffffff00|*|', 'params' => json_encode(array('static-slide' => $staticSlide)), 'ordering' => count($slides), 'generator_id' => 0)); if ($slide->isStatic()) { $this->slider->addStaticSlide($slide); if (count($slides) == 0) { $slide2 = $this->createSlide(array('id' => 0, 'title' => 'Title', 'slider' => N2Request::getInt('sliderid'), 'publish_up' => '0000-00-00 00:00:00', 'publish_down' => '0000-00-00 00:00:00', 'published' => 1, 'first' => 0, 'slide' => '', 'description' => '', 'thumbnail' => '', 'background' => 'ffffff00|*|', 'params' => '', 'ordering' => count($slides), 'generator_id' => 0)); array_push($slides, $slide2); } } else { for ($i = 0; $i < count($slides); $i++) { if ($slides[$i]->isStatic()) { $this->slider->addStaticSlide($slides[$i]); array_splice($slides, $i, 1); $i--; } } array_push($slides, $slide); $this->slider->_activeSlide = count($slides) - 1; } } else { $currentlyEdited = N2Request::getInt('slideid'); $currentlyEditedSlide = null; $isStatic = false; for ($i = 0; $i < count($slides); $i++) { if ($slides[$i]->isStatic()) { if ($slides[$i]->id == $currentlyEdited) { $isStatic = true; } $this->slider->addStaticSlide($slides[$i]); array_splice($slides, $i, 1); $i--; } } if ($isStatic) { for ($i = 0; $i < count($this->slider->staticSlides); $i++) { if ($this->slider->staticSlides[$i]->id != $currentlyEdited) { array_splice($this->slider->staticSlides, $i, 1); $i--; } } } for ($i = 0; $i < count($slides); $i++) { $slides[$i]->initGenerator($extend); } for ($i = count($slides) - 1; $i >= 0; $i--) { if ($slides[$i]->hasGenerator()) { array_splice($slides, $i, 1, $slides[$i]->expandSlide()); } } if (!$isStatic) { for ($i = 0; $i < count($slides); $i++) { if ($slides[$i]->id == $currentlyEdited) { $this->slider->_activeSlide = $i; $currentlyEditedSlide = $slides[$i]; break; } } } else { if (count($slides) == 0) { if (count($slides) == 0) { $slide2 = $this->createSlide(array('id' => 0, 'title' => 'Title', 'slider' => N2Request::getInt('sliderid'), 'publish_up' => '0000-00-00 00:00:00', 'publish_down' => '0000-00-00 00:00:00', 'published' => 1, 'first' => 0, 'slide' => '', 'description' => '', 'thumbnail' => '', 'background' => 'ffffff00|*|', 'params' => '', 'ordering' => count($slides), 'generator_id' => 0)); array_push($slides, $slide2); } } $this->slider->_activeSlide = 0; $currentlyEditedSlide = $slides[0]; } if ($this->maximumSlideCount > 0) { array_splice($slides, $this->maximumSlideCount); $found = false; for ($i = 0; $i < count($slides); $i++) { if ($slides[$i] == $currentlyEditedSlide) { $found = true; break; } } if (!$found) { $this->slider->_activeSlide = count($slides) - 1; $slides[$this->slider->_activeSlide] = $currentlyEditedSlide; } } if ($currentlyEditedSlide) { $currentlyEditedSlide->setCurrentlyEdited(); } } } }
public function unPublish($id) { $this->db->update(array("published" => 0), array("id" => intval($id))); self::markChanged(N2Request::getInt('sliderid')); }
public function actionUnPublish() { if ($this->validateToken() && $this->validatePermission('smartslider_edit')) { if ($slideId = N2Request::getInt('slideid')) { $slidesModel = new N2SmartsliderSlidesModel(); $slidesModel->unpublish($slideId); $this->redirect(N2Request::getUrlReferrer()); } $this->redirect(array("sliders/index")); } }
public function actionConfigure($create = false) { if ($this->validatePermission('smartslider_config')) { $generatorModel = new N2SmartsliderGeneratorModel(); $group = N2Request::getVar('group'); $type = N2Request::getVar('type'); $info = $generatorModel->getGeneratorInfo($group, $type); $configuration = $info->getConfiguration(); if (N2Request::getInt('save')) { if ($this->validateToken()) { $configuration->addData(N2Request::getVar('generator')); $this->refresh(); } else { $this->refresh(); } } $this->addView("../../inline/_sidebar_settings", array(), "sidebar"); if ($create == false || !$configuration->wellConfigured()) { $this->addView("check_configuration", array('configuration' => $configuration)); $this->render(); } else { $this->redirect(array("generator/createsettings", array("sliderid" => N2Request::getInt('sliderid'), "group" => $group, "type" => $type)), 302, true); } } }
$actions = N2Html::tag('a', array("class" => 'n2-button n2-button-grey n2-button-medium' . ($orderBy == 'title' ? ' n2-active' : ''), "href" => $this->appType->router->createUrl(array('sliders/orderby', array('title' => $orderBy == 'title' ? $orderByDirection == 'ASC' ? 'DESC' : 'ASC' : 'ASC') + N2Form::tokenizeUrl()))), N2Html::tag('i', array('class' => 'n2-i n2-it n2-i-16' . ($orderBy == 'title' ? $orderByDirection == 'ASC' ? ' n2-i-sortalphabetic1' : ' n2-i-sortalphabetic2' : ' n2-i-sortalphabetic1')), '')); $actions .= N2Html::tag('a', array("class" => 'n2-button n2-button-grey n2-button-medium' . ($orderBy == 'time' ? ' n2-active' : ''), "href" => $this->appType->router->createUrl(array('sliders/orderby', array('time' => $orderBy == 'time' ? $orderByDirection == 'ASC' ? 'DESC' : 'ASC' : 'DESC') + N2Form::tokenizeUrl()))), N2Html::tag('i', array('class' => 'n2-i n2-it n2-i-16' . ($orderBy == 'time' ? $orderByDirection == 'ASC' ? ' n2-i-sortdate1' : ' n2-i-sortdate2' : ' n2-i-sortdate2')), '')); $dl[] = array('title' => '<span>' . n2_('SLIDER LIST') . '</span>', 'class' => 'n2-ss-slider-ordering n2-ss-slide2-list', 'tooltip' => null, 'actions' => $actions); $sliders = $slidersModel->getAll($orderBy, $orderByDirection); } else { // Show only one sliders's sidebar in this context $sliders = array($slidersModel->get($sliderid)); } if ($sliders) { foreach ($sliders as $slider) { $active = $sliderid == $slider['id']; $preUl = ''; if ($active) { $showSlideManager = true; ob_start(); $this->widget->init("buttonmenu", array("content" => N2Html::tag('div', array('class' => 'n2-button-menu'), N2Html::tag('div', array('class' => 'n2-button-menu-inner n2-border-radius'), N2Html::link(n2_('Add images'), '#', array('class' => 'n2-add-quick-image n2-h4')) . N2Html::link(n2_('Add video'), '#', array('class' => 'n2-add-quick-video n2-h4' . (N2Platform::$hasPosts ? '' : ' n2-separator'))) . (N2Platform::$hasPosts ? N2Html::link(n2_('Add post'), '#', array('class' => 'n2-add-quick-post n2-h4')) : '') . N2Html::link(n2_('Create empty slide'), $app->router->createUrl(array("slides/create", array("sliderid" => N2Request::getInt('sliderid'), "static" => 0))), array('class' => 'n2-h4 n2-separator')) . N2Html::link(n2_('Create static slide'), $app->router->createUrl(array("slides/create", array("sliderid" => N2Request::getInt('sliderid'), "static" => 1))), array('class' => 'n2-h4')) . N2Html::link(n2_('Create dynamic slides'), $app->router->createUrl(array("generator/create", array("sliderid" => N2Request::getInt('sliderid')))), array('class' => 'n2-h4')))))); $buttonMenu = ob_get_clean(); ob_start(); $this->widget->init("buttonmenu", array("content" => N2Html::tag('div', array('class' => 'n2-button-menu'), N2Html::tag('div', array('class' => 'n2-button-menu-inner n2-border-radius'), N2Html::link(n2_('Select all'), '#', array('class' => 'n2-h4')) . N2Html::link(n2_('Select none'), '#', array('class' => 'n2-h4')) . N2Html::link(n2_('Select published'), '#', array('class' => 'n2-h4')) . N2Html::link(n2_('Select unpublished'), '#', array('class' => 'n2-h4')))))); $selectButtonMenu = ob_get_clean(); ob_start(); $this->widget->init("buttonmenu", array("content" => N2Html::tag('div', array('class' => 'n2-button-menu'), N2Html::tag('div', array('class' => 'n2-button-menu-inner n2-border-radius'), N2Html::link(n2_('Duplicate'), '#', array('class' => 'n2-h4')) . N2Html::link(n2_('Publish'), '#', array('class' => 'n2-h4')) . N2Html::link(n2_('Unpublish'), '#', array('class' => 'n2-h4')))))); $actionButtonMenu = ob_get_clean(); ob_start(); ?> <div class="n2-sidebar-list-bg n2-ss-slides-control"> <?php echo N2Html::tag('div', array('class' => 'n2-button n2-button-big n2-button-grey n2-slides-bulk'), N2Html::tag('i', array('class' => 'n2-i n2-i-bulk n2-it'), '')); echo N2Html::tag('div', array('class' => 'n2-button n2-button-with-menu n2-button-big n2-button-green n2-slides-add'), N2Html::link(n2_('Add image slide'), '#', array('class' => 'n2-button-inner n2-add-quick-image n2-uc n2-h3')) . $buttonMenu); echo N2Html::tag('div', array('class' => 'n2-button n2-button-with-menu n2-button-big n2-button-grey n2-bulk-select'), N2Html::link(n2_('Select'), '#', array('class' => 'n2-button-inner n2-uc n2-h4')) . $selectButtonMenu); echo N2Html::tag('div', array('class' => 'n2-button n2-button-with-menu n2-button-big n2-button-grey n2-bulk-action'), N2Html::link(n2_('Delete'), '#', array('class' => 'n2-button-inner n2-uc n2-h4')) . $actionButtonMenu);
$generatorModel = new N2SmartsliderGeneratorModel(); $info = $generatorModel->getGeneratorInfo($group, $type); $this->widget->init('heading', array('title' => $info->group . ' - ' . $info->title)); $xml = $generatorModel->generatorSpecificForm($group, $type); $generatorModel->generatorCommonForm(); ?> <input name="generator[group]" value="<?php echo $group; ?> " type="hidden"/> <input name="generator[type]" value="<?php echo $type; ?> " type="hidden"/> <input name="slider-id" value="<?php echo N2Request::getInt('sliderid'); ?> " type="hidden"/> <input name="save" value="1" type="hidden"/> </form> <style> #generatorrecords { overflow: auto; width: 100%; } #generatorrecords table div { max-width: 200px; max-height: 200px; overflow: auto; }
public function actionQuickEdit() { $this->validateToken(); $this->validatePermission('smartslider_edit'); $sliderId = N2Request::getInt('sliderid'); $this->validateVariable($sliderId > 0, 'Slider'); $slidesModel = new N2SmartsliderSlidesModel(); $slides = $slidesModel->getAll($sliderId); $changed = json_decode(base64_decode(N2Request::getVar('changed')), true); if (!$changed || !is_array($changed)) { $changed = array(); } foreach ($slides as $slide) { if (!empty($changed[$slide['id']])) { $slidesModel->quickSlideUpdate($slide, $changed[$slide['id']]['name'], $changed[$slide['id']]['description'], $changed[$slide['id']]['link']); } } $sliderObj = new N2SmartSlider($sliderId, array()); $slides = $slidesModel->getAll($sliderId); $slidesObj = array(); foreach ($slides as $i => $slide) { if (!empty($changed[$slide['id']])) { $slidesObj[$i] = new N2SmartSliderSlide($sliderObj, $slide); $slidesObj[$i]->initGenerator(); } } $updateSlideBox = array(); /** @var N2SmartSliderSlide $slideObj */ foreach ($slidesObj as $slideObj) { $slideObj->fillSample(); $updateSlideBox[$slideObj->id] = array('title' => $slideObj->getTitle() . ($slideObj->hasGenerator() ? ' [' . $slideObj->getSlideStat() . ']' : ''), 'rawTitle' => $slideObj->getRawTitle(), 'rawDescription' => $slideObj->getRawDescription(), 'rawLink' => $slideObj->getRawLink()); } N2Message::success(sprintf(n2_('%d slide(s) modified!'), count($slidesObj))); $this->response->respond($updateSlideBox); }
<?php $this->widget->init('topbar', array("menu" => array(N2Html::tag('a', array('id' => 'n2-ss-preview', 'href' => '#', 'class' => 'n2-h3 n2-uc n2-has-underline n2-button n2-button-blue n2-button-big', 'style' => 'font-size: 12px;'), n2_('Preview'))), "actions" => array(N2Html::tag('a', array('href' => $this->appType->router->createUrl(array("slider/edit", array("sliderid" => N2Request::getInt('sliderid')))), 'class' => 'n2-button n2-button-red n2-button-big n2-h4 n2-b n2-uc'), n2_('Cancel')), N2Html::tag('a', array('href' => '#', 'class' => 'n2-button n2-button-green n2-button-big n2-h4 n2-b n2-uc', 'onclick' => 'return NextendForm.submit("#smartslider-form");'), n2_('Save'))))); ?> <form id="smartslider-form" action="" method="post"> <?php $params = new N2Data($generator['params'], true); $group = $generator['group']; $type = $generator['type']; $generatorModel = new N2SmartsliderGeneratorModel(); $info = $generatorModel->getGeneratorInfo($group, $type); $this->widget->init('heading', array('title' => $info->group . ' - ' . $info->title)); $xml = $generatorModel->generatorSpecificForm($group, $type, $params->toArray()); $slideParams = new N2Data($slide['params'], true); $params->set('record-slides', $slideParams->get('record-slides', 1)); $generatorModel->generatorEditForm($params->toArray()); ?> <input name="save" value="1" type="hidden"/> </form> <style> #generatorrecords { overflow: auto; width: 100%; } #generatorrecords table div { max-width: 200px; max-height: 200px; overflow: auto; }
public function actionImportFromServer() { if ($this->validatePermission('smartslider_edit')) { if (N2Request::getInt('save')) { if ($this->validateToken()) { $data = new N2Data(N2Request::getVar('slider')); $file = $data->get('import-file'); if (empty($file)) { N2Message::error(n2_('Please select a file!')); $this->refresh(); } else { $dir = N2Platform::getPublicDir(); if (N2Filesystem::fileexists($dir . '/' . $file)) { N2Loader::import('libraries.import', 'smartslider'); $import = new N2SmartSliderImport(); $sliderId = $import->import($dir . '/' . $file, $data->get('image-mode', 'clone'), $data->get('linked-visuals', 0)); if ($sliderId !== false) { if ($data->get('delete')) { @unlink($dir . '/' . $file); } N2Message::success(n2_('Slider imported.')); $this->redirect(array("slider/edit", array("sliderid" => $sliderId))); } else { N2Message::error(n2_('Import error!')); $this->refresh(); } } else { N2Message::error(n2_('The chosen file is missing!')); $this->refresh(); } } } else { $this->refresh(); } } $this->addView('importFromServer'); $this->render(); } }