cms_helper.rb
1.47 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
module CmsHelper
###########################################################
# content below was copied from comoatose
###########################################################
# Checks the hidden_meta_fields class variable for a specified field name...
def show_field?(key)
!Comatose.config.hidden_meta_fields.include? key
end
# Used in the Page Form to build an indented drop-down list of pages
def tree_select_box(nodes, selected= nil, hide= nil, label="Parent", add_initial=false)
level = 0
select_box = add_initial ? "<option value=0>No #{label}</option>\n" : ""
selected = nodes[0].id if selected.nil? and not add_initial
nodes.each {|node| select_box += add_select_tree_node(node, selected, level, hide) }
select_box += ''
end
# Called by tree_select_box
def add_select_tree_node(node, selected, level, hide)
padding = " " * level * 4
padding += '» ' unless level==0
hide_values = Array.new
hide_values << hide if hide
if node.id == selected
select_box = %Q|<option value="#{node.id}" selected="true">#{padding}#{node.title}</option>\n|
else
if hide_values.include?(node.id)
select_box = ''
else
select_box = %Q|<option value="#{node.id}">#{padding}#{node.title}</option>\n|
end
end
node.children.each do |child|
select_box += add_select_tree_node(child, selected, level + 1, hide) unless hide_values.include?(node.id)
end
select_box
end
end