sub menu widget for orbit 4.5

This commit is contained in:
Harry Bomrah 2014-06-26 19:09:40 +08:00
parent 6fb574ac60
commit 64c6a43f12
2 changed files with 51 additions and 0 deletions

View File

@ -0,0 +1,45 @@
class SiteMenuWidgetsController < ApplicationController
def widget
pages = Page.root.child_pages_enabled_for_sitemap
def create_json(pages)
items = []
pages.each do |page|
item = {}
if page.child_page.size > 0
if page.page_type == "page"
item["page_name"] = page.name
item["url"] = "/#{locale.to_s}" + page.url
item["children"] = create_json(page.sorted_published_child_pages)
item["target"] = "_self"
else
item["page_name"] = page.name
item["url"] = "/#{locale.to_s}" + page.url
item["children"] = create_json(page.sorted_published_child_pages)
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
items = create_json(pages)
{
"pages" => items,
"extras" => {"widget_title" => "Sub Menu"}
}
end
end

View File

@ -1,4 +1,10 @@
module SiteMenuWidget
class Engine < ::Rails::Engine
initializer "site_menu_widget" do
OrbitApp.registration "SiteMenuWidget", :type => "OrbitWidget" do
widget_label "SiteMenu"
widget_methods ["widget"]
end
end
end
end