Exemple #1
0
function msp_get_the_resized_attachment($attach_id = null, $width = null, $height = null, $crop = null, $quality = 100)
{
    $image_src = msp_get_the_resized_attachment_src($attach_id, $width, $height, $crop, $quality);
    return $image_src ? '<img src="' . $image_src . '" alt="" />' : '';
}
 /**
  * Filter the default gallery shortcode output.
  *
  * @see gallery_shortcode()
  *
  * @param string $output The gallery output. Default empty.
  * @param array  $attr   Attributes of the gallery shortcode.
  */
 public function gallery_output($output, $attr)
 {
     if (!(isset($attr['masterslider']) && ($attr['masterslider'] == 'yes' || $attr['masterslider'] == 'true'))) {
         return $output;
     }
     $post = get_post();
     // Sanitize orderby
     if (isset($attr['orderby'])) {
         $attr['orderby'] = sanitize_sql_orderby($attr['orderby']);
         if (!$attr['orderby']) {
             unset($attr['orderby']);
         }
     }
     $atts = shortcode_atts(array('order' => 'ASC', 'orderby' => 'menu_order ID', 'id' => $post ? $post->ID : 0, 'width' => '960', 'height' => '540', 'loop' => 'false', 'autoplay' => 'false', 'auto_height' => 'false', 'skin' => 'ms-skin-default', 'preload' => 2, 'include' => '', 'exclude' => '', 'link' => '', 'class' => '', 'target' => '_self', 'delay' => '3', 'caption' => 'true', 'thumbs_type' => 'thumbs', 'thumbs' => 'true', 'thumbs_align' => 'bottom', 'thumbs_width' => 140, 'thumbs_height' => 80, 'thumbs_space' => 2, 'thumbs_inset' => 'false', 'thumbs_autohide' => 'false', 'thumbs_margin' => 2), $attr, 'masterslider_gallery');
     // You can filter the following attrs by 'shortcode_atts_masterslider_gallery' filter hook (http://codex.wordpress.org/Function_Reference/shortcode_atts)
     $id = intval($atts['id']);
     if ('RAND' == $atts['order']) {
         $atts['orderby'] = 'none';
     }
     // Collect slider options in $slider_attrs array
     $slider_attrs = array('width' => $atts['width']);
     $slider_attrs['height'] = $atts['height'];
     $slider_attrs['class'] = 'master-slider-gallery ' . esc_attr($atts['class']);
     $slider_attrs['id'] = 0;
     $slider_attrs['loop'] = $atts['loop'];
     $slider_attrs['autoplay'] = $atts['autoplay'];
     $slider_attrs['slideinfo_margin'] = '0';
     $slider_attrs['slideinfo_height'] = '30';
     $slider_attrs['skin'] = $atts['skin'];
     $slider_attrs['preload'] = $atts['preload'];
     $slider_attrs['auto_height'] = $atts['auto_height'];
     // Whether thumbail is enables or not
     $has_thumb = 'true' === $atts['thumbs'];
     $has_tab = !$has_thumb && 'tabs' === $atts['thumbs_type'];
     $has_slideinfo = 'true' === $atts['caption'];
     // Add thumbnail options id enabled
     if ($has_thumb) {
         $slider_attrs['thumbs'] = $atts['thumbs'];
         $slider_attrs['thumbs_type'] = $atts['thumbs_type'];
         $slider_attrs['thumbs_align'] = $atts['thumbs_align'];
         $slider_attrs['thumbs_width'] = $atts['thumbs_width'];
         $slider_attrs['thumbs_height'] = $atts['thumbs_height'];
         $slider_attrs['thumbs_space'] = $atts['thumbs_space'];
         $slider_attrs['thumbs_inset'] = $atts['thumbs_inset'];
         $slider_attrs['thumbs_autohide'] = $atts['thumbs_autohide'];
         $slider_attrs['thumbs_margin'] = $atts['thumbs_margin'];
         if ('bottom' == $slider_attrs['thumbs_align']) {
             $slider_attrs['slideinfo_margin'] = '80';
         }
     } elseif ($has_tab) {
         $slider_attrs['thumbs_type'] = 'tabs';
     }
     if ($has_slideinfo) {
         $slider_attrs['slideinfo'] = 'true';
         $slider_attrs['slideinfo_inset'] = 'true';
         $slider_attrs['slideinfo_height'] = '30';
     }
     // get attachments
     if (!empty($atts['include'])) {
         $_attachments = get_posts(array('include' => $atts['include'], 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby']));
         $attachments = array();
         foreach ($_attachments as $key => $val) {
             $attachments[$val->ID] = $_attachments[$key];
         }
     } elseif (!empty($atts['exclude'])) {
         $attachments = get_children(array('post_parent' => $id, 'exclude' => $atts['exclude'], 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby']));
     } else {
         $attachments = get_children(array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby']));
     }
     // skip if no attachments found
     if (empty($attachments)) {
         return '';
     }
     $slides_shortcode = '';
     foreach ($attachments as $id => $attachment) {
         $attrs = '';
         $img_src = msp_get_the_resized_attachment_src($id, 1400);
         $attrs .= sprintf('%s="%s" ', 'src', $img_src);
         $attrs .= sprintf('%s="%s" ', 'src_full', $img_src);
         if ('file' == $atts['link']) {
             $link = $img_src;
         } elseif ('none' == $atts['link']) {
             $link = '';
         } else {
             $link = get_permalink($id);
         }
         if (!empty($link)) {
             $attrs .= sprintf('%s="%s" ', 'link', $link);
         }
         $info = '';
         if (empty($attachment->post_excerpt)) {
             $attrs .= sprintf('%s="%s" ', 'alt', $attachment->post_excerpt);
         } else {
             $attrs .= sprintf('%s="%s" ', 'alt', $attachment->post_title);
         }
         if ($has_slideinfo) {
             $caption = $attachment->post_excerpt ? $attachment->post_excerpt : $attachment->post_title;
             $info = sprintf('[ms_slide_info]%s[/ms_slide_info]%s', $caption, "\n");
         }
         $attrs .= sprintf('%s="%s" ', 'target', $atts['target']);
         $attrs .= sprintf('%s="%s" ', 'delay', $atts['delay']);
         if ($has_thumb) {
             $thumb = msp_get_the_resized_image_src($img_src, $atts['thumbs_width'], $atts['thumbs_height'], true);
             $thumb = msp_get_the_relative_media_url($thumb);
             $attrs .= sprintf('%s="%s" ', 'thumb', $thumb);
         } elseif ($has_tab) {
             $tab = '<div class=&quot;ms-thumb-alt&quot;>' . $attachment->post_title . '</div>';
             $attrs .= sprintf('%s="%s" ', 'tab', $tab);
         }
         $slides_shortcode .= sprintf('[ms_slide %1$s]%3$s%2$s[/ms_slide]%3$s', $attrs, $info, "\n");
     }
     /**
      * Filter slider default attributes. To find full list of slider options, take a look at "msp_masterslider_wrapper_shortcode"
      * function in /includes/msp-shortcodes.php file
      * 
      * @var array      List of slider options with values
      */
     $slider_attrs = apply_filters('masterslider_gallery_slider_attrs', $slider_attrs);
     // Convert attrs to string
     $slides_shortcode_attrs = '';
     foreach ($slider_attrs as $slider_attr => $slider_attr_value) {
         $slides_shortcode_attrs .= sprintf('%s="%s" ', $slider_attr, $slider_attr_value);
     }
     // Create slider shortcode
     $gallery_slider_shortcode = sprintf('[ms_slider %1$s]%2$s%3$s[/ms_slider]', $slides_shortcode_attrs, "\n", $slides_shortcode);
     return do_shortcode($gallery_slider_shortcode);
 }