4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'app/helpers/polyblock/application_helper.rb', line 4
def pb(name, tag = :div, tag_options={})
if name.is_a? Polyblock::Block
pb = name
pb_id = pb.id
name = pb.name
pb_exists = true
else
matches = Polyblock::Block.where :name => name
pb_exists = matches.any?
pb = if pb_exists then matches.first() else Polyblock::Block.new({:name => name}) end
pb_id = if pb_exists then pb.id else Polyblock::Block.count + 1 end
end
pb.content ||= pb.present? ? pb.content : "<p>This block is content managed by Polyblock!<br />Edit \"#{name}\" to add content here.</p>"
tag_options = tag_options.deep_merge({:id => "pb-#{pb_id}", :data => {:pbid => pb_id}})
tag_options[:contenteditable] = if !respond_to?(:can?) or can?(:manage, pb) then "true" else "false" end
tag_options[:class] = (tag_options.has_key?(:class) ? "#{tag_options[:class]} ":"") + "polyblock"
tag_options[:data][:pb_exists] = pb_exists
content_tag(tag, pb.content, tag_options, false)
end
|