orbit4-5/app/helpers/pages_helper.rb

49 lines
1.6 KiB
Ruby
Raw Normal View History

2014-04-01 07:10:21 +00:00
module PagesHelper
def parse_pp_tags(file)
opened_file = File.open(file)
2014-04-01 08:37:43 +00:00
doc = Nokogiri::HTML(opened_file, nil, "UTF-8")
2014-04-01 07:10:21 +00:00
opened_file.close
pps = doc.css("*[data-pp]")
pps.each do |pp|
pp.content = "<p class='add-ps'></p>"
end
doc.to_html
end
def render_widget_for_frontend(controller_name, widget_method, widget_file)
2014-04-07 07:57:06 +00:00
controller_name = controller_name.downcase.pluralize
file = File.open(File.join(Rails.root, 'app', 'templates', "#{Template::KEY}", 'modules', "#{controller_name}", "_#{widget_file}.html.erb"))
2014-04-01 08:37:43 +00:00
doc = Nokogiri::HTML(file, nil, "UTF-8")
2014-04-01 07:10:21 +00:00
file.close
wrap_elements = doc.css("*[data-repeat]")
controller = "#{controller_name.capitalize}Controller".classify.constantize.new
2014-04-07 07:57:06 +00:00
OrbitHelper.set_current_widget_module controller_name.downcase.singularize
2014-04-01 07:10:21 +00:00
data = controller.send("#{widget_method}")
2014-04-02 06:07:04 +00:00
keys = data.keys
2014-04-01 07:10:21 +00:00
wrap_elements.each do |wrap_element|
html_to_render = ""
2014-04-02 06:07:04 +00:00
(data[keys[0]].kind_of?(Array) ? data[keys[0]] : data[keys[1]]).each do |item|
2014-04-01 07:10:21 +00:00
el = wrap_element.inner_html
item.each do |key,value|
2014-04-14 03:27:09 +00:00
value = value.nil? ? "" : value
2014-04-01 07:10:21 +00:00
el = el.gsub("{{#{key}}}",value)
el = el.gsub("%7B%7B#{key}%7D%7D",value)
end
html_to_render = html_to_render + el
end
wrap_element.inner_html = html_to_render
end
2014-04-02 06:07:04 +00:00
html = doc.to_html
if keys[1]
(data[keys[1]].kind_of?(Array) ? data[keys[0]] : data[keys[1]]).each do |key,value|
html = html.gsub("{{#{key}}}",value)
html = html.gsub("%7B%7B#{key}%7D%7D",value)
end
end
html.html_safe
2014-04-01 07:10:21 +00:00
end
end
2014-04-02 06:07:04 +00:00