highlights_block.rb
1.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
class HighlightsBlock < Block
attr_accessible :images, :interval, :shuffle, :navigation
settings_items :images, :type => Array, :default => []
settings_items :interval, :type => 'integer', :default => 4
settings_items :shuffle, :type => 'boolean', :default => false
settings_items :navigation, :type => 'boolean', :default => false
before_save do |block|
block.images = block.images.delete_if { |i| i[:image_id].blank? and i[:address].blank? and i[:position].blank? and i[:title].blank? }
block.images.each do |i|
i[:image_id] = i[:image_id].to_i
i[:position] = i[:position].to_i
begin
file = UploadedFile.find(i[:image_id])
i[:image_src] = file.public_filename
rescue
i[:image_src] = nil
end
end
end
def self.description
_('Highlights')
end
def featured_images
images = get_images
shuffle ? images.shuffle : images
end
def get_images
images.select do |i|
!i[:image_src].nil?
end.sort do |x, y|
x[:position] <=> y[:position]
end
end
def content(args={})
block = self
proc do
render :file => 'blocks/highlights', :locals => { :block => block }
end
end
def folder_choices
owner.image_galleries
end
end