Sha256: 18e5760f0a49423f158792ed90280703c2846f7caeb04fd9c8aad3529b923d37

Contents?: true

Size: 1.96 KB

Versions: 5

Compression:

Stored size: 1.96 KB

Contents

# encoding: UTF-8

module Spree
  module SlideshowTypesHelper
    
    def insert_slideshow(params={})
      params[:id] ||= "slides"
      params[:class] ||= "my_slide"
      params[:category] ||= "home"
      logger.info("#{params[:category]}")
      @@slideshow = Spree::SlideshowType.enable(params[:category]).try(:first)
      if @@slideshow.blank? || (!@@slideshow.blank? && @@slideshow.slides.empty?)
        return ''
      end
      params[:pagination_class] ||= "pagination"
      params[:slide_speed] ||= 350
      res = []
      
      res << content_tag(:div, content_tag(:div, slide_images(params, @@slideshow), :class => "slides_container"), :id => params[:id], :class => params[:class])
      res << "<script type='text/javascript'>
        $(function() {
          $('##{params[:id]}').slides({
            play: 100000,
            preload: true,
            generateNextPrev: #{@@slideshow.enable_navigation},
            generatePagination: #{@@slideshow.enable_pagination},
            paginationClass: '#{params[:pagination_class]}',
            slideSpeed: #{params[:slide_speed]}
          });
        });
        </script>"
      
      res.join.html_safe
    end

    def slide_images(params, slideshow)
      params[:style] ||= "medium"
      params[:show_content] ||= false
      max = slideshow.slides.enable.count
      slides = slideshow.slides.enable.limit(max).sort_by { |slide| slide.position }
      
      slides.map do |slide|
        content_tag(:div, :class => "slide_list") do
          divs = []
          
          divs << link_to(image_tag(slide.attachment.url(params[:style].to_sym)), (slide.url.blank? ? "javascript: void(0)" : slide.url), { :title => slide.title })
          if params[:show_content]
            divs << content_tag(:div, content_tag(:strong, raw(slide.title)) + content_tag(:p, raw(slide.content)), :class => "text-holder")
          end
          
          divs.join.html_safe
        end
      end.join.html_safe
    end
    
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
spree_multi_slideshow-1.1.8 app/helpers/spree/slideshow_types_helper.rb
spree_multi_slideshow-1.1.7 app/helpers/spree/slideshow_types_helper.rb
spree_multi_slideshow-1.1.6 app/helpers/spree/slideshow_types_helper.rb
spree_multi_slideshow-1.1.5 app/helpers/spree/slideshow_types_helper.rb
spree_multi_slideshow-1.1.4 app/helpers/spree/slideshow_types_helper.rb