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
 | 
			
		||||
  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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue