site-menu-widget/app/controllers/site_menu_widgets_controlle...

63 lines
1.6 KiB
Ruby
Raw Normal View History

2014-06-26 11:09:40 +00:00
class SiteMenuWidgetsController < ApplicationController
def widget
2014-06-30 07:08:29 +00:00
params = OrbitHelper.params
page = Page.where(:page_id => params[:page_id]).first
if page.parent_page == Page.root
pages = page.sorted_published_child_pages
else
2014-07-29 02:09:49 +00:00
pages = page.parent_page.sorted_published_child_pages
end
2014-12-18 03:35:02 +00:00
2014-06-26 11:09:40 +00:00
def create_json(pages)
items = []
2014-12-18 03:35:02 +00:00
widget_title = []
2014-06-26 11:09:40 +00:00
pages.each do |page|
item = {}
if page.child_page.size > 0
if page.page_type == "page" or page.page_type == "link"
2014-06-26 11:09:40 +00:00
item["page_name"] = page.name
item["url"] = (page.page_type == "link") ? "/#{locale.to_s}" + page.external_url : "/#{locale.to_s}" + page.url
2014-07-29 02:09:49 +00:00
item["children"] = create_json(page.sorted_published_child_pages)
2014-06-26 11:09:40 +00:00
item["target"] = "_self"
else
item["page_name"] = page.name
item["url"] = "/#{locale.to_s}" + page.url
2014-07-29 02:09:49 +00:00
item["children"] = create_json(page.sorted_published_child_pages)
2014-06-26 11:09:40 +00:00
item["target"] = "_blank"
end
else
if page.page_type == "page"
item["page_name"] = page.name
item["url"] = "/#{locale.to_s}" + page.url
item["target"] = "_self"
item["children"] = []
else
item["page_name"] = page.name
item["url"] = page.external_url
item["target"] = "_blank"
item["children"] = []
end
end
items << item
end
items
end
2014-12-18 03:35:02 +00:00
page_part_id = PagePart.where(:page_id => pages.first.parent_page_id).last.id
widgets = SubPart.where(:page_part_id => page_part_id).collect do |sp|
{
"widget_title" => sp.title
}
end
2014-06-26 11:09:40 +00:00
items = create_json(pages)
{
"pages" => items,
2014-12-18 03:35:02 +00:00
"widget_title" => widgets
2014-06-26 11:09:40 +00:00
}
2014-12-18 03:35:02 +00:00
2014-06-26 11:09:40 +00:00
end
end