public function actionQuickPost() { $this->validateToken(); $this->validatePermission('smartslider_edit'); $sliderId = N2Request::getInt('sliderid'); $this->validateVariable($sliderId > 0, 'Slider'); $slidesModel = new N2SmartsliderSlidesModel(); $post = N2Request::getVar('post'); $this->validateVariable($post, 'Post'); $newSlideId = $slidesModel->createQuickPost($post, $sliderId); $slide = $slidesModel->get($newSlideId); $this->validateDatabase($slide); $sliderObj = new N2SmartSlider($slide['slider'], array()); $slideObj = new N2SmartSliderSlide($sliderObj, $slide); $slideObj->initGenerator(); $slideObj->fillSample(); $this->addView('slidebox', array('slider' => $sliderObj, 'slide' => $slideObj)); ob_start(); $this->render(); $box = ob_get_clean(); N2Message::success(n2_('Slide created.')); $this->response->respond($box); }
public function makeStatic($slideId) { $slideData = $this->get($slideId); if ($slideData['generator_id'] > 0) { $sliderObj = new N2SmartSlider($slideData['slider'], array()); $rootSlide = new N2SmartSliderSlide($sliderObj, $slideData); $rootSlide->initGenerator(array()); $slides = $rootSlide->expandSlide(); // Shift the afterwards slides with the slides count $this->db->query("UPDATE {$this->db->tableName} SET ordering = ordering + " . count($slides) . " WHERE slider = :sliderid AND ordering > :ordering", array(":sliderid" => intval($slideData['slider']), ":ordering" => intval($slideData['ordering'])), ''); $firstUsed = false; $i = 1; foreach ($slides as $slide) { $row = $slide->getRow(); // set the proper ordering $row['ordering'] += $i; if ($row['first']) { // Make sure to mark only one slide as start slide if ($firstUsed) { $row['first'] = 0; } else { $firstUsed = true; } } $this->db->insert($row); $i++; } $this->db->query("UPDATE {$this->db->tableName} SET published = 0, first = 0 WHERE id = :id", array(":id" => $slideData['id']), ''); return count($slides); } else { return false; } }