/**
  * Returns the HTML for the public slide
  * 
  * @return string slide html
  */
 protected function get_public_slide()
 {
     // get the image url (and handle cropping)
     $imageHelper = new MetaSliderImageHelper($this->slide->ID, $this->settings['width'], $this->settings['height'], isset($this->settings['smartCrop']) ? $this->settings['smartCrop'] : 'false');
     $thumb = $imageHelper->get_image_url();
     // store the slide details
     $slide = array('id' => $this->slide->ID, 'thumb' => $thumb, 'url' => __(get_post_meta($this->slide->ID, 'ml-slider_url', true)), 'alt' => __(get_post_meta($this->slide->ID, '_wp_attachment_image_alt', true)), 'target' => get_post_meta($this->slide->ID, 'ml-slider_new_window', true) ? '_blank' : '_self', 'caption' => __(html_entity_decode($this->slide->post_excerpt, ENT_NOQUOTES, 'UTF-8')), 'caption_raw' => __($this->slide->post_excerpt), 'class' => "slider-{$this->slider->ID} slide-{$this->slide->ID}", 'rel' => "", 'data-thumb' => "");
     // fix slide URLs
     if (strpos($slide['url'], 'www.') === 0) {
         $slide['url'] = 'http://' . $slide['url'];
     }
     $slide = apply_filters('metaslider_image_slide_attributes', $slide, $this->slider->ID, $this->settings);
     // return the slide HTML
     switch ($this->settings['type']) {
         case "coin":
             return $this->get_coin_slider_markup($slide);
         case "flex":
             return $this->get_flex_slider_markup($slide);
         case "nivo":
             return $this->get_nivo_slider_markup($slide);
         case "responsive":
             return $this->get_responsive_slides_markup($slide);
         default:
             return $this->get_flex_slider_markup($slide);
     }
 }
Exemple #2
0
 /**
  * Get the thumbnail for the slide
  */
 public function get_thumb()
 {
     $imageHelper = new MetaSliderImageHelper($this->slide->ID, 150, 150, 'false');
     return $imageHelper->get_image_url();
 }
Exemple #3
0
 /**
  * Loop through the posts and build an array of slide HTML.
  *
  * @return array
  */
 protected function get_public_slide()
 {
     $slider_settings = get_post_meta($this->slider->ID, 'ml-slider_settings', true);
     $the_query = new WP_Query($this->get_post_args());
     $slides = array();
     while ($the_query->have_posts()) {
         $the_query->the_post();
         $id = get_post_thumbnail_id($the_query->post->ID);
         if ($override_id = get_post_meta($the_query->post->ID, 'metaslider_post_feed_image', true)) {
             if (wp_attachment_is_image($override_id)) {
                 $id = $override_id;
             }
         }
         $thumb = false;
         if ($id > 0) {
             // initialise the image helper
             $imageHelper = new MetaSliderImageHelper($id, $slider_settings['width'], $slider_settings['height'], isset($slider_settings['smartCrop']) ? $slider_settings['smartCrop'] : 'false');
             $thumb = $imageHelper->get_image_url();
         }
         // go on to the next slide if we encounter an error
         if (is_wp_error($thumb) || !$thumb) {
             continue;
         }
         $selected_url_type = isset($this->slide_settings['link_to']) ? $this->slide_settings['link_to'] : 'slug';
         switch ($selected_url_type) {
             case "slug":
                 $url = get_permalink();
                 break;
             case "disabled":
                 $url = "";
                 break;
             default:
                 $url = get_post_meta($the_query->post->ID, $selected_url_type, true);
         }
         $caption = $this->render_custom_template();
         $caption = apply_filters("metaslider_post_feed_caption", $caption, $this->slider->ID, $slider_settings, $the_query->post);
         $caption = do_shortcode($caption);
         $image_id = get_post_thumbnail_id($the_query->post->ID);
         $slide = array('id' => $image_id, 'thumb' => $thumb, 'width' => $this->settings['width'], 'height' => $this->settings['height'], 'class' => "slider-{$this->slider->ID} slide-{$this->slide->ID} post-{$the_query->post->ID} ms-postfeed", 'url' => $url, 'title' => "", 'alt' => get_post_meta(get_post_thumbnail_id($the_query->post->ID), "_wp_attachment_image_alt", true), 'target' => "_self", 'caption' => html_entity_decode($caption, ENT_NOQUOTES, 'UTF-8'), 'caption_raw' => $caption, 'excerpt' => get_the_excerpt(), 'rel' => "");
         $slide = apply_filters('metaslider_post_feed_slide_attributes', $slide, $this->slider->ID, $slider_settings);
         switch ($slider_settings['type']) {
             case "coin":
                 $slides[] = $this->get_coin_slider_markup($slide, $the_query->post->ID);
                 break;
             case "flex":
                 $slides[] = $this->get_flex_slider_markup($slide, $the_query->post->ID);
                 break;
             case "nivo":
                 $slides[] = $this->get_nivo_slider_markup($slide, $the_query->post->ID);
                 break;
             case "responsive":
                 $slides[] = $this->get_responsive_slides_markup($slide, $the_query->post->ID);
                 break;
         }
     }
     wp_reset_query();
     return $slides;
 }
Exemple #4
0
 /**
  * Add a 'data-thumb' attribute to the nivo slider <img>
  *
  * @param array   $attributes - image attributes
  * @param integer $slide - slide data
  * @param array   $slider_id - slideshow ID
  *
  * @return array
  */
 public function add_nivo_data_thumb_attribute($attributes, $slide, $slider_id)
 {
     $settings = get_post_meta($slider_id, 'ml-slider_settings', true);
     if ($settings['navigation'] === 'thumbs') {
         // generate thumbnail
         $imageHelper = new MetaSliderImageHelper($slide['id'], $settings['thumb_width'], $settings['thumb_height'], 'false');
         $attributes['data-thumb'] = $imageHelper->get_image_url();
         // for external slides, just use the external url
         $type = get_post_meta($slide['id'], 'ml-slider_type', true);
         if ($type == 'external') {
             $attributes['data-thumb'] = get_post_meta($slide_id, 'ml-slider_extimgurl', true);
         }
     }
     return $attributes;
 }
Exemple #5
0
 /**
  * Return the background image markup for the slide
  */
 private function slide_background()
 {
     $imageHelper = new MetaSliderImageHelper($this->slide->ID, $this->settings['width'], $this->settings['height'], isset($this->settings['smartCrop']) ? $this->settings['smartCrop'] : 'false');
     $url = $imageHelper->get_image_url();
     $slide = array('src' => $url, 'alt' => get_post_meta($this->slide->ID, '_wp_attachment_image_alt', true), 'title' => get_post_meta($this->slide->ID, 'ml-slider_title', true), 'class' => 'msDefaultImage', 'height' => $this->settings['height'], 'width' => $this->settings['width']);
     $return = $this->build_image_tag($slide);
     // video backgrounds
     $webm = esc_attr(get_post_meta($this->slide->ID, 'ml-slider_webm', true));
     $mp4 = esc_attr(get_post_meta($this->slide->ID, 'ml-slider_mp4', true));
     if (strlen($webm) && strlen($mp4)) {
         $return = $this->build_video_tag($webm, $mp4, $url) . $return;
     }
     return $return;
 }