highlights_block.rb
1.19 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
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
block_images = images.select{|i| !i[:image_src].nil? }.sort { |x, y| x[:position] <=> y[:position] }
shuffle ? block_images.shuffle : block_images
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