/** * 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); } }
/** * Get the thumbnail for the slide */ public function get_thumb() { $imageHelper = new MetaSliderImageHelper($this->slide->ID, 150, 150, 'false'); return $imageHelper->get_image_url(); }
/** * 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; }
/** * 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; }
/** * 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; }