function msp_get_slider_background_css($slider_id)
{
    $slider_data = get_masterslider_parsed_data($slider_id);
    $the_slider_bg = empty($slider_data['setting']['bg_color']) ? '' : $slider_data['setting']['bg_color'];
    $the_slider_bg .= empty($slider_data['setting']['bg_image']) ? '' : sprintf(' url( %s ) repeat top left', msp_get_the_absolute_media_url($slider_data['setting']['bg_image']));
    $the_slider_bg = empty($the_slider_bg) ? '' : 'background:' . $the_slider_bg . ";";
    return empty($the_slider_bg) ? '' : sprintf(".ms-parent-id-%d > .master-slider{ %s }", $slider_id, $the_slider_bg);
}
Example #2
0
 public function parse_slide($slide = array())
 {
     // make sure $slide is not serialized
     $slide = maybe_unserialize($slide);
     if (empty($slide)) {
         return $slide;
     }
     // get slider setting and controls
     $slider_setting = $this->get_slider_setting();
     // get slide onfo if is set (usage: for tab content if is set)
     $info = isset($slide['info']) ? $slide['info'] : '';
     if (isset($slide['bg'])) {
         $slide_src = msp_get_the_absolute_media_url($slide['bg']);
         // generate thumb for master slider panel
         msp_get_the_resized_image_src($slide_src, 150, 150, true);
     }
     $thumb = '';
     // add thumb just if thumblist is added to controls list
     // also always add thumbnail if slider template is gallery
     if ('true' == $slider_setting['thumbs'] && 'thumbs' == $slider_setting['thumbs_type'] || 'image-gallery' == $slider_setting['template']) {
         if (isset($slide['thumb']) && !empty($slide['thumb'])) {
             $thumb = $slide['thumb'];
             $thumb = msp_get_the_relative_media_url($thumb);
         } elseif (isset($slide['bg'])) {
             // set custom thumb size if slider template is gallery
             if ('image-gallery' == $slider_setting['template']) {
                 $thumb = msp_get_the_resized_image_src($slide_src, 175, 140, true);
             } else {
                 $thumb = msp_get_the_resized_image_src($slide_src, $slider_setting['thumbs_width'], $slider_setting['thumbs_height'], true);
             }
             $thumb = msp_get_the_relative_media_url($thumb);
         } else {
             $thumb = '';
         }
     }
     $slides = array('slide_order' => isset($slide['order']) ? (int) $slide['order'] : 0, 'css_class' => isset($slide['cssClass']) ? (string) $slide['cssClass'] : '', 'css_id' => isset($slide['cssId']) ? (string) $slide['cssId'] : '', 'ishide' => $this->is_key_true($slide, 'ishide', 'false'), 'src' => isset($slide['bg']) ? esc_attr(msp_get_the_relative_media_url($slide['bg'])) : '', 'src_full' => isset($slide['bg']) ? esc_attr(msp_get_the_relative_media_url($slide['bg'])) : '', 'title' => '', 'alt' => isset($slide['bgAlt']) ? esc_attr($slide['bgAlt']) : '', 'link' => isset($slide['link']) ? esc_attr($slide['link']) : '', 'rel' => isset($slide['rel']) ? (string) $slide['rel'] : '', 'target' => isset($slide['linkTarget']) ? (string) $slide['linkTarget'] : '', 'video' => isset($slide['video']) ? esc_attr($slide['video']) : '', 'auto_play_video' => $this->is_key_true($slide, 'autoplayVideo', 'false'), 'info' => wp_slash($info), 'mp4' => isset($slide['bgv_mp4']) ? esc_attr($slide['bgv_mp4']) : '', 'webm' => isset($slide['bgv_webm']) ? esc_attr($slide['bgv_webm']) : '', 'ogg' => isset($slide['bgv_ogg']) ? esc_attr($slide['bgv_ogg']) : '', 'autopause' => $this->is_key_true($slide, 'bgv_autopause', 'false'), 'mute' => $this->is_key_true($slide, 'bgv_mute', 'true'), 'loop' => $this->is_key_true($slide, 'bgv_loop', 'true'), 'vbgalign' => isset($slide['bgv_fillmode']) ? (string) $slide['bgv_fillmode'] : 'fill', 'thumb' => $thumb, 'tab' => 'true' == $slider_setting['thumbs'] && 'tabs' == $slider_setting['thumbs_type'] ? str_replace('"', '&quote;', $info) : '', 'delay' => isset($slide['duration']) ? (string) $slide['duration'] : '', 'bgalign' => isset($slide['fillMode']) ? (string) $slide['fillMode'] : 'fill', 'bgcolor' => isset($slide['bgColor']) ? (string) $slide['bgColor'] : '', 'pattern' => isset($slide['pattern']) ? (string) $slide['pattern'] : '', 'tintcolor' => isset($slide['colorOverlay']) ? (string) $slide['colorOverlay'] : '', 'layer_ids' => isset($slide['layer_ids']) && !empty($slide['layer_ids']) ? (array) $slide['layer_ids'] : array(), 'layers' => array());
     // get all layers in slider
     $all_layers = $this->get_layers();
     // store slide's layers
     $current_layers = array();
     // select the layers that belongs to this slide
     foreach ($slides['layer_ids'] as $layer_id) {
         if (isset($all_layers[$layer_id])) {
             $current_layers[] = $all_layers[$layer_id];
         }
     }
     // stores layers by layer order
     $layers_by_order = array();
     // collect layers by layer order
     foreach ($current_layers as $layer) {
         $layers_by_order[$layer['order']] = $layer;
     }
     // sort layers by layer order
     ksort($layers_by_order);
     // replace real layers data with layers id
     $slides['layers'] = $layers_by_order;
     return $slides;
 }
Example #3
0
 public function parse_slide($slide = array())
 {
     // make sure $slide is not serialized
     $slide = maybe_unserialize($slide);
     if (empty($slide)) {
         return $slide;
     }
     // get slider setting and controls
     $slider_setting = $this->get_slider_setting();
     // get slide onfo if is set (usage: for tab content if is set)
     $info = isset($slide['info']) ? $slide['info'] : '';
     if (isset($slide['bg'])) {
         $slide_src = msp_get_the_absolute_media_url($slide['bg']);
         // generate thumb for master slider panel
         msp_get_the_resized_image_src($slide_src, 150, 150, true);
     }
     // stores a URL for thumbnail in thumbnail list
     $thumb = '';
     // add thumb just if thumblist is added to controls list
     // also always add thumbnail if slider template is gallery
     if ('true' == $slider_setting['thumbs'] && 'thumbs' == $slider_setting['thumbs_type'] || 'image-gallery' == $slider_setting['template']) {
         if (isset($slide['thumbOrginal']) && !empty($slide['thumbOrginal'])) {
             $thumb = $slide['thumbOrginal'];
             $thumb = msp_get_the_relative_media_url($thumb);
         } elseif (isset($slide['bg'])) {
             // set custom thumb size if slider template is gallery
             if ('image-gallery' == $slider_setting['template']) {
                 $thumb = msp_get_the_resized_image_src($slide_src, 175, 140, true);
             } else {
                 $thumb = msp_get_the_resized_image_src($slide_src, $slider_setting['thumbs_width'], $slider_setting['thumbs_height'], true);
             }
             $thumb = msp_get_the_relative_media_url($thumb);
         }
     }
     // stores a URL for thumbnail in tab
     $tab_thumb = '';
     // get thumb for tab if thumblist is added to controls list
     if ('true' == $slider_setting['thumbs'] && 'tabs' == $slider_setting['thumbs_type'] && 'true' == $slider_setting['thumbs_in_tab']) {
         if (isset($slide['thumbOrginal']) && !empty($slide['thumbOrginal'])) {
             $tab_thumb = $slide['thumbOrginal'];
             $tab_thumb = msp_get_the_relative_media_url($tab_thumb);
         } elseif (isset($slide['bg'])) {
             // generate a square thumb for tab
             $tab_thumb = msp_get_the_resized_image_src($slide_src, $slider_setting['thumbs_height'], $slider_setting['thumbs_height'], true);
             $tab_thumb = msp_get_the_relative_media_url($tab_thumb);
         }
     }
     $slides = array('slide_order' => isset($slide['order']) ? (int) $slide['order'] : 0, 'css_class' => isset($slide['cssClass']) ? (string) $slide['cssClass'] : '', 'css_id' => isset($slide['cssId']) ? (string) $slide['cssId'] : '', 'ishide' => $this->is_key_true($slide, 'ishide', 'false'), 'src' => isset($slide['bg']) ? esc_attr(msp_get_the_relative_media_url($slide['bg'])) : '', 'src_full' => isset($slide['bg']) ? esc_attr(msp_get_the_relative_media_url($slide['bg'])) : '', 'title' => '', 'alt' => isset($slide['bgAlt']) ? esc_attr($slide['bgAlt']) : '', 'link' => isset($slide['link']) ? esc_attr($slide['link']) : '', 'target' => isset($slide['linkTarget']) ? (string) $slide['linkTarget'] : '', 'link_title' => isset($slide['linkTitle']) ? (string) $slide['linkTitle'] : '', 'link_class' => isset($slide['linkClass']) ? (string) $slide['linkClass'] : '', 'link_id' => isset($slide['linkId']) ? (string) $slide['linkId'] : '', 'link_rel' => isset($slide['linkRel']) ? (string) $slide['linkRel'] : '', 'video' => isset($slide['video']) ? esc_attr($slide['video']) : '', 'auto_play_video' => $this->is_key_true($slide, 'autoplayVideo', 'false'), 'info' => wp_slash(do_shortcode($info)), 'mp4' => isset($slide['bgv_mp4']) ? esc_attr($slide['bgv_mp4']) : '', 'webm' => isset($slide['bgv_webm']) ? esc_attr($slide['bgv_webm']) : '', 'ogg' => isset($slide['bgv_ogg']) ? esc_attr($slide['bgv_ogg']) : '', 'autopause' => $this->is_key_true($slide, 'bgv_autopause', 'false'), 'mute' => $this->is_key_true($slide, 'bgv_mute', 'true'), 'loop' => $this->is_key_true($slide, 'bgv_loop', 'true'), 'vbgalign' => isset($slide['bgv_fillmode']) ? (string) $slide['bgv_fillmode'] : 'fill', 'thumb' => $thumb, 'tab' => 'true' == $slider_setting['thumbs'] && 'tabs' == $slider_setting['thumbs_type'] ? str_replace('"', '&quote;', $info) : '', 'tab_thumb' => $tab_thumb, 'delay' => isset($slide['duration']) ? (string) $slide['duration'] : '', 'bgalign' => isset($slide['fillMode']) ? (string) $slide['fillMode'] : 'fill', 'bgcolor' => isset($slide['bgColor']) ? (string) $slide['bgColor'] : '', 'pattern' => isset($slide['pattern']) ? (string) $slide['pattern'] : '', 'tintcolor' => isset($slide['colorOverlay']) ? (string) $slide['colorOverlay'] : '');
     return $slides;
 }
Example #4
0
function msp_masterslider_layer_shortcode($atts, $content = null)
{
    // merge input and default attrs
    $merged = shortcode_atts(array('src' => '', 'src_blank' => MSWP_BLANK_IMG, 'widthlimit' => '-1', 'type' => 'text', 'resize' => 'true', 'css_class' => '', 'btn_class' => 'ms-default-btn', 'css_id' => '', 'style_id' => '', 'action' => 'next', 'use_action' => 'false', 'to_slide' => 1, 'action_scroll_duration' => 2, 'offsetx' => '', 'offsety' => '', 'origin' => 'tl', 'fixed' => 'false', 'show_effect' => 'fade', 'show_duration' => '1000', 'show_delay' => '0', 'show_ease' => 'linear', 'style' => '', 'use_hide' => 'false', 'hide_effect' => '', 'hide_duration' => '1000', 'hide_delay' => '1000', 'hide_ease' => '', 'title' => '', 'tooltip_align' => 'top', 'tooltip_stay_hover' => 'true', 'tooltip_width' => '', 'parallax' => '', 'rel' => '', 'alt' => '', 'link' => '', 'target' => '_blank', 'video' => '', 'auto_play_video' => 'false', 'width' => '', 'height' => ''), $atts, 'masterslider_layer');
    extract($merged);
    $wrapper_class = trim('ms-layer ' . $css_class . ' ' . $style_id);
    $id_attr = empty($css_id) ? '' : 'id="' . $css_id . '"';
    // position attrs
    $data_offset_x = empty($offsetx) ? 'data-offset-x="0"' : 'data-offset-x="' . rtrim($offsetx, 'px') . '"';
    $data_offset_y = empty($offsety) ? 'data-offset-y="0"' : 'data-offset-y="' . rtrim($offsety, 'px') . '"';
    $data_origin = empty($origin) ? 'data-origin="tl"' : 'data-origin="' . $origin . '"';
    // custom style + size styles
    $style_size = $style;
    // dont't add width and height style for hotspot
    if ('hotspot' !== $type) {
        $style_size .= empty($width) ? '' : 'width:' . rtrim($width, 'px') . 'px;';
        $style_size .= empty($height) ? '' : 'height:' . rtrim($height, 'px') . 'px;';
    }
    $show_duration = !is_numeric($show_duration) || empty($show_duration) ? 1000 : (int) $show_duration;
    $show_delay = !is_numeric($show_delay) || empty($show_delay) ? 0 : (int) $show_delay;
    $hide_duration = !is_numeric($hide_duration) || empty($hide_duration) ? 1000 : (int) $hide_duration;
    $hide_delay = !is_numeric($hide_delay) || empty($hide_delay) ? 1000 : (int) $hide_delay;
    $hide_start_time = $show_duration + $show_delay + $hide_delay;
    // create widthlimit attr if it's not default value
    $data_widthlimit = (int) $widthlimit < 1 ? '' : 'data-widthlimit="' . (int) $widthlimit . '"';
    // create type attr if it's not default value
    $data_type = 'text' === $type ? '' : 'data-type="' . $type . '"';
    // create resize attr if it's not default value
    $data_resize = 'true' == $resize || 'yes' == $resize ? '' : 'data-resize="' . $resize . '"';
    // create show_effect attr if it's not default value
    $data_show_effect = 'fade' === $show_effect ? '' : 'data-effect="' . $show_effect . '"';
    // create show_duration attr if it's not default value
    $data_show_duration = 1000 === (int) $show_duration ? '' : 'data-duration="' . (int) $show_duration . '"';
    // create show_delay attr if it's not default value
    $data_show_delay = 0 === (int) $show_delay ? '' : 'data-delay="' . (int) $show_delay . '"';
    // create show_ease attr if it's not default value
    $data_show_ease = 'data-ease="' . $show_ease . '"';
    // create parallax attr if it's not default value
    $data_parallax = empty($parallax) ? '' : 'data-parallax="' . $parallax . '"';
    // create fixed attr if it's not default value
    $data_fixed = 'true' === $fixed ? 'data-fixed="true"' : '';
    if ('true' != $use_hide) {
        $data_hide_effect = $data_hide_duration = $data_hide_time = $data_hide_ease = $data_hide_delay = '';
    } else {
        // create hide_effect attr if it's not default value
        $data_hide_effect = empty($hide_effect) ? '' : 'data-hide-effect="' . $hide_effect . '"';
        // create hide_duration attr if it's not default value
        $data_hide_duration = empty($hide_duration) ? '' : 'data-hide-duration="' . $hide_duration . '"';
        // create hide_time attr if it's not default value
        $data_hide_time = empty($hide_time) ? '' : 'data-hide-time="' . $hide_time . '"';
        // create hide_ease attr if it's not default value
        $data_hide_ease = empty($hide_ease) ? '' : 'data-hide-ease="' . $hide_ease . '"';
        // create data-hidedelay ease attr if it's not default value
        $data_hide_delay = 'data-hide-time="' . $hide_start_time . '"';
    }
    $rel_attr = empty($rel) ? '' : 'rel="' . $rel . '"';
    $rel_attr = apply_filters('masterslider_layer_shortcode_attr_rel', $rel_attr, $rel);
    $link = apply_filters('masterslider_layer_shortcode_attr_link', $link);
    // create data-link attr if it's not default value
    $data_link = empty($link) ? '' : 'data-link="' . $link . '"';
    $data_action = '';
    // create data-action attr if it's enabled and defined
    if ('true' == $use_action) {
        if ('gotoSlide' == $action) {
            $data_action = 'data-action="' . $action . '(' . ((int) $to_slide - 1) . ')"';
        } elseif ('scrollDuration' == $action) {
            $data_action = 'data-action="' . $action . '(' . (double) $action_scroll_duration . ')"';
        } else {
            $data_action = 'data-action="' . $action . '"';
        }
        $data_link = '';
        $link = '#';
    }
    // convert relative image link to absolute
    $src = !empty($src) ? msp_get_the_absolute_media_url($src) : $src;
    // add data align if layer type is hotspot
    $data_align = 'hotspot' == $type ? 'data-align="' . $tooltip_align . '"' : '';
    $data_stay_hover = 'hotspot' == $type ? 'data-stay-hover="' . $tooltip_stay_hover . '"' : '';
    $data_tp_width = 'hotspot' == $type ? 'data-width="' . $tooltip_width . '"' : '';
    $data_target = 'hotspot' == $type ? 'data-target="' . $target . '"' : '';
    $effect_attrs = sprintf('%s %s %s %s %s %s %s %s %s %s', $data_show_effect, $data_show_duration, $data_show_delay, $data_show_ease, $data_hide_effect, $data_hide_duration, $data_hide_time, $data_hide_ease, $data_hide_delay, $data_fixed);
    $common_attrs = sprintf('%s %s %s %s %s %s %s %s %s', $data_parallax, $data_type, $data_resize, $data_align, $data_stay_hover, $data_tp_width, $data_target, $data_widthlimit, $data_action);
    $position_attrs = sprintf('%s %s %s', $data_offset_x, $data_offset_y, $data_origin);
    // store layer markup
    $layer = '';
    // start layer markup generation /////////////////////////////////////////
    // if layer type was image ..
    if ('image' == $type) {
        // if was linked image
        if (!empty($link) && 'true' != $use_action) {
            $layer_image = "\n\t" . sprintf('<img src="%s" data-src="%s" alt="%s" style="%s" %s %s %s %s />', $src_blank, $src, $alt, $style_size, $effect_attrs, $data_type, $data_parallax, $position_attrs) . "\n";
            $layer .= sprintf('<a %s class="%s" href="%s" target="%s" %s %s >%s</a>', $id_attr, $wrapper_class, $link, $target, $rel_attr, $data_action, $layer_image) . "\n";
            // or single image
        } else {
            $layer .= sprintf('<img %s class="%s" src="%s" data-src="%s" alt="%s" style="%s" %s %s %s %s />', $id_attr, $wrapper_class, $src_blank, $src, $alt, $style_size, $effect_attrs, $common_attrs, $rel_attr, $position_attrs) . "\n";
        }
    } elseif ('button' == $type) {
        $layer_content = !empty($content) ? do_shortcode($content) : '';
        $layer = sprintf('<a %s href="%s" target="%s" class="%s %s" %s %s %s %s >%s</a>', $id_attr, $link, $target, $wrapper_class, $btn_class, $effect_attrs, $common_attrs, $position_attrs, $rel_attr, $layer_content) . "\n";
        // if layer type was text, video or hotspot
    } else {
        $layer_content = '';
        // add video iframe as layer content if type was video
        if ('video' == $type) {
            // add cover image if src attr is set
            if (!empty($src)) {
                $layer_content .= sprintf('<img src="%s" data-src="%s" alt="%s" />', $src_blank, $src, $alt);
            }
            // add video iframe markup if video is set
            if (!empty($video)) {
                $vid_width = empty($width) ? '460' : rtrim($width, 'px');
                $vid_height = empty($height) ? '270' : rtrim($height, 'px');
                $layer_content .= sprintf('<iframe src="%s" width="%s" height="%s" > </iframe>', $video, $vid_width, $vid_height);
            }
            // add shortcode content if layer type was text or hotspot
        } else {
            $layer_content .= !empty($content) ? do_shortcode(wp_unslash($content)) : '';
        }
        // create data-autoplay attr if video autoplay is enabled
        $data_auto_play_video = 'true' === $auto_play_video ? 'data-autoplay="' . $auto_play_video . '"' : '';
        $layer = sprintf('<div %s class="%s" style="%s" %s %s %s %s %s>%s</div>', $id_attr, $wrapper_class, $style_size, $data_link, $effect_attrs, $common_attrs, $position_attrs, $data_auto_play_video, $layer_content) . "\n";
    }
    // end layer markup generation //////////////////////////////////////////
    return apply_filters("masterslider_layer_shortcode", "\t\t\t\t\t" . $layer, $merged, $atts, $content);
}
 public function get_ms_layer_shortcode($layer)
 {
     if (!isset($layer) || empty($layer)) {
         return '';
     }
     $shortcode_name = 'ms_layer';
     $attrs = '';
     foreach ($layer as $attr => $attr_value) {
         if ('content' == $attr) {
             continue;
         }
         if ('parallax' == $attr && 'off' == $this->parsed_slider_data['setting']['parallax_mode']) {
             continue;
         }
         // users can add {{original-image}} and {{slide-image}} in layer link to link layer to current slide image
         if ('link' == $attr) {
             if (in_array($this->parsed_slider_data['setting']['slider_type'], array('post', 'wc-product'))) {
                 $attr_value = preg_replace_callback('/{{[\\w-]+}}/', array($this, 'do_template_tag'), $attr_value);
             } elseif ('{{slide-image-url}}' == $attr_value) {
                 $factory = msp_get_parser();
                 $slide = $factory->get_parent_of_layer($layer['id']);
                 $attr_value = msp_get_the_absolute_media_url($slide['src_full']);
             }
         }
         $attrs .= sprintf('%s="%s" ', $attr, esc_attr($attr_value));
     }
     $content = $layer['content'];
     if (in_array($this->parsed_slider_data['setting']['slider_type'], array('post', 'wc-product'))) {
         $content = preg_replace_callback('/{{[\\w-]+}}/', array($this, 'do_template_tag'), $content);
     }
     return sprintf('[%1$s %2$s]%4$s%3$s[/%1$s]%4$s', $shortcode_name, $attrs, $content, "\n");
 }
Example #6
0
/**
 * Print absolute URL for media file event if the URL is relative
 * 
 * @param  string $url  The link to media file
 * @return void
 */
function msp_the_absolute_media_url($url)
{
    echo msp_get_the_absolute_media_url($url);
}