public function actionEdit() { if ($this->validatePermission('smartslider_edit')) { $generatorId = N2Request::getInt('generator_id'); $generatorModel = new N2SmartsliderGeneratorModel(); $generator = $generatorModel->get($generatorId); if ($this->validateDatabase($generator)) { $slidesModel = new N2SmartsliderSlidesModel(); $slides = $slidesModel->getAll(-1, 'OR generator_id = ' . $generator['id'] . ''); if (count($slides) > 0) { $slide = $slides[0]; if (N2Request::getInt('save')) { $request = new N2Data(N2Request::getVar('generator')); $slideParams = new N2Data($slide['params'], true); $slideParams->set('record-slides', $request->get('record-slides', 1)); $slidesModel->updateParams($slide['id'], $slideParams->toArray()); $request->un_set('record-slides'); $generatorModel->save($generatorId, $request->toArray()); N2SmartsliderSlidesModel::markChanged($slide['slider']); N2Message::success(n2_('Generator updated and cache cleared.')); $this->redirect(array("generator/edit", array("generator_id" => $generatorId)), 302, true); } N2Request::set('sliderid', $slide['slider']); $this->addView("../../inline/_sliders", array("appObj" => $this), "sidebar"); $this->addView("edit", array("generatorModel" => $generatorModel, "generator" => $generator, "slide" => $slide)); $this->render(); } else { $this->redirect(array("sliders/index"), 302, true); } } else { $this->redirect(array("sliders/index"), 302, true); } } }
/** * @param $slide N2SmartSliderSlide * @param $slider * @param $extend */ public function __construct($slide, $slider, $extend) { N2Loader::import("libraries.slider.cache.generator", "smartslider"); N2Loader::import("models.generator", "smartslider"); $this->slide = $slide; $this->slider = $slider; $this->generatorModel = new N2SmartsliderGeneratorModel(); $this->currentGenerator = $this->generatorModel->get($this->slide->generator_id); $this->currentGenerator['params'] = new N2Data($this->currentGenerator['params'], true); if (isset($extend[$this->slide->generator_id])) { $extend = new N2Data($extend[$this->slide->generator_id]); $slide->parameters->set('record-slides', $extend->get('record-slides', 1)); $extend->un_set('record-slides'); $this->currentGenerator['params']->loadArray($extend->toArray()); } }
<?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; }