2014-03-12 04:42:59 +00:00
|
|
|
require "json"
|
|
|
|
module ApplicationHelper
|
|
|
|
def render_widget(widget)
|
|
|
|
key = Template::KEY
|
2014-04-01 07:10:21 +00:00
|
|
|
file = File.join("../templates", "#{key}", "modules/#{widget}")
|
2014-03-12 04:42:59 +00:00
|
|
|
render :partial => file
|
|
|
|
end
|
|
|
|
|
|
|
|
def link_to_show(module_name)
|
|
|
|
"/module/#{module_name}/show"
|
|
|
|
end
|
|
|
|
|
2014-04-01 07:10:21 +00:00
|
|
|
|
|
|
|
|
2014-03-12 04:42:59 +00:00
|
|
|
def render_menu
|
2014-04-01 07:10:21 +00:00
|
|
|
# json_file = File.read(File.join(Rails.root, 'public', "menu.json"))
|
|
|
|
# @items = JSON.parse(json_file)
|
|
|
|
@pages = Page.where(:parent_page_id.ne => "" , :parent_page_id.exists => false, :page_id.ne => "", :page_id.exists => true)
|
|
|
|
|
|
|
|
def create_json(pages)
|
|
|
|
item = {}
|
|
|
|
pages.each do |page|
|
|
|
|
if page.child_page.size > 0
|
|
|
|
item["#{page.name}"] = {"url"=> "/#{locale.to_s}" + page.url, "children"=>create_json(page.child_page)}
|
|
|
|
else
|
|
|
|
item["#{page.name}"] = {"url"=> "/#{locale.to_s}" + page.url}
|
|
|
|
end
|
|
|
|
end
|
|
|
|
item
|
|
|
|
end
|
|
|
|
@items = create_json(@pages)
|
|
|
|
|
2014-03-12 04:42:59 +00:00
|
|
|
key = Template::KEY
|
2014-04-01 07:10:21 +00:00
|
|
|
menu_file = File.open(File.join(Rails.root, 'app', 'templates', "#{key}", '/home/menu.html.erb'))
|
2014-04-01 08:37:43 +00:00
|
|
|
doc = Nokogiri::HTML(menu_file, nil, "UTF-8")
|
2014-03-12 04:42:59 +00:00
|
|
|
menu_file.close
|
|
|
|
|
|
|
|
temp = []
|
|
|
|
@menus = []
|
|
|
|
@menus_items = []
|
|
|
|
|
|
|
|
temp << doc.css("*[data-menu-level='0']")
|
|
|
|
temp << doc.css("*[data-menu-level='1']")
|
|
|
|
temp << doc.css("*[data-menu-level='2']")
|
|
|
|
|
|
|
|
|
|
|
|
temp[0] = temp[0].to_s.gsub(temp[1].to_s,"{{level}}")
|
|
|
|
temp[1] = temp[1].to_s.gsub(temp[2].to_s,"{{level}}")
|
|
|
|
temp[2] = temp[2].to_s
|
|
|
|
|
|
|
|
|
|
|
|
temp.each_with_index do |menu,i|
|
2014-04-01 08:37:43 +00:00
|
|
|
t = Nokogiri::HTML(menu, nil, "UTF-8")
|
2014-03-12 04:42:59 +00:00
|
|
|
a = t.css("*[data-menu-link='true']")
|
|
|
|
a[0]["href"] = "href_here"
|
|
|
|
li = t.css("*[data-menu-level='#{i}'] > *")
|
|
|
|
@menus_items << li.to_html
|
|
|
|
ul = t.css("*[data-menu-level='#{i}']")
|
|
|
|
ul[0].inner_html = "{{here}}"
|
|
|
|
@menus << ul[0].to_html
|
|
|
|
end
|
|
|
|
|
|
|
|
def create_menu(items,level)
|
|
|
|
html = ""
|
|
|
|
items.each do |key,item|
|
|
|
|
li = @menus_items[level].gsub("href_here",item["url"])
|
|
|
|
li = li.gsub("{{link_name}}",key)
|
|
|
|
if item["children"]
|
|
|
|
li = li.gsub("{{level}}",create_menu(item["children"],level + 1))
|
|
|
|
else
|
|
|
|
li = li.gsub("{{level}}","")
|
|
|
|
end
|
|
|
|
html = html + li
|
|
|
|
end
|
|
|
|
html = @menus[level].gsub("{{here}}",html)
|
|
|
|
html = html.gsub("{{class_level}}",level.to_s)
|
|
|
|
html
|
|
|
|
end
|
|
|
|
h = create_menu(@items,0)
|
|
|
|
h.html_safe
|
|
|
|
end
|
|
|
|
|
2014-04-01 07:10:21 +00:00
|
|
|
def render_view
|
|
|
|
if params[:target_action] == "index"
|
|
|
|
file = File.open(File.join(Rails.root, 'app', 'templates', "#{@key}", 'modules', params[:target_controller], "#{params[:target_action]}.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-module]")
|
|
|
|
controller = "#{params[:target_controller].capitalize}Controller".classify.constantize.new
|
|
|
|
data = controller.send("#{params[:target_action]}")
|
|
|
|
wrap_elements.each do |wrap_element|
|
|
|
|
html_to_render = ""
|
|
|
|
data.each do |item|
|
|
|
|
el = wrap_element.inner_html
|
|
|
|
item.each do |key,value|
|
|
|
|
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
|
|
|
|
doc.to_s.html_safe
|
|
|
|
elsif params[:target_action] == "show"
|
|
|
|
file = File.open(File.join(Rails.root, 'app', 'templates', "#{@key}", 'modules', params[:target_controller], "#{params[:target_action]}.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_element_html = doc.to_s
|
|
|
|
html_to_render = ""
|
|
|
|
controller = "#{params[:target_controller].capitalize}Controller".classify.constantize.new
|
|
|
|
data = controller.send("#{params[:target_action]}")
|
|
|
|
el = wrap_element_html
|
|
|
|
data.each do |key,value|
|
|
|
|
el = el.gsub("{{#{key}}}",value)
|
|
|
|
el = el.gsub("%7B%7B#{key}%7D%7D",value)
|
|
|
|
end
|
|
|
|
el.html_safe
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def action_data
|
|
|
|
controller = "#{params[:target_controller].capitalize}Controller".constantize.new
|
|
|
|
data = controller.send("#{params[:target_action]}")
|
|
|
|
data
|
|
|
|
end
|
|
|
|
|
2014-03-12 04:42:59 +00:00
|
|
|
end
|