71 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Ruby
		
	
	
	
		
		
			
		
	
	
			71 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| 
								 | 
							
								class FrontController < ApplicationController
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  layout false
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def show_banner
							 | 
						||
| 
								 | 
							
								    @ad_banner = AdBanner.find(params[:id]) rescue nil
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def show_footer
							 | 
						||
| 
								 | 
							
								    render :text => @site.footer
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def show_menu
							 | 
						||
| 
								 | 
							
								    page = Page.find(params[:id]) rescue nil
							 | 
						||
| 
								 | 
							
								    render :text => menu_level(Page.root, page, 1, page.design.layout.menu) if page
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def show_site_sub_menu
							 | 
						||
| 
								 | 
							
								    render :text => @site.sub_menu
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def show_sitemap
							 | 
						||
| 
								 | 
							
								    @items = get_homepage.children.excludes(sitemap_enabled: false) rescue []
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def show_page_sub_menu
							 | 
						||
| 
								 | 
							
								    @menu_page = Page.find(params[:menu_page_id]) rescue nil
							 | 
						||
| 
								 | 
							
								    @page_id = params[:page_id]
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  private
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def menu_level(page, current_page, current, menu)
							 | 
						||
| 
								 | 
							
								    res = ''
							 | 
						||
| 
								 | 
							
								    if page.visible_children.size > 0
							 | 
						||
| 
								 | 
							
								      res << "<ul class='"
							 | 
						||
| 
								 | 
							
								      res << menu.values["class_#{current}"] rescue nil
							 | 
						||
| 
								 | 
							
								      res << "'>"
							 | 
						||
| 
								 | 
							
								      i = nil
							 | 
						||
| 
								 | 
							
								      i = 1 if menu.values["li_incremental_#{current}"]
							 | 
						||
| 
								 | 
							
								      children = current == 1 ? page.visible_children.reverse : page.visible_children
							 | 
						||
| 
								 | 
							
								      children.each do |child|
							 | 
						||
| 
								 | 
							
								        res << menu_li(child, current_page, current, menu, i)
							 | 
						||
| 
								 | 
							
								        i += 1 if i
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      if menu.values['home'] && current == 1
							 | 
						||
| 
								 | 
							
								        res << menu_li(page, current_page, current, menu, i)
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      res << "</ul>"
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								    res
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  def menu_li(page, current_page, current, menu, i)
							 | 
						||
| 
								 | 
							
								    res = "<li class='"
							 | 
						||
| 
								 | 
							
								    res << menu.values["li_class_#{current}"] rescue nil
							 | 
						||
| 
								 | 
							
								    res << "_#{i}" if i
							 | 
						||
| 
								 | 
							
								    res << " active" if (current_page.id.eql?(page.id) || current_page.descendant_of?(page))
							 | 
						||
| 
								 | 
							
								    res << "'>"
							 | 
						||
| 
								 | 
							
								    root = "/"
							 | 
						||
| 
								 | 
							
								    res << "<a href='#{(page.class.to_s.eql?('Page') ? root + page.path : page.url)}'><span>#{page.title}</span></a>"
							 | 
						||
| 
								 | 
							
								    if page.visible_children.size > 0 && current < menu.levels
							 | 
						||
| 
								 | 
							
								      res << "<span class='dot'></span>"
							 | 
						||
| 
								 | 
							
								      res << menu_level(page, current_page, current + 1, menu)
							 | 
						||
| 
								 | 
							
								    end unless (page.root? rescue nil)
							 | 
						||
| 
								 | 
							
								    res << "</li>"
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								end
							 |