Example #1
0
 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 setSlidesParams()
 {
     $this->attributes['data-variables'] = json_encode($this->variables);
     parent::setSlidesParams();
 }
Example #3
0
 public function setNextCacheRefresh($time)
 {
     $this->slide->setNextCacheRefresh($time);
 }
Example #4
0
 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;
     }
 }