Example #1
0
 /**
  * 
  * init slide by post data
  */
 public function initByPostData($postData, RevSliderSlide $slideTemplate, $sliderID)
 {
     $this->postData = $postData;
     $postID = $postData["ID"];
     $slideTemplateID = get_post_meta($postID, 'slide_template', true);
     if ($slideTemplateID == '') {
         $slideTemplateID = 'default';
     }
     if (!empty($slideTemplateID) && is_numeric($slideTemplateID)) {
         //init by local template, if fail, init by global (slider) template
         try {
             $slideTemplateLocal = new RevSliderSlide();
             $slideTemplateLocal->initByID($slideTemplateID);
             $this->initBySlide($slideTemplateLocal);
         } catch (Exception $e) {
             $this->initBySlide($slideTemplate);
         }
     } else {
         //init by global template
         $this->initBySlide($slideTemplate);
     }
     //set some slide params
     $this->id = $postID;
     $this->params["title"] = RevSliderFunctions::getVal($postData, "post_title");
     if (isset($this->params['enable_link']) && $this->params['enable_link'] == "true" && isset($this->params['link_type']) && $this->params['link_type'] == "regular") {
         $link = get_permalink($postID);
         $this->params["link"] = str_replace(array("%link%", '{{link}}'), $link, $this->params["link"]);
         $this->params["link"] = str_replace('-', '_REVSLIDER_', $this->params["link"]);
         //process meta tags:
         $arrMatches = array();
         preg_match('/%meta:\\w+%/', $this->params["link"], $arrMatches);
         foreach ($arrMatches as $match) {
             $meta = str_replace("%meta:", "", $match);
             $meta = str_replace("%", "", $meta);
             $meta = str_replace('_REVSLIDER_', '-', $meta);
             $metaValue = get_post_meta($postID, $meta, true);
             $this->params["link"] = str_replace($match, $metaValue, $this->params["link"]);
         }
         $arrMatches = array();
         preg_match('/{{meta:\\w+}}/', $this->params["link"], $arrMatches);
         foreach ($arrMatches as $match) {
             $meta = str_replace("{{meta:", "", $match);
             $meta = str_replace("}}", "", $meta);
             $meta = str_replace('_REVSLIDER_', '-', $meta);
             $metaValue = get_post_meta($postID, $meta, true);
             $this->params["link"] = str_replace($match, $metaValue, $this->params["link"]);
         }
         $this->params["link"] = str_replace('_REVSLIDER_', '-', $this->params["link"]);
     }
     $status = $postData["post_status"];
     if ($status == "publish") {
         $this->params["state"] = "published";
     } else {
         $this->params["state"] = "unpublished";
     }
     if ($this->params["background_type"] == 'image') {
         //if image is choosen, use featured image as background
         //set image
         $thumbID = RevSliderFunctionsWP::getPostThumbID($postID);
         if (!empty($thumbID)) {
             $this->setImageByImageID($thumbID);
         }
     }
     //replace placeholders in layers:
     $this->setLayersByPostData($postData, $sliderID);
 }