sub menu widget for orbit 4.5
This commit is contained in:
parent
6fb574ac60
commit
64c6a43f12
|
@ -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
|
|
@ -1,4 +1,10 @@
|
||||||
module SiteMenuWidget
|
module SiteMenuWidget
|
||||||
class Engine < ::Rails::Engine
|
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
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue